Creating a Custom Widget Main Screens Triggers Conditions Actions Actions Answer Ringing Call Call Number Clear Automagic Log Close System Dialogs Connect/Disconnect Bluetooth Device Control Audio Player Control UI Copy File Copy Files Copy Text from Clipboard Copy Text to Clipboard Create Calendar Event Create Directories Delete Files Dismiss Slide to Unlock Keyguard Download URL Dropbox Delete Files Dropbox Download Files Dropbox Upload File Dropbox Upload Files Enable WiFi Access Point End Call Execute Command Execute Flows Execute Root Command Export Flows/Widgets Flashlight FTP Delete Files FTP Download Files FTP Upload File FTP Upload Files Gleeo Create Entry Gleeo Filesystem Export Gleeo Start Recording Gleeo Stop Recording Google Drive Delete Files (Experimental) Google Drive Download Files (Experimental) Google Drive Upload Files (Experimental) Hide Custom Widget Overlay HTTP Request Import Flows/Widgets Init Variable File List Init Variable Image File Init Variable Location Init Variable Random Number Init Variable System Setting Init Variable Text File Init Variables Call Log Init Variables Device Orientation Init Variables File Info Init Variables Gleeo Recording Init Variables Phone Info Input Dialog Input Speech (Experimental) Kill App Kill App Process Launch App Launch Shortcut Lock Device Mail with Gmail Map Values Message Dialog Modify Call Log Modify Image Move Files Notification on Screen Notification on Statusbar Open URL in Browser Perform Action on Notification on Statusbar Plugin (Experimental) Post Tweet Post Twitter Direct Message Query Content Provider Reboot Remove Notification Missed Calls Remove Notification on Statusbar Request Sync Reregister Media Button Receiver Restore Audio Volumes Save Variable in Image File Scan Barcode Script Send Broadcast Send SMS Send Wake on LAN Packet Set Airplane Mode Set Alarm Set Audio Manager Mode Set Audio Volume Set Auto Sync State Set Auto-rotate Screen State Set Bluetooth SCO State Set Bluetooth State Set Bluetooth Tethering State Set Car UI Mode Set Data Roaming State Set Default Input Method Set Default Ringtone Set Flow State Set GPS State Set Keyguard State Set Lock Pattern State Set Lock PIN/Password Set Microphone Mute Set Mobile Datanetwork State Set Mobile Network Mode (2G/3G) Set Network Location State Set NFC State Set Night Mode Set Ringer Mode Set Screen Brightness Set Screen Orientation Set Screen Timeout Set Speakerphone State Set System Locale Set System Setting Set Telephony Radio State Set Timer Set USB Debugging State Set USB Tethering State Set Vibrate on Ring State Set Wallpaper Set WiFi Access Point Priority Set WiFi Sleep Policy Set WiFi State Set Wifi Tethering State Show Call Log Show Custom Widget Overlay Show Home Screen Show Input Method Selector Shutdown Silence Ringer Sleep Sound Speech Output Start Activity Start Daydream Start Recording Audio Start Service Stop Action Sound Stop Action Speech Output Stop Flows Stop Recording Audio Store Audio Volumes Take Picture Turn Screen On Unzip Files Vibrate Voice Search (Experimental) WiFi Reassociate WiFi Scan Write HTTP Response File (Experimental) Write HTTP Response Text (Experimental) Write to File Write to Log Zip Files Answer Ringing Call The action Answer Ringing Call answers the currently-ringing call. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Automatically answer a call when you are prepared to answer calls but don't have your hands free. Settings Method Defines the method to use to answer the call. Call Number The action Call Number calls a number by opening the telephone application and directly calling the supplied number. Example: Automatically call a contact at 6pm. Settings Number The number to call. Variables are supported. Directly initiate call Whether the call should be initiated automatically or to only start the dialer interface without calling the number. The action Clear Automagic Log clears the internal log of Automagic (not the log on the SD-card when enabled in the preferences). Close System Dialogs The action Close System Dialogs closes system dialogs like the expanded notification area, the expanded quick settings or the power-menu. Whether dialog is classified as a system dialog or not is controlled by the dialog itself. Regular dialogs and windows can not be closed using this action. Clear Automagic Log Connect/Disconnect Bluetooth Device The action Connect/Disconnect Bluetooth Device tries to connect/disconnect to/from a paired bluetooth device (Android 3+ required). Warning: This function is not officially supported by Android and might not work on all devices. Examples: Connect to the bluetooth headset when a shortcut is pressed. Settings Bluetooth Profile Defines the type of connection to establish. Bluetooth Device Address The address of the bluetooth device. Variables are supported. Bluetooth Device Name The name of the bluetooth device. Connect or disconnect Whether to connect or disconnect. Control Audio Player The action Control Audio Player can launch and control the default audio player of Android. Note that device and manufacturer specific audio players will probably not work. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Pause the audio player when the headphones are disconnected. Settings Control Type Defines the method used to control the media player: Media Button: Simulates the press of a media button Broadcast: Sends a broadcast to the audio service Media Button The button to press (not all apps handle all buttons): Play: Starts to play (Android >3) Play/Pause: Toggles between play and pause Pause: Pauses the audio player (Android >3) Stop: Stops the audio player Previous: Plays the previous track Next: Plays the next track Fast forward: Fast forward Rewind: Rewind Eject: Ejects the media (for example a CD tray) (Android >3) Close: Closes the media tray (for example a CD tray) (Android >3) Record: Starts to record (Android >3) Track: Switches the audio track (Android >4.4) send to specified app Whether to let the system choose the app to handle the media button or if the media button event should be sent to a specific app. This is mostly useful when multiple audio players are installed and the event is not handled by the desired player. Package Name The app to send the media button event to. Variables are supported. Class Name The component inside the app that should handle the media button. Variables are supported. Action The action to execute: Launch: Launches the audio player Play: Starts to play Play/Pause: Toggles between play and pause Pause: Pauses the audio player Stop: Stops the audio player Previous: Plays the previous track Next: Plays the next track Cycle Repeat: Activates the next cycle mode Toggle Shuffle: Toggles the shuffle mode on/off Control UI The action Control UI uses the accessibility features of the device to control the user interface and allows to automatically press buttons, long-click elements, scroll lists and change the values of checkboxes and radio buttons. Note: This action controls the user interface by simulating user input, therefore the screen has to be active, unlocked and the user interface must be showing on screen. The accessibility service of Automagic needs to be enabled in the preferences for this action to work. At least Android 4.1 (Jelly Bean) is required. Examples: Start the location settings page and enable/disable GPS. Start the device update check by pressing the "Check now" button. Settings Script Defines the actions to execute. See action Script for a description of the basic features of the scripting language. Warning: The following example scripts are highly device specific! Please only use the scripts for reference and don't just copy/paste the scripts. It might click the wrong control elements on your device. Clear all notifications: notifications();//to expand the notifications sleep(1000);//wait one second for animations to complete clicked = click("Clear all notifications");//click the button if(not clicked) //check whether the button has been successfully clicked { back();//hide the notification when the clear button was not available } Toggle GPS on/off: Use an action Launch App: Settings/Location services to directly start the GPS settings page sleep(1000);//wait for settings page to show click("GPS satellites");//toggle setting on/off sleep(500); back();//go back to the previous screen Open the Apps drawer: home();//ensure the main home screen is showing sleep(1000);//wait one second for animations to complete click("Apps");//open the apps drawer Supported Functions Boolean sleep(Number milliseconds) Waits for the specified amount of milliseconds. Boolean sleep(String duration) Waits for the specified amount of milliseconds. Boolean back() Presses the back key. Boolean home() Presses the home key. Boolean notifications() Opens the notifications. Boolean quickSettings() Opens the quick settings. Boolean recents() Opens the recent application list. Boolean click(String pattern) Clicks on the element containing the given glob pattern. Boolean click(Number x, Number y) Clicks on the element at the specified location. Boolean longclick(String pattern) Longclicks on the element containing the given glob pattern. Boolean longclick(Number x, Number y) Longclicks on the element at the specified location. Boolean check(String pattern) Checks the element containing the given glob pattern. Boolean check(Number x, Number y) Checks the element at the specified location. Boolean isChecked(String pattern) Tests whether the element containing the given glob pattern is checked. Boolean isChecked(Number x, Number y) Tests whether the element at the specified location is checked. Boolean uncheck(String pattern) Unchecks the element containing the given glob pattern. Boolean uncheck(Number x, Number y) Unchecks the element at the specified location. Boolean scrollForward(String pattern) Scrolls the element containing the given glob pattern. Boolean scrollForward(Number x, Number y) Scrolls the element at the specified location. Boolean scrollBackward(String pattern) Scrolls the element containing the given glob pattern. Boolean scrollBackward(Number x, Number y) Scrolls the element at the specified location. Boolean select(String pattern) Selects the element containing the given glob pattern. Boolean select(Number x, Number y) Selects the element at the specified location. Boolean clearSelection(String pattern) Unselects the element containing the given glob pattern. Boolean clearSelection(Number x, Number y) Unselects the element at the specified location. Boolean expand(String pattern) Expands the element containing the given glob pattern. (Android 4.4+) Boolean expand(Number x, Number y) Expands the element at the specified location. (Android 4.4+) Boolean collapse(String pattern) Collapses the element containing the given glob pattern. (Android 4.4+) Boolean collapse(Number x, Number y) Collapses the element at the specified location. (Android 4.4+) Boolean cut(String pattern) Cuts the text of the element containing the given glob pattern. (Android 4.3+) Boolean cut(Number x, Number y) Cuts the text of the element at the specified location. (Android 4.3+) Boolean copy(String pattern) Copies the text of the element containing the given glob pattern. (Android 4.3+) Boolean copy(Number x, Number y) Copies the text of the element at the specified location. (Android 4.3+) Boolean paste(String pattern) Pastes text to the element containing the given glob pattern. (Android 4.3+) Boolean paste(Number x, Number y) Pastes text to the element at the specified location. (Android 4.3+) Boolean dismiss(String pattern) Dismisses the element containing the given glob pattern. (Android 4.4+) Boolean dismiss(Number x, Number y) Dismisses the element at the specified location. (Android 4.4+) String getText(String pattern) Returns the text of the element containing the given glob pattern. String getText(Number x, Number y) Returns the text of the element at the specified location. List getBounds(String pattern) Returns the bounds of the element containing the given glob pattern in a list with the values [x, y, width, height]. Boolean sendKey(Number keyCode) Simulates the specified key (Automagic input method required). Boolean sendKey(String keyCodeName) Simulates the specified key (Automagic input method required). Boolean sendText(String text) Sends the text to the focused component (Automagic input method required). Boolean setText(String text) Sets the text of the focused component (Automagic input method required). Boolean setSelection(Number start, Number end) Sets the selection of the focused component (Automagic input method required). Boolean selectAll() Selects the text of the focused component (Automagic input method required). Copy File The action Copy File locally copies a file. Examples: Create a weekly backup of the Automagic flows to a file containing the timestamp Settings Source File The absolute path of the file to copy. Variables are supported. Examples: /mnt/sdcard/export_{triggertime,dateformat,yyyy_MM_dd}.csv becomes /mnt/sdcard/ export_2011_02_13.csv Target File (including filename) The absolute path of the target file. The path has to include the filename of the target file. Variables are supported. Copy Files The action Copy Files locally copies one or a list of files to the specified target directory or file. Examples: Backup all files in directory /mnt/sdcard/xyz/ to the folder /mnt/sdcard/xyz_backup/ Settings Source Files A comma separated list of files or directories to copy. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard When multiple files are matched the target has to be a directory. The directory will be created when it does not exist yet. A directory with an ending slash (like /mnt/sdcard/) matches the files contained in the directory like using /mnt/sdcard/*. Target The absolute path of the target file or directory. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Copy Text from Clipboard The action Copy Text from Clipboard copies the text on the clipboard to the specified variable. Examples: Send the text on the clipboard directly by sms or text. Settings Variable The name of the variable to store the content of the clipboard. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables clip_data the text of the clipboard Copy Text to Clipboard The action Copy Text to Clipboard copies the specified text to the clipboard. Examples: Copy the scanned barcode value to the clipboard to paste it in the browser. Copy the text of an incoming SMS to the clipboard to paste it in a mail. Settings Text The text to copy to the clipboard. Variables are supported. Create Calendar Event The action Create Calendar Event creates an event on the specified calendar of the device (Android 4+ required) Examples: create a calendar event based on the text of a received SMS create a calendar event for every received call Settings Calendar The name of calendar to create the event in. Variables are supported. Start/End Type Whether the event should be created relative to the time when the action is executed or absolute. Start in The start offset of the event from now. 1h creates an event that starts in one hour. Variables are supported. Duration The desired duration of the event like 1h or 45m. Variables are supported. From A script whose last statement must evaluate to a date (milliseconds since 1970) to use as the start time of the event. To A script whose last statement must evaluate to a date (milliseconds since 1970) to use as the end time of the event. All day When checked creates an event lasting the whole day, the event spans all days intersecting the time span specified in Start in/Duration or From/To. Title The title. Variables are supported. Description The description. Variables are supported. Location The event location. Variables are supported. Reminders The reminders to create. Variables are supported. Event Availability The availability (not all calendars support Tentative). Create Directories The action Create Directories locally creates one or multiple directories. Examples: Create a target directory /mnt/sdcard/backup/ before copying files into this directory Settings Directories A comma separated list of directories to create. Variables are supported. Delete Files The action Delete Files locally deletes one or multiple files or folders including contained files. Examples: Monthly delete all files in the /mnt/sdcard/download/ folder Settings Source Files A comma separated list of files or directories to delete. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/download/* matches all files and subfolders in the download directory Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Dismiss Slide to Unlock Keyguard The action Dismiss Slide to Unlock Keyguard unlocks the device when the slid-to-unlock keyguard is used. This action can not unlock a secure keyguard that requires to enter a password, PIN or pattern. Warning: This function is not officially supported by Android and might not work on all devices. Some devices require that the screen is off to dismiss the keyguard. Some devices turn off the screen when the keyguard is dismissed. You can mitigate the problem by adding an action Turn Screen On to the flow after dismissing the keyguard. Download URL The action Download URL directly downloads a file in the background to the defined directory. Examples: Download a PDF newspaper every morning Settings URL The URL to download. Variables can be used to create dynamic urls based on time. Examples: http://example.com/newspaper_{triggertime,dateformat,yyyyMMdd}.pdf becomes http://example.com/ newspaper_20110213.pdf Directory The directory to place the downloaded file in Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Dropbox Delete Files The action Dropbox Delete Files deletes the defined files on Dropbox. Examples: Delete all files in a folder before uploading new files to this folder to get rid of files you don't need anymore. Settings Dropbox Access Whether Dropbox access is currently possible or not and allows to sign in to your Dropbox account. Dropbox Paths A comma separated list of files or directories to delete on Dropbox. Glob patterns can be used to match multiple files. Variables are supported. Examples: /backup/export* matches all files with a name starting with export in folder /backup Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Dropbox Download Files The action Dropbox Download Files downloads multiple files and directories recursively to your device. Warning: This action downloads all specified files and overwrites already existing target files. The files will be downloaded even when the same file already exists on the device. Warning: Dropbox limits the amount of data each user can transfer. Examples: Download each morning the newest file of keypass containing your passwords to ensure you have the newest offline copy available. Settings Dropbox Access Whether Dropbox access is currently possible or not and allows to sign in to your Dropbox account. Dropbox Paths A comma separated list of files or directories to download from Dropbox. Glob patterns can be used to match multiple files. Variables are supported. Examples: /backup/export* matches all files with a name starting with export in folder /backup Target The absolute path of the target directory to download the files to. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Dropbox Upload File The action Dropbox Upload File uploads one file to your Dropbox. Examples: Upload a backup of all data in Gleeo Time Tracker to the your Dropbox Settings Dropbox Access Whether Dropbox access is currently possible or not and allows to sign in to your Dropbox account. Local File The absolute path of the local file to upload. Variables are supported. Examples: /mnt/sdcard/export_{triggertime,dateformat,yyyy_MM_dd}.csv becomes /mnt/sdcard/ export_2011_02_13.csv Path on Dropbox (including filename) The absolute path of the file on Dropbox. The path has to include the filename of the target file. This allows you to store the file using a different name on your Dropbox. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Dropbox Upload Files The action Dropbox Upload Files uploads one or multiple files and directories recursively to your Dropbox. Warning: This action uploads all specified files and overwrites already existing target files. The files will be uploaded even when the same file already exists on Dropbox. Warning: Dropbox limits the amount of data each user can transfer. Examples: Upload a backup of all data in Gleeo Time Tracker to the your Dropbox Settings Dropbox Access Whether Dropbox access is currently possible or not and allows to sign in to your Dropbox account. Source Files A comma separated list of files or directories to upload to Dropbox. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard Path on Dropbox The absolute path of the target on Dropbox to upload the files to. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Enable WiFi Access Point The action Enable WiFi Access Point enables one of the access point configurations and optionally prevents to connect to other access points by disabling them. Examples: Enable a free access point at home and disable a paid access point. Settings SSID The SSID of the access point configuration to enable. Disable other access points Whether to disable all other access point configurations or not. End Call The action End Call hangs up the current call. Warning: This function is not officially supported by Android and might not work on all devices. Example: Let the phone call home for 15 seconds and automatically terminate the call to notify something. Execute Command The action Execute Command executes a shell command and stores the output in variables. Examples: ls -l to list all files in the working directory ps to store the running processes in the defined variable ps > file.txt to store the running processes in a file cat file1.txt > file2.txt to copy a file cat /proc/wakelocks to show the wake locks preventing your device from sleeping String variables are replaced before the command is passed to the interpreter. You can use this for example to create a filename based on the current date: ps > file- {triggertime,datetime,yyyyMMdd}.txt. Special characters in the command have to be escaped using backslash or placed in quotes as appropriate: cat 'Test File1.txt' > 'Test File2.txt' cat Test\ File1.txt > Test\ File2.txt Settings Command Enter the shell command to execute in this field. The command is passed to /bin/sh to be interpreted. The available commands vary from device to device. Working Directory The path the command is executed in. Variable to store the standard output The output written by the command to the standard output is stored in the variable defined in this field. Variable to store the error output The output written by the command to the error output is stored in the variable defined in this field. Variable to store the exit code The exit code of the command is stored in the variable defined in this field. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables stdout the standard output of the command stderr the standard error output of the command exit_code the exit code of the command Execute Flows The action Execute Flows executes one or multiple flows specified in the field Flow pattern list. The executed flow will inherit the execution context with all variables of the parent flow. The variables usually supplied by the trigger of the target flow will not be available since the trigger of the target flow is bypassed when using this action. Examples: Execute all flows with the words battery save in the name when the battery reaches a critical level Settings Flow pattern list A comma separated list of flow names to execute. Glob patterns * and ? can be used to match similar named flows. Examples: Test Flow Test Flow, SMS Flow *battery save* Exclude flow pattern list A comma separated list of flow names to not execute even when the field Flow pattern list includes the flow. Wait for called flows to finish Whether the action should wait until all called flows have been finished or not. Return variables to the calling flow Whether the local variables of the called flow should be returned to the calling flow. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables flow_count the number of flows to execute Execute Root Command The action Execute Root Command executes a shell command as root by passing the command to su and stores the output in variables. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: reboot to reboot the device reboot -p to shutdown String variables are replaced before the command is passed to the interpreter. You can use this for example to create a filename based on the current date: ps > file- {triggertime,datetime,yyyyMMdd}.txt. Special characters in the command have to be escaped using backslash or placed in quotes as appropriate: cat 'Test File1.txt' > 'Test File2.txt' cat Test\ File1.txt > Test\ File2.txt Settings Command Enter the shell command to execute in this field. The command is passed to su to be interpreted. The available commands vary from device to device. Working Directory The path the command is executed in. Variable to store the standard output The output written by the command to the standard output is stored in the variable defined in this field. Variable to store the error output The output written by the command to the error output is stored in the variable defined in this field. Variable to store the exit code The exit code of the command is stored in the variable defined in this field. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables stdout the standard output of the command stderr the standard error output of the command exit_code the exit code of the command Export Flows The action Export Flows exports the selected flows to the specified file. Examples: Export all flows to a file and upload the file to Dropbox as a backup Settings Flow pattern list A comma separated list of flow names to export. Glob patterns * and ? can be used to match similar named flows. Variables are supported. Examples: Test Flow Test Flow, SMS Flow *time tracking* Exclude flow pattern list A comma separated list of flow names to not export even when the field Flow pattern list includes the flow. Glob patterns * and ? can be used to match similar named flows. Variables are supported. Widget pattern list A comma separated list of widget names to export. Glob patterns * and ? can be used to match similar named widgets. Variables are supported. Exclude widget pattern list A comma separated list of widget names to not export even when the field Widget pattern list includes the widget. Glob * ? patterns and can be used to match similar named widgets. Variables are supported. Target File The path of the target file. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables export_path the path of the created file Flashlight The action Flashlight enables or disables the flashlight of the device. Examples: Turn on or off the flashlight using a toggle widget. Settings Flashlight Whether to turn the flashlight on or off. FTP Delete Files The action FTP Delete Files deletes the files specified on the FTP server. Examples: Recursively delete all files in a directory on the server before uploading new files Settings Server/Port The name or IP and port (default 21) of the FTP server. Variables are supported. Username The username to connect. Variables are supported. Password The password to connect. Variables are supported. Paths on Server A comma separated list of files or directories to delete on the server. Glob patterns can be used to match multiple files. Variables are supported. Examples: /pub/export* matches all files with a name starting with export in folder /pub Control Encoding Whether to use a special encoding for the control channel or not (Encoding of file names, not the encoding of the content of text files). Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. FTP Download Files The action FTP Download Files downloads files and folders stored on an FTP server. Examples: Recursively download a directory with music every morning Settings Server/Port The name or IP and port (default 21) of the FTP server. Variables are supported. Username The username to connect. Variables are supported. Password The password to connect. Variables are supported. Paths on Server A comma separated list of files or directories to download from the server. Glob patterns can be used to match multiple files. Variables are supported. Examples: /pub/export* matches all files with a name starting with export in folder /pub Local Directory The absolute path of the target directory to download the files to. Variables are supported. Control Encoding Whether to use a special encoding for the control channel or not (Encoding of file names, not the encoding of the content of text files). Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. FTP Upload File The action FTP Upload File uploads one file to an FTP server. Examples: Upload a backup of all data in Gleeo Time Tracker to the your company server Settings Server/Port The name or IP and port (default 21) of the FTP server. Variables are supported. Username The username to connect. Variables are supported. Password The password to connect. Variables are supported. Local File The absolute path of the local file to upload. Variables are supported. Examples: /mnt/sdcard/export_{triggertime,dateformat,yyyy_MM_dd}.csv becomes /mnt/sdcard/ export_2011_02_13.csv Path on Server (including filename) The absolute path of the file on the FTP server. The path has to include the filename of the target file. This allows you to store the file using a different name on your server. Variables are supported. Control Encoding Whether to use a special encoding for the control channel or not (Encoding of file names, not the encoding of the content of text files). Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. FTP Upload Files The action FTP Upload Files uploads files and folders to an FTP server. Examples: Recursively upload a directory with photos every morning to an FTP server Settings Server/Port The name or IP and port (default 21) of the FTP server. Variables are supported. Username The username to connect. Variables are supported. Password The password to connect. Variables are supported. Local Paths A comma separated list of files or directories to upload to the server. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard Server Directory The absolute path of the target directory on the server to upload the files to. Variables are supported. Control Encoding Whether to use a special encoding for the control channel or not (Encoding of file names, not the encoding of the content of text files). Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Gleeo Create Entry The action Gleeo Create Entry creates an entry of the specified project and task in Gleeo Time Tracker. Examples: Track the amount of time spent in the Twitter app and create an entry in Gleeo Time Tracker at the end of the day. Settings Project The name of the project to create an entry for. The project has to already exist in Gleeo Time Tracker. Task The task of the entry to create. The task will be created in Gleeo Time Tracker when it not already exists. The task name can be defined dynamically using variables. Examples: Phone Support for {incoming_number} becomes Phone Support for 17001111111 Visiting {trigger} becomes Visiting Customer X (use different location triggers named Customer X, Customer Y etc.) Variable containing the start time The name of the variable (without curly braces) containing the start time. Variables are supported. Variable containing the end time The name of the variable (without curly braces) containing the start time. Variables are supported. Move to Background Whether to move Gleeo Time Tracker to the background when the entry has been created. Gleeo Filesystem Export The action Gleeo Filesystem Export creates a CSV export of the defined projects and time range. Examples: Backup all data in Gleeo Time Tracker to the SD card Export the current month by pressing a shortcut on the launcher and attach the created file to a Google Mail message draft Each month export all recorded entries of the month to the SD card and send the file by mail to your employer Settings Projects to Export The list of projects to export. Time Range The time range to export. CSV Column Delimiter The delimiter used to separate two columns. Excel users can set this to Semicolon to simplify the import in Excel. Target File The file to store the exported data in. Variables can be used to create dynamic file names based on time. Examples: /mnt/sdcard/export_{triggertime,dateformat,yyyy_MM_dd}.csv becomes /mnt/sdcard/ export_2011_02_13.csv /mnt/sdcard/export_{export_start_time,dateformat,yyyy_MM_dd}-{export_end_time,dateformat, yyyy_MM_dd}.csv becomes /mnt/sdcard/export_2011_03_01-2011_03_31.csv Attach to Mail Opens the desired Mail App and attaches the CSV file. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables export_start_time the start time of the exported time range export_end_time the end time of the exported time range export_path the absolute path of the exported file Gleeo Start Recording The action Gleeo Start Recording starts recording the defined project and task in Gleeo Time Tracker when this task is not already recording. Examples: Start tracking the time when you arrive at your office. Start tracking the time when your employer calls. Start tracking the time when you press a shortcut on the launcher. Settings Project The name of the project to start recording. The project has to already exist in Gleeo Time Tracker. Variables are supported. Task The task to start recording. The task will be created in Gleeo Time Tracker when it not already exists. Variables are supported. Examples: Phone Support for {incoming_number} becomes Phone Support for 17001111111 Visiting {trigger} becomes Visiting Customer X (use different location triggers named Customer X, Customer Y etc.) Move to Background Whether to move Gleeo Time Tracker to the background when the task has been started. Gleeo Stop Recording The action Gleeo Stop Recording stops recording the currently recording task in Gleeo Time Tracker. Examples: Stop tracking the time when you leave your office. Stop tracking the time every evening at 6pm and show an alert when you forgot to stop recording. Settings Projects to Stop The name of the project to stop recording. Glob patterns are supported. Variables are supported. Tasks to Stop The tasks to stop recording. Glob patterns are supported.Variables are supported. Move to Background Whether to move Gleeo Time Tracker to the background when the task has been stopped. Google Drive Delete Files (Experimental) The action Google Drive Delete Files (Experimental) deletes the defined files on Dropbox. Examples: Delete all files in a folder before uploading new files to this folder to get rid of files you don't need anymore. Settings Device account The account to access Google Drive. Google Drive Paths A comma separated list of files or directories to delete on Google Drive. Glob patterns can be used to match multiple files. Variables are supported. Examples: /backup/export* matches all files with a name starting with export in folder /backup Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Google Drive Download Files (Experimental) The action Google Drive Download Files (Experimental) downloads multiple files and directories recursively to your device. Warning: This action downloads all specified files and overwrites already existing target files. The files will be downloaded even when the same file already exists on the device. Note: Google Drive allows to create duplicate files which is not possible on a regular filesystem. Automagic only considers the newest file in such a case and ignores duplicates. Note: Google Documents are not downloaded. Examples: Download each morning the newest file of keypass containing your passwords to ensure you have the newest offline copy available. Settings Device account The account to access Google Drive. Google Drive Paths A comma separated list of files or directories to download from Google Drive. Glob patterns can be used to match multiple files. Variables are supported. Examples: /backup/export* matches all files with a name starting with export in folder /backup Target The absolute path of the target directory to download the files to. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Google Drive Upload Files (Experimental) The action Google Drive Upload Files (Experimental) uploads one or multiple files and directories recursively to your Google Drive. Warning: This action uploads all specified files and overwrites already existing target files. Examples: Upload a backup of all data in Gleeo Time Tracker to the Google Drive Settings Device account The account to access Google Drive. Source Files A comma separated list of files or directories to upload to Dropbox. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard Path on Google Drive The absolute path of the target on Google Drive to upload the files to. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Hide Custom Widget Overlay The action Hide Custom Widget Overlay hides a previously shown overlay. Settings Overlay name The name/identification of the overlay to hide. HTTP Request The action HTTP Request requests a resource from a server using the specified HTTP request method. Note: This action is meant to be used for technical requests (REST and the like) and to process the response using scripts. If you simply want to download a file please use the action Download URL. Examples: Fetch a web page of a weather service and test if it contains the word rain Get the price of a product from an online retailers REST service Settings URL The URL to request. Variables are supported. Examples: http://example.com/weather.html?ts={triggertime,dateformat,yyyyMMdd} becomes http://example.com/weather.html?ts=20110213 Verify certificates (https) Whether certificates should be checked or not. Can be useful to ignore errors for self-signed certificates. Authentication Whether username and password should be passed to the server using basic authentication. Username The username to pass to the server. Variables are supported. Password The password to pass to the server. Variables are supported. Request Method The HTTP request method to use. Content Type The content type to use in the request as header Content-Type. Variables are supported. Form Field List Comma separated list with key=value to send as application/x-www-form-urlencoded to the server. The values are automatically URL encoded. Variables are supported. Example: Firstname=Hugo,Lastname=Habicht Data The text data to send to the server. Variables are supported. Timeout The timeout to use. Store response in a variable or file Whether to store the response in a variable or a file. Variable The name of the variable to store the response in. The response is converted to a string. Variables are supported. Warning: Responses larger than 1MB are not supported in a variable. File The path to store the file in. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables name as declared in the field Variable the response as string status_code the numeric HTTP status code, -1 when a general error occurs error_message error message when the request could not be executed and status_code is set to -1 Import Flows The action Import Flows imports all flows of the specified file. The imported flows are disabled. Already existing flows are not imported. Flows can be enabled after importing when desired using action Set Flow State and the variable {imported_flow_names,listformat,comma}. Examples: Import a flow to lock the device on the stolen device. Settings File The file to import. Variables are supported. Replace existing Whether or not to replace existing Flows, Triggers, Actions, Conditions and Widgets with the same name. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables imported_flow_names the list of imported flows duplicate_flow_names the list of duplicate flows that have not been imported Init Variable File List The action Init Variable File List lists all files or only the newly added files in a directory and stores the list in a variable. Examples: Send all files of a directory by mail to your mail account. Send all new backup files of Gleeo Time Tracker to your inbox. Settings Variable The name of the variable to hold the list of files. File Pattern The files to list. The file pattern can contain glob pattern characters like * and ?. Examples: /mnt/sdcard/folder/* /mnt/sdcard/GTT-export-20120101.csv /mnt/sdcard/GTT-export-*.csv /mnt/sdcard/file1,/mnt/sdcard/file2,/mnt/sdcard/file3 Include changes only Whether to store all files matching the pattern specified in File Pattern or only the new files. A file is considered to be new when it was not available the last time this action executed or the size of the file changed or the last modified time of the file has changed since the last execution of this action. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables files the list of files Init Variable Image File The action Init Variable Image File loads the pixel data of an image into the specified local variable to modify the image with action Modify Image or to read color values of pixels with script function getPixelColor. Warning: Loading large images uses a lot of internal memory which could cause Automagic to crash in the worst case. It's recommended to read only one image into memory and not to load very large images. Examples: Load an image, shrink the size and send the smaller file by mail. Settings File The path or URL to the image file. Variables are supported. Variable The name of the local variable to store the pixel data. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables image_data the local variable of the image image_width the width of the image image_height the height of the image Init Variable Location The action Init Variable Location acquires one location from the defined provider and stores the location in the variable. Note: Getting one location can take several seconds to complete. The passive provider might not return a location until another app is activating one of the location providers. Examples: Send the location in response to an SMS containing the text Where are you? to the sender. Store the location coordinates in a file when the employer calls. Send the location and phone number by mail whenever you call someone. Settings Variable The name of the variable to store the location in. New or Last Known Location Defines if the action should acquire a new location or if the action should use the last known location. Loading the last known location uses almost is very fast but might return an outdated location or no location might be available when the device was freshly started. Location Provider The location provider to use. Network This provider uses the location provided by the cell tower and Wi-Fi signals. Depending on environment this provider can deliver location of about 60 meters of accuracy. Locations found using the cell tower can be very inaccurate (up to several kilometers or miles). Passive This provider delivers the location from the currently active provider (Network or GPS) without activating one of the providers by itself. This might result in very infrequent location updates. GPS This provider delivers the location using the GPS receiver. This provider usually uses more battery than the network provider. High Accuracy (Experimental) This provider delivers the finest available location using different sensors available on the device. Balanced Power/Accuracy (Experimental) This provider delivers the a location with an accuracy of about 100m and uses less battery than the high accuracy provider. Low Power (Experimental) This provider delivers the a location with an accuracy of about 10km. No Power (Experimental) This provider will only deliver locations when another app on the device has requested locations. Minimum Accuracy (in meters) Only newer locations with at least this accuracy are accepted. This can be useful to filter out locations calculated using the cell tower when also more exact locations using WiFi are available. Timeout The maximum amount of time to wait for a location fix, otherwise terminate the flow with an error. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables location the reported location location_accuracy the accuracy of the location location_altitude the altitude of the location when available (not available on all devices) location_bearing the direction of travel in degrees East of true North when available (not available on all devices) location_speed the speed of travel in meters per second when available (not available on all devices) Init Variable Random Number The action Init Variable Random Number generates a random number in a defined interval. Examples: Simulate to throw a dice. Play a random sound for every received SMS. Settings Variable The variable to store the random number in. Lowest Value The lowest generated value. Highest Value The highest generated value. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables n contains the generated random value Init Variable System Setting The action Init Variable System Setting reads a value from the system setting database and stores the value in a variable. Settings Category System: for regular settings Secure: for settings which can usually not be modified Global: for global Settings valid for all users of the device (Android 4.2+) Name The name of the setting to read. Variables are supported. Variable The name of the variable to store the value in. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables setting the value of the setting Init Variable Text File The action Init Variable Text File reads the contents of a text file into the specified variable. Files up to 1MB are supported. Binary files are not supported. Examples: Read a text file containing a mail template and send the text by mail. Settings File The path of the file to load. Variables are supported. Encoding The encoding used to decode the bytes of the file to text. Variable The name of the variable to store the text in. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables file_text the name of the variable to store the text in Init Variables Call Log The action Init Variables Call Log initializes variables with the values of the last entry of the call log. Examples: Update a widget with the values of the last call Settings Query Criteria Specifies which call should be stored in the variables. Variable for Call Number The name of the variable to store the call number. Variable for Call Date/Time The name of the variable to store the point in time of the call. Variable for Call Duration The name of the variable to store the call duration. Variable for Call Type The name of the variable to store the call type (1=incoming, 2=outgoing, 3=missed). Variable for Call Contact Name The name of the variable to store the contact name. Variable for Call New Flag The name of the variable to store if the call log entry has not been marked acknowledged. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables call_number the call number call_time the time of the call in millis since 1970 call_duration the call duration in seconds call_type the call type (1=incoming, 2=outgoing, 3=missed) call_cached_name the name of the contact (might be outdated when the contact has been modified in the contacts afterwards) call_new true or false whether the entry in the call log has not been acknowledged yet Init Variables Device Orientation The action Init Variables Device Orientation measures the device orientation using the accelerometer and magnetometer sensors of the device. Warning: This action uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Examples: Show your current orientation value in a popup. Select the task to record by changing the device orientation. Settings Variable for Azimuth The name of the variable to store the azimuth of the device (in degrees). Variable for Pitch The name of the variable to store the pitch of the device (in degrees). Variable for Roll The name of the variable to store the roll of the device (in degrees). Timeout The amount of time to wait for a value of the sensor, the action is terminated with an error when no value becomes available. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables azimuth the azimuth in degrees pitch the pitch in degrees roll the roll in degrees Init Variables File Info The action Init Variables File Info provides information about a file as variables to the flow. Examples: Check if a file is older than one week and delete the file. Settings File The file to check. Variables are supported. File Type The variable to store the file type (dir, file or other). File Exists Variable to store whether the file exist or not. File Size Variable to store the size of the file in bytes. recursive for directory For directories whether to collect the size of all directly contained files or to also recursively traverse and sum the size of all subdirectories. File Last Modified Variable to store the last modification timestamp. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables file_type the type of the file (dir, file or other) file_exists if the file exist or not (true or false) file_size size of the file in bytes (or the sum of the files in directory) file_last_modified timestamp of the last modification Init Variables Gleeo Recording The action Init Variables Gleeo Recording checks if a task is recording in Gleeo Time Tracker and stores the recording project title and task in variables. Examples: Store the recording task when someone calls and start recording the same task again when the call ends. Don't use a funny alert sound when you are working for a special project. Settings Variable for Recording Boolean The name of the variable to store the boolean whether Gleeo Time Tracker is currently recording. Variable for Recording Project Title The name of the variable to store the project Gleeo Time Tracker is currently recording. Variable for Recording Task Name The name of the variable to store the task Gleeo Time Tracker is currently recording. Variable for Recording Start Time The name of the variable to store the start time of the currently recording task. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables recording the recording boolean recording_project_title the project title recording_task_name the task name recording_start the start time of the currently recording task Init Variables Phone Info The action Init Variables Phone Info initializes the desired variables (not all values are available on all devices). Examples: Check the network operator once an hour Settings Variable Device ID (e.g. IMEI/MEID/ESN) The name of the variable. Variable Software Version (e.g. IMEI/SV) The name of the variable. Variable Line 1 Number (e.g. MSISDN) The name of the variable. Variable Network Country ISO The name of the variable. Variable Network Operator (e.g. MCC+MNC) The name of the variable. Variable Network Operator Name The name of the variable. Variable Phone Type The name of the variable. Variable SIM State The name of the variable. Variable SIM Country ISO The name of the variable. Variable SIM Operator The name of the variable. Variable SIM Operator Name The name of the variable. Variable SIM Serial Number The name of the variable. Variable Subscriber ID (e.g. IMSI) The name of the variable. Variable Voice Mail Alpha Tag The name of the variable. Variable Voice Mail Number The name of the variable. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables device_id the device ID (e.g. IMEI/MEID/ESN), null when unavailable device_software_version the software version (e.g. IMEI/SV), null when unavailable line1_number the phone number string for line 1 (e.g. MSISDN), null when unavailable network_country_iso the ISO country code (only when registered to a network, unreliable on CDMA) network_operator numeric network operator name MCC+MNC (only when registered to a network, unreliable on CDMA) network_operator_name network operator name (only when registered to a network, unreliable on CDMA) phone_type type of the phone (0=no, 1=GSM, 2=CDMA, 3=SIP) sim_state State of the SIM (0=unknown, 1=absent, 2=SIM PIN required, 3=SIM PUK required, 4=network PIN required, 5=ready) sim_country_iso SIM ISO country code sim_operator SIM MCC+MNC (only available when SIM in state ready) sim_operator_name service provider name SPN (only available when SIM in state ready) sim_serial_number serial number of the SIM, null when unavailable subscriber_id the subscriber ID (e.g. IMSI), null when unavailable voice_mail_alpha_tag the alphabetic identifier associated with the voice mail number voice_mail_number the voice mail number, null when unavailable Input Dialog The action Input Dialog shows an input dialog with an input text field, password field, single- or multi-selection list. Examples: Ask the user whether he wants to turn WiFi off or not Ask for the password to use for an FTP upload Ask whether airplane mode should be activated in the evening. Activate airplane mode when the user does not respond within 30 seconds. Settings Title The title of the input dialog. Variables are supported. Input Dialog Type The type of the input dialog to show. Can be one of: Text for plain text input Password for a password input Number to type number characters Phone number to type characters used in phone numbers Date to show a date picker Time to show a time picker Date & Time to show a dialog with a date & time picker Single Choice Menu for a list of values like a menu without OK, Cancel buttons Multi Choice for a list of values the user can choose multiple values from Prompt (only applicable to Text and Password) The question or input description to show in the input dialog. Variables are supported. List Values (only applicable to Single Choice and Multi Choice) A comma separated list of values to show as values the user can choose from. Variables are supported. Default Value The default value provided when the user does not change the input value. This value is also provided when the user cancels the dialog or hits the back key. Variables are supported. Whether the user has cancelled the dialog can be evaluated using the variable operation (see below). The default value for date/time input types must be formatted as specified below: Date: Pattern yyyy-MM-dd for example 2014-01-25 or when using a variable {variable,dateformat,yyyy-MM- dd} Time: Pattern HH:mm (24-hour format) for example 14:20 or when using a variable {variable,dateformat,HH:mm} Date & Time: Pattern yyyy-MM-dd HH:mm (time in 24-hour format) for example 2014-01-25 14:20 or when using a variable {variable,dateformat,yyyy-MM-dd HH:mm} Values not formatted according to the rules above are ignored. Activate Timeout Whether an automatic timeout should provide a value to the flow when the user does not react within the specified time. Duration The amount of time to automatically close the dialog and to continue the flow. Value on Timeout The value to provide to the flow when a timeout occurred. Variables are supported. Options Show when locked: show the input dialog even when the device is locked Turn screen on: Turn the screen on when the dialog is shown initially Keep screen on: Keep the screen on as long as the dialog is shown (power button still allows turn off the screen) A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables operation the operation used to close the dialog. Can be one of: ok when the user pressed the OK button cancel when the user pressed the cancel button or the back key timeout when the dialog was closed by a timeout value the selected value in the dialog or the list of values in case of Multi Choice or a date when the input dialog type was of type date/time index the index of the selected value of a Single Choice list or -1 when not definable indices the indices of the selected values of a Multi Choice list or -1 for every not definable value Input Speech (Experimental) The action Input Speech (Experimental) starts the speech recognition of the device and provides the recognized text to the flow in variable value. The speech recognition engine usually requires network access. Examples: Control Automagic using spoken commands. Settings UI Mode Whether user interface should be shown or the speech recognition should be executed in the background. Prompt An optional title to show in the user interface. This setting might be ignored by the engine. Variables are supported. Language Optional the desired language to use in the speech recognition engine. This setting might be ignored by the engine. Variables are supported. Use Bluetooth headset (Android 3+) Whether or not a Bluetooth headset is used. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables value the recognized text operation whether the recognition was successful (ok) or not (cancel) Kill App The action Kill App kills the processes of an app running in the background. Warning: The operating system does not allow to kill an app currently running in the foreground. Examples: Kill the browser app when another app is started to reclaim memory. Settings Package Name The name of the package to kill. Variables are supported. Kill App Process The action Kill App Process sends the defined signal to the process using the kill command. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Kill the browser app when another app is started to reclaim memory. Settings Package Name The name of the package to kill. Variables are supported. Signal The signal to send. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables pid the id of the process importance the importance of the process. The smaller the value the higher the importance. lru least recently used. Smaller value means more recently used. uid the user id of the process Launch App The action Launch App starts an app or a specific activity of an app. Tip: Some activities require special permissions to be launched. Check the log after testing the action when an activity fails to start. Examples: Start the development settings directly using a shortcut. Start the shopping list app when you are near the shopping mall Settings Package Name The name of the package to launch. Variables are supported. Class Name The specific activity to launch. Leave empty to launch the default activity of a package. Variables are supported. Launch Shortcut The action Launch Shortcut starts a previously defined shortcut. Examples: Open a specific settings page Play an audio playlist Directly display a contact Lock Device The action Lock Device immediately locks the device. Note: The device admin functions have to be enabled in the preferences to use this action. Examples: Lock the device when an SMS contains device lost! Mail with Gmail The action Mail with Gmail sends a mail using your Gmail account. Note: If you have enabled 2-step verification in your Google account then you need to create an application specific password for login in the settings of your google account: https://www.google.com/settings/security Examples: Forward every SMS as a mail to your inbox. Send your location every 30 minutes to your girlfriend. Send the new Gleeo Time Tracker backups to your inbox. Settings Authentication Whether to use an account available on the device (OAuth) or to enter an account name and password. Mail Account The account name to use like xyz@gmail.com. Variables are supported. Password The password to your mail account. Variables are supported. Info: The password is stored encrypted on the internal device storage and is not part of the regular flows.xml file. To The mail address of the recipient. Variables are supported. Subject The subject of the mail. Variables are supported. Body The message body of the mail. Variables are supported. Files to Attach The comma separated list of files to attach. Variables are supported. Tip: Files stored in a list by action Init Variable File List can be formatted using {files,listformat,comma} to a comma separated list. Map Values The action Map Values takes an input value (the key) and maps it to an output value. Examples: Scan the barcode on the laboratory door and map the value to a project/task to start the time tracker. Settings Input Value The input value to map to another value. Variables are supported. Examples: {barcode_text} to map a barcode {incoming_number} to map the number of an incoming call Mapping Definition The definition used to specify how the values should be mapped to the target values. Variables are supported. Mapping example: key1=>value1 key2=>value2 The part before the assignment operator (=>) is used to specify the key values to match. A comma separated list can be used to specify multiple keys for one target value. Glob pattern characters * and ? can also be used to match multiple values. The part after the assignment operator (=>) defines the target value to use as the map value. The mapping rules are evaluated line by line from top to bottom. The first matching rule is applied. Multi key mapping example: key1=>value1 key2,key3,key4=>value2 Glob pattern mapping example: key1=>value1 key?=>value2 key*=>value3 In the above example, the value key1 would be mapped to value1 because it is the first line matching the input value. The values key2 to key9 would be matched by the second rule. The value key123 would be matched by the third rule. When no rule matches the output value is set to null. If you want to map a few known bar codes to meaningful task names but also want to use the plain barcode when no mapping rule matches, you can use the following approach (the input value would be set to {barcode_text} in this example): Mapping definition: 123321123=>Meeting 989878945=>Office *=>{barcode_text} The third rule matches all unknown bar code values and maps the value to the original value. You can also use a condition Expression to detect not mappable values. The last twenty not mappable values detected while executing the action will be remembered in a list and can be added by using the button Add unmapped values... Output Variable The name of the variable to store the result in (usually without curly braces except when you want to create dynamically named variables). Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables mapped_value the target value Message Dialog The action Message Dialog shows a dialog with a message and an optional title. Examples: Show the text of an incoming SMS directly in a dialog. Settings Title The optional title of the dialog. Variables are supported. Message The message to show in the dialog. Variables are supported. Activate Timeout Whether an automatic timeout should automatically hide after the specified time. Duration The amount of time to automatically close the dialog and to continue the flow. Modify Call Log The action Modify Call Log marks the entries of the call log as acknowledged or clears the call log. Examples: Delete the call log every Monday morning. Settings Operation if the entries should be marked as acknowledged or if the call log should be cleared. Numbers The list of callnumbers to delete. Multiple numbers can be separated by comma. Glob patterns (*, ?) can be used to filter on similar numbers like corporate number ranges: Examples: +17001111111 +17001111111,+17002222222 *70033311* *70033311*,*70033?22* Special characters like +, - and . are removed before comparing the number. Modify Image The action Modify Image can be used to modify an image that was previously loaded with an action Init Variable Image File. Examples: Load an image, shrink the size and send the smaller file by mail. Settings Variable The name of the variable holding the pixel data of the image. Variables are supported. Operation How the image should be modified (scale, rotate or mirror). Width The new width of the image. The width is adjusted proportionally, when only the new height is specified. Variables are supported. Height The new height of the image. The height is adjusted proportionally, when only the new width is specified. Variables are supported. Rotate How the image should be rotated. Mirror If the image should be mirrored horizontally or vertically. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables image_data the local variable of the image image_width the width of the image after the modification image_height the height of the image after the modification Move Files The action Move Files locally moves one or a list of files to the specified target directory or file. A move is implemented to use a rename operation when possible. If a rename is not possible, the file/folder is copied to the target directory and afterwards the source is deleted. Examples: Move all files in directory /mnt/sdcard/xyz/ to the folder /mnt/sdcard/xyz_backup/ Rename directory /mnt/sdcard/xyz to /mnt/sdcard/xyz_backup Settings Source Files A comma separated list of files or directories to move. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard When multiple files are matched the target has to be a directory. The directory will be created when it does not exist yet. A directory with an ending slash (like /mnt/sdcard/) matches the files contained in the directory like using /mnt/sdcard/*. Target The absolute path of the target file or directory. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Notification on Screen The action Notification on Screen shows a notification on the screen for a short period of time. Examples: Show a notification when a background flow sends your location by mail. Show a notification with the text of a received SMS. Settings Text The text to show. Variables are supported. Duration Whether to show the duration for a short duration (about 2 seconds) or longer (about 4 seconds). Notification on Statusbar The action Notification on Statusbar shows a notification on the status bar. The notification is displayed until the notification is clicked or clear is pressed. Examples: Show a notification when a background flow sends your location by mail. Settings Icon The icon to use for this notification. Title The title of the notification. Variables are supported. Message The message of the notification. Variables are supported. Play Sound Plays the default notification sound when checked. Vibrate Vibrates when checked. Flash LED Flash the notification LED using the supplied color. Notification LED and user defined colors are not supported on all devices. Ongoing (Premium) Flags this notification as an ongoing event and prevents the removal of this notification from the statusbar. A notification ID is mandatory when this option is selected. Keep on Clear (Premium) Prevents the removal of this notification from the statusbar. A notification ID is mandatory when this option is selected. Notification ID (Premium) Defines the ID (a number from 1 to 999) to use as the identification of this notification. This is useful when the notification is used for trigger Notification on Statusbar Selected or when the notification is used to show a profile like status. A notification with the same ID replaces an older notification of the same ID. The notification can be removed from the statusbar using the action Remove Notification on Statusbar. The button Remove can be used to remove a notification with this ID on the statusbar. Priority (Android 4.1+, Premium) Defines the priority of the notification. A notification with a low priority might be displayed in the expanded statusbar only (depends on Android version). Big Message (Android 4.1+, Premium) Defines a big message that will be displayed when the notification is expanded (by swiping down on the notification). The notification usually also shows the big message when the notification is displayed as the topmost notification on the notification drawer. You can affect the ordering of the notifications by using the priority setting. Actions (Android 4.1+, Premium) Up to three actions displayed as buttons when the notification is expanded (by swiping down on the notification). The notification usually also shows the action buttons when the notification is displayed as the topmost notification on the notification drawer. You can affect the ordering of the notifications by using the priority setting. Tip: Use action Execute Flows to execute a complex flow consisting of multiple actions and conditions. Following variables are supplied to the executed action: action_number: contains the number of the action (1, 2 or 3) action_text: the text label of the selected action button on the notification Open URL in Browser The action Open URL in Browser opens the browser with the specified URL. Tip: The browser can also be used to download a file by using a URL pointing to a PDF or other downloadable file. Examples: Open a news page every morning. Download a PDF every morning at 5am. Settings URL The url to open. Variables are supported. Tip: You can use a variable to open an URL that changes dynamically by date. http://test.com/newspaper_{triggertime,dateformat,yyyyMMdd}.pdf will be replaced to http://test.com/newspaper_20120123.pdf Use defined app Whether to use a defined app to open the URL or to let the system choose the most appropriate app. Package Name The app to open the URL. Variables are supported. Class Name The component inside the app to open the URL with. Variables are supported. Perform Action on Notification on Statusbar The action Perform Action on Notification on Statusbar clicks one of the action buttons which are usually available in the big, expanded notification on Android 4.1+. The flow must be executed by a trigger 'Notification on Statusbar Displayed' otherwise Automagic has no possibility to access the notification. Warning: Android 4.1+ is required. This function is not officially supported by Android and might not work on all devices. Examples: Automatically archive a mail when the mail contains a specific text. Settings Button The label of the button to click. The label needs to match the entered text exactly. Variables are supported. Plugin (Experimental) The action Plugin (Experimental) executes the action defined in a plugin. A flow has no technical way to wait for a plugin to finish the action. You can use an action Sleep to wait a short amount of time. Warning: This function is experimental and might not work with all existing plugins available in Google Play. We can not provide support for plugins. Note: Plugins can be defined using the interface description available from the app Locale: Locale developer documentation and Tasker: Tasker plugin extensions. Settings Plugin List of all available plugins found on the device. replace variables/modify configuration Script to dynamically replace variables and to modify the configuration passed to the plugin. Synchronous with Timeout Whether the plugin should be invoked synchronously and Automagic should wait for the plugin to return a result or not. Only a few new plugins support this mechanism, this mechanism should usually not be used when the plugin does not request to be executed this way. This option will automatically be enabled when the plugin is configured and the plugin supports synchronous execution. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables Tasker variables takes over the local Tasker variables returned by the plugin (without leading %-character) Post Tweet The action Post Tweet posts a regular Twitter message. Examples: Tweet your location every hour. Settings Twitter Account The Twitter account used to send the message. Message The message to send. Variables are supported. Post Twitter Direct Message The action Post Twitter Direct Message posts a Twitter direct message to one recipient. Examples: Tweet your location every hour to your wife. Settings Twitter Account The Twitter account used to send the message. To The recipient of the direct message (without leading @). Variables are supported. Message The message to send. Variables are supported. Query Content Provider The action Query Content Provider allows to load data from a content provider of another app. A content provider presents data to Automagic as one or more tables that are similar to the tables found in a relational database. Warning: This function allows to access data that's not officially made available by Android which might not be available on all device models and Android Version. Settings Content URI The URI of the content provider data. Variables are supported. Projection The list of tables to return. Variables are supported. Selection A filter declaring which rows to return, formatted like an SQL WHERE clause (excluding the WHERE itself). The selection can include ?-characters that will be replaced by the values provided in the Selection Arguments from the content provider. Variables are supported. Selection Arguments The values to use in the selection for each provided ?-character. Variables are supported. Sort Order How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Variables are supported. Result Type Defines how Automagic should provide the data to the flow: Table: Provides a list of rows each containing a list of values to the flow. List: Converts the returned table to a flat list. Single value: Provides only the first value of the returned data to the flow. Text: Converts the returned table to a CSV-text. Include header row Whether or not the returned result should include a row with the column titles. Variable The name of the variable to store the result in. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables result the resulting data as defined in Resultat-Typ Reboot The action Reboot restarts the device. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Restart the device every morning at 6am. Settings Options Options to pass to the kernel when the device is restarted. For example recovery to boot into recovery mode. Variables are supported. Remove Notification Missed Calls The action Remove Notification Missed Calls removes the missed calls notification in the statusbar. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Remove the missed calls notification when a number on a blocking list called in your absence. Remove Notification on Statusbar The action Remove Notification on Statusbar removes the specified or all notifications on the statusbar added by the action Notification on Statusbar. Example: Show a notification when a sound profile is active and remove the notification when the sound profile is deactivated. Settings Notification Type Whether the action should affect only notifications of Automagic or notifications of all apps in general (Android 4.3+) Notification ID The ID of the notification to remove. The ID must match the ID used in the action Notification on Statusbar. All removes all notifications irrespective of the ID. Notifications Whether to remove all removable notifications or only the notifications of the specified app. Package Name The name of the package/app to remove the notifications from. Variables are supported. Notification ID The ID of the notification to remove. Variables are supported. Trigger Notification on Statusbar Displayed provides the ID of the notification in variable id. Use {id} to remove the notification that triggered the flow. Request Sync The action Request Sync starts the synchronisation process of one or multiple accounts or some parts of the accounts. The order and the exact timing of the synchronisation is controlled by Android. The action does not wait for the synchronisation to finish. Examples: Disable the automatic synchronisation to save battery but execute the synchronisation manually every hour between 8am and 8pm. Settings Accounts The accounts to synchronize in format Type:Name. Glob patterns can be used to match multiple accounts. Variables are supported. * synchronises all accounts Google:* synchronises all Google accounts Authorities The parts/databases of the accounts to synchronize. Specify a * to synchronize all parts of the account. Glob patterns can be used to match multiple authorities. Variables are supported. * synchronises all authorities of the specified accounts com.android.calendar synchronises all calendars of the specified accounts Reregister Media Button Receiver The action Reregister Media Button Receiver registers Automagic as a receiver of media button events again. This is useful in conjunction with trigger Media Button Receiver when another app requested to receive the media button events and Automagic thus does not receive the events anymore. Restore Audio Volumes The action Restore Audio Volumes restores the audio volumes previously stored in global variables by action Store Audio Volumes. Examples: Store the audio volumes when a meeting begins, set all volumes to zero and restore the previously volumes when the meeting ends Settings Alarm Whether or not to restore the alarm volume and the name of the variable to restore the volume from. DTMF Whether or not to restore the DTMF volume and the name of the variable to restore the volume from. Music Whether or not to restore the music volume and the name of the variable to restore the volume from. Notification Whether or not to restore the notification volume and the name of the variable to restore the volume from. Ring Whether or not to restore the ringtone volume and the name of the variable to restore the volume from. System Whether or not to restore the system volume and the name of the variable to restore the volume from. Voice Call Whether or not to restore the voice call volume and the name of the variable to restore the volume from. Ringer Mode Whether or not to restore the ringer mode and the name of the variable to restore the volume from. Save Variable in Image File The action Save Variable in Image File saves the pixel data that was previously loaded with an action Init Variable Image File into a file. Examples: Load an image, shrink the size and send the smaller file by mail. Settings Variable The name of the variable holding the pixel data of the image. Variables are supported. File The path of the file to store the image in. The type is determined by the file extension. (.jpg, .webp and .png are supported). Variables are supported. Image quality How much the file should be compressed (0=small file/bad image quality, 100=big file/good image quality). The image quality is ignored for PNG-files. Variables are supported. Scan Barcode The action Scan Barcode opens an activity to scan a barcode using the camera of the device. Tip: You can use an action Map Values to map known barcode values like a QR code on a laboratory door to a project/task. Examples: Start recording the time in Gleeo Time Tracker based on a barcode on a laboratory door. Scan a barcode on a book and open the browser to search the book on Amazon. Settings Timeout The timeout duration to automatically cancel the barcode scan. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables operation the operation used to close the scan barcode activity. Can be one of: ok when a bar code has been successfully scanned cancel when the user pressed the back button or another button to leave the activity timeout when the activity was closed by a timeout barcode_text the value of the barcode as a text string barcode_format the format of the barcode Script The action Script executes a script doing some simple calculations and can be used to modify variables. Script Description Reserved Keywords Following list of keywords are reserved and are therefore not allowed to be used as a variable name: abstract alias and AND assert boolean break byte case catch char class const continue def default do double else elsif ensure enum extends false final finally float for goto if implements import in instanceof int interface long mod native new next not NOT null or OR package private protected public redo repeat rescue retry return self short static strictfp super switch synchronized then this throw throws to transient true try undef unless until void volatile when while xor XOR yield Only a few of the reserved keywords are currently used but are reserved for future extensions of the scripting language. Comments Scripts can contain comments that are not executed when the script is interpreted. text after // to the end of the line text between /* and */. Such a comment can also span multiple lines. Examples: a=1+2;//this is a comment b=a+3; c=b+a; /* this is a multiline comment */ d=c*2; Variables A value like a number or a string can be stored in a variable using the assignment operator = Variable names are case sensitive. A variable name has to start with a letter, a currency symbol (such as "$") or a connecting punctuation character (such as "_"). The rest of the variable name can also contain digits. Unicode characters are supported, but it is highly recommended to use US-ASCII characters. Examples: a = 3;//assign the number three to the variable a b = a;//assign the value stored in variable a to the variable b There exist two types of variable scopes: Flow Local Every variable declared in a script, expression or inline script is by default flow local as long as the name of the variable does not start with global_. Examples of flow local variables with a value assigned: a = 1; number one stored in a variable called 'a' var1 = 1.234; decimal number 1.234 stored in a variable called 'var1' var_123 = "Hello World"; string "Hello World" stored in a variable called 'var_123' _m = true; boolean value 'true' stored in a variable called '_m' var2 = a; stores the value stored in variable 'a' in a variable called 'var2' Global Every variable that starts with global_ is global and therefore accessible by other flows and will also be persisted to the external memory and reloaded when you stop/restart the Automagic service. Examples of global variables with a value assigned: global_a = 1; number one stored in a variable called 'global_a' global_var1 = 1.234; decimal number 1.234 stored in a variable called 'global_var1' global_var_123 = "Hello World"; string "Hello World" stored in a variable called 'global_var_123' global_m = true; boolean value 'true' stored in a variable called 'global_m' Variables are references to values (like a pointer). Assigning the value stored in a variable to another variable does not copy the value but both variables point to the exact same value. This is especially important when modifiable values like lists are used. Example: a = newList(1, 2, 3); b = a; //at this point both variables a and b point to the exact same list (the list only exists once) addElement(a, 4); //the list now contains 1, 2, 3, 4 //both variables a and b still point to the same list //both loops therefore print the values 1, 2, 3 and 4 in the log: for (x in a) { log("{x}"); } for (x in b) { log("{x}"); } Operators Following operators are supported in expressions: + addition and string concatenation - subtraction * multiplication / division % modulo division < less than <= less than or equal > greater than >= greater than or equal == equal != not equal AND, && and OR, || or XOR, ^ exclusive or NOT, ! not (unary) Expressions An expression is a construct made up of variables, operators and function calls, that evaluates to a single value. Examples: 42 1+2 a=1 b=a+1 c=(a+1)*(b-3) global_a=1 a=sqrt(9) b=addDays(triggertime, 3) c=replace("hello automagic", "automagic", "world") b=addDays(triggertime, sqrt(9)) b="Hello " + "World" a=true b=false c=a AND b OR c>=5 c=NOT a AND NOT b String Inline Expressions Inline expressions in strings can be used to replace a part of the string by a variable or expression. The rules described here also apply to the text fields of triggers, conditions and actions documented in the help page with Variables are supported. An inline expression is enclosed in curly braces: {expression} Example simple inline expressions: var1="Test"; var2="This is a {var1}"; 'var2' will contain the string "This is a Test" after the script is evaluated var="one plus two is {1 + 2}"; 'var' is evaluated to "one plus two is 3" Inline expressions can be formatted by defining a format type and depending on the format type a pattern to use: {var,formattype,pattern} Example inline expressions with formatting: var="Today is {getDate(),dateformat,dd.MM.yyyy}"; 'var' will contain the string "Today is 21.07.2012" var="It's {getDate(),dateformat,HH:mm}"; 'var' will contain the string "It's 12:32" var="It's {getDate(),dateformat,timezone,UTC,HH:mm}"; 'var' will contain the string "It's 10:32" var="Value: {1.456789,numberformat,0.00}"; 'var' is evaluated to "Value: 1.46" var="I'm here: {location,locationformat,decimal}"; 'var' is evaluated to "I'm here: 46.76817,7.603751" var="{files,listformat,comma}"; 'var' is evaluated to "/mnt/sdcard/file1,/mnt/sdcard/file2" Supported format types: dateformat: Formats the date using the specified date pattern. See pattern characters for a description of the supported patterns. The optional sub-format timezone along with the name of the timezone can be used to define the timezone used to format the date/time. Accepted timezone names are either UTC, GMT or the Olson name of a timezone name of the form Area/Location, such as America/Los_Angeles (device dependent). GMT is used for unknown timezone names. Examples: {triggertime,dateformat,timezone,UTC,HH:mm} {triggertime,dateformat,timezone,America/Los_Angeles,HH:mm} {triggertime,dateformat,timezone,Europe/London,HH:mm} {triggertime,dateformat,timezone,Europe/Paris,HH:mm} {triggertime,dateformat,timezone,Africa/Harare,HH:mm} numberformat: Formats the number using the specified decimal format. See pattern characters for a description of the supported patterns. locationformat: Formats the address of the location when available in a single line of text when no format is specified. (Data connection is required) Following locationformat patterns are supported: multiline: Formats the address as a multiline text. (Data connection is required) decimal: Formats latitude,longitude as decimal numbers (+/-DDD.DDDDD). Example: 46.76817,7.603751. microdegrees: Formats latitude,longitude multiplied by 1'000'000 as integers. Example: 46768355,7604022. This format can be useful in a call to a REST service. swiss: Formats latitude,longitude converted to the Swiss coordinate system. listformat: Formats the list of files (see action Init Variable File List) as a multiline text with one file per line when no pattern is specified. Following listformat patterns are supported: comma: Formats the list of files as a comma separated list. Inline expressions in strings with single quotes are not interpreted. This can be helpful for regular expressions, where a quantifier like {2} in the pattern ([0-9]){2}.* should not be replaced with 2. Example: var='Today is {getDate(),dateformat,dd.MM.yyyy}'; 'var' is evaluated to 'Today is {getDate(),dateformat,dd.MM.yyyy}' Control Structures if Statement An if statement can be used to evaluate a block of code when a condition is true. Example: if (a<3) { b = 0; } else { b = 1; } In this example variable b is assigned the value zero when the variable a contains a value less than 3, b is assigned the value one when the variable a contains a value greater or equal to 3. for Loop A for loop evaluates a block of code for every value in a list of values. Example: list=newList(1, 2, 3); for (a in list) { log("a contains {a}"); } This example would print the following output in the log: a contains 1 a contains 2 a contains 3 Numeric List Creation Expression Since it is very common to create a list containing a sequence of numeric values there is a shorthand to create such a list using [<number> to <number>, <step size>]: Examples: list=[1 to 10];//without the optional step size for (a in list) { log(a); } //logs 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 //inlined for (a in [1 to 10]) { log(a); } //logs 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 //inlined with step size of 2 for (a in [1 to 10, 2]) { log(a); } //logs 1, 3, 5, 7, 9 //inlined with negative step size of -3 for (a in [10 to 1, -3]) { log(a); } //logs 10, 7, 4, 1 while Loop A while-loop evaluates a block of code as long as a condition is true. Example: a = 0; while (a < 10) { log(a); a = a + 1; } //logs 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Functions Built in functions can be called to calculate trigonometric values, create lists, extract values from an XML and much more. Examples: a = sin(1.2);//evaluates to 0.932039... a = max(1, 2, 3, 4, 5);//evaluates to 5 a = isEmpty([1 to 10]);//evaluates to false a = containsElement([1 to 10, 2], 3);//evaluates to true Tip: Please also see the Script examples page that shows some commonly used script snippets. Object getValue(String name, Object default) Returns the value of the variable named name or returns default when the variable is undefined or null. Object setValue(String name, Object value) Sets the variable named name to value and returns value Object removeVariable(String name) Removes the variable named name. Number abs(Number value) Returns the absolute value of value. Number pow(Number base, Number exponent) Returns the value of the first argument raised to the power of the second argument. Number sqrt(Number a) Returns the square root of the number. Number sin(Number a) Returns the sine of the angle in radians. Number cos(Number a) Returns the cosine of the angle in radians. Number tan(Number a) Returns the tangent of the angle in radians. Number asin(Number a) Returns the sine of the angle in radians. Number acos(Number a) Returns the arc cosine of the angle in radians. Number atan(Number a) Returns the arc tangent of the angle in radians. Number atan2(Number y, Number x) Returns the angle of the polar representation of the rectangular coordinate (x, y). Number sinh(Number a) Returns the hyperbolic sine of the value. Number cosh(Number a) Returns the hyperbolic cosine of the value. Number tanh(Number a) Returns the hyperbolic tangent of the value. Number toRadians(Number a) Converts the Number from degrees to radians. Number toDegrees(Number a) Converts the Number from radians to degrees. Number round(Number a) Rounds the number to the nearest integer. Number ceil(Number a) Returns the next highest integer value by rounding up value if necessary. Number floor(Number a) Returns the next lowest integer value by rounding down value if necessary. Date addDays(Date d, Number a) Returns a new date by adding a number of days to the date d. Date addHours(Date d, Number a) Returns a new date by adding a number of hours to the date d. Date addMinutes(Date d, Number a) Returns a new Date by adding a number of minutes to the date d. Date addSeconds(Date d, Number a) Returns a new date by adding a number of seconds to the date d. Date getDate() Returns the current date and time. Date getDate(String date, String pattern) Converts the string to a date using the specified pattern. (see pattern characters.) Date getDate(Number year, Number month, Number day) Returns the Date specified by the arguments. Date getDate(Number year, Number month, Number day, Number hours, Number minutes, Number seconds) Returns the date specified by the arguments. Date getDate(Date date, Number hours, Number minutes, Number seconds) Returns the date specified by the arguments. Number getUptimeMillis() Returns milliseconds since boot, not counting time spent in deep sleep. Number getElapsedRealtimeMillis() Returns milliseconds since boot, including time spent in sleep. Number getDurationMillis(String duration) Returns the duration in milliseconds specified by the duration string (e.g. "2m 15s" returns 135000). String getDurationString(Number duration) Returns the duration string representing the specified milliseconds (e.g. 135000 returns "2m 15s"). Number getByteSize(String byteSize) Returns the number of bytes specified by the string (e.g. "10kb 15b" returns 10255). String getByteSizeString(Number byteSize) Returns the formatted byte string representing the specified bytes (e.g. 10255 returns "10kb 15b"). Number toNumber(String number) Converts the specified parameter to a number. Number min(Number n1, Number n2, ...) Returns the smallest number of the arguments. Number max(Number n1, Number n2, ...) Returns the largest number of the arguments. Boolean isEmpty(String s) Returns whether the string is empty or not. Number length(String s) Returns the number of characters in string s. String substring(String s, Number start, Number end) Returns the substring of the specified string. String substring(String s, Number start) Returns the substring starting at the specified index. String left(String s, Number length) Returns the first length characters of the specified string. String right(String s, Number length) Returns the last length characters of the specified string. Number indexOf(String s, String search) Returns the first index of search in s. Number indexOf(String s, String search, Number start) Returns the first index of search after start in s. Number lastIndexOf(String s, String search) Returns the last index of search in s. Number lastIndexOf(String s, String search, Number start) Returns the last index of search before start in s. Boolean startsWith(String s, String prefix) Checks whether the string s starts with prefix. Boolean endsWith(String s, String suffix) Checks whether the string s ends with suffix. Boolean contains(String s, String search) Checks whether the string s contains the substring search. List split(String s, String pattern) Splits the string s into a list of strings by using the regular expression pattern as the delimiter. (see Regular expressions.) List splitCSVRecord(String s) Splits the comma delimited string s into a list of tokens. Takes double quotes for escaped fields into consideration. Boolean matches(String s, String pattern) Returns whether the string s matches the regular expression pattern. (see Regular expressions.) Boolean matches(String s, String pattern, List groups) Returns whether the string s matches the regular expression pattern and fills the captured groups into the existing list groups. (see Regular expressions.) String replace(String s, String search, String replace) Returns a modified string by replacing all occurrences of search with replace in string s. String replaceAll(String s, String regex, String replacement) Returns a modified string by replacing all substrings matching regex with replacement in string s. (see Regular expressions.) String trim(String s) Returns a modified string by removing all leading and trailing whitespace from string s. String concat(Object o1, ...) Returns the string concatenation of the specified objects. String toUpperCase(String s) Converts the string to upper case using the rules of the default locale. String toLowerCase(String s) Converts the string to lower case using the rules of the default locale. String encodeURLForm(String urlPart) URL-encodes the specified urlPart (for application/x-www-form-urlencoded, spaces are encoded as +). String encodeURL(String urlPart) URL-encodes the specified urlPart (spaces are encoded as %20). String encodeHTML(String text) HTML-encodes the specified text. List newList(Object o1, ...) Returns a new list containing the specified objects. List copyList(List list) Returns a copy of specified list (flat copy). Number length(List list) Returns the number of elements in list. Boolean isEmpty(List list) Returns whether the list contains any elements or not. List addElement(List list, Object o1) Returns the same list after adding the object at the end of the list. Returns a new list when the list should not exist yet. List addElement(List list, Number index, Object o1) Returns the same list after adding the object at the specified index (zero based). List removeElementValue(List list, Object o1) Returns the same list after removing all elements with the specified value. Boolean containsElement(List list, Object o1) Returns true when the list contains the specified element. Object removeElement(List list, Number index) Removes the object at the specified index (zero based) and returns the removed object. Object getElement(List list, Number index) Returns the object at the specified index (zero based). Object getRandomElement(List list) Returns a random element of the list. Number indexOfElement(List list, Object value) Returns the first index of the element in the list or -1 when the element is not contained in the list. List sort(List list, Boolean casesensitive, Boolean natural) Modifies the list by sorting the values. List reverse(List list) Modifies the list by reversing the order of the contained values. Map newMap() Returns a new empty map Boolean isEmpty(Map map) Returns whether the map contains any elements or not. Number length(Map map) Returns the number of elements in map. Map copyMap(Map map) Returns a copy of specified map (flat copy). Map addMapEntry(Map map, String key, Object value) Adds a new entry key->value to the map and returns the map. Returns a new map when the map should not exist yet.", Object getMapValue(Map map, String key) Returns the object for key or null when no mapping for key exists. Object getMapValue(Map map, String key, Object default) Returns the object for key or default when no mapping for key exists. Object removeMapEntry(Map map, String key) Removes the entry for the given key and returns the value. List getMapKeys(Map map) Returns a list of the keys of map. List getMapValues(Map map) Returns a list of the values of map. String evaluateXPathAsString(String xml, String xpath) Evaluates the XPath expression on the given XML and returns the result as a string. (see XPath Specification.) String hash(String value, String encoding, String algorithm) Calculates the hash of value using the specified encoding (like UTF-8 or UTF-16LE) and hashing algorithm (like MD5 or SHA1). Object log(Object value) Logs the specified object in the Automagic log and returns the unmodified object. Object eval(String script) Evaluates the string as a script and returns the value of the last expression. Number random() Returns a random number between 0.0 and 1.0 (exclusive). Number random(Number low, Number high) Returns a random number between low and high (inclusive). Boolean sleep(Number milliseconds) Waits for the specified amount of milliseconds. Boolean sleep(String duration) Waits for the specified duration like "2m 30s". Boolean existsFile(String path) Checks whether the file denoted by path exists or not. Boolean isDirectory(String path) Checks whether the file denoted by path is a directory. Number getPixelColor(Bitmap image_data, Number x, Number y) Returns the color (argb) of the pixel of the image at location x, y. Number getRed(Number color) Returns the red component of the specified color. Number getGreen(Number color) Returns the green component of the specified color. Number getBlue(Number color) Returns the blue component of the specified color. Number getAlpha(Number color) Returns the alpha component of the specified color. Number newColor(Number a, Number r, Number g, Number b) Returns a new color from the specified ARGB components. Number distance(Location loc1, Location loc2) Calculates the distance between locations loc1 and loc2 in meters. Location newLocation(Number latitude, Number longitude) Creates a new Location for the specified latitude and longitude. String setHTTPResponseHeader(String header, String value) Sets the HTTP response header to the specified value and returns the value. Number setHTTPResponseStatus(Number status) Sets the HTTP response status to the specified value and returns the value. Object getWidgetElementProperty(String widgetName, String elementName, String property) Gets the current value of the property of the specified widget element. Object setWidgetElementProperty(String widgetName, String elementName, String property, Object value) Sets the given property of the specified widget element to value. String getAppName(String packageName) Returns the display name of the app from the specified package or null when not available. String getActivityName(String packageName, String className) Returns the display name of the activity from the specified package and class or null when not available. String getServiceName(String packageName, String className) Returns the display name of the service from the specified package and class or null when not available. List getFlowNames() Returns a list containing the names of all flows. List getWidgetNames() Returns a list containing the names of all widgets. Note: Are you missing a function? Please let us know in the forum. Advanced Topics Every executable expression in a script evaluates to a value. A block of code evaluates to the value produced by the last expression in the block and allows to create inline scripts with multiple expressions: s = "{a=1;b=2}"; log(s);//logs 2 a = true; b = if (a) 1 else 2; log(b);//logs 1 for (a in [0 to 10]) { log(if(a<5) "X" else "-"); } //logs X, X, X, X, X, -, -, -, -, -, - b=0; log(for(a in [1 to 10]) {b=b+a}); //logs 55 Send Broadcast The action Send Broadcast send a broadcast using the specified intent. Please also see the documentation of the Android Intent class. Tip: Some broadcast receivers require special permissions to be launched. Check the log after testing the action when the broadcast receiver fails. Examples: Control an app that exposes its actions using a broadcast receiver. Settings Action The action to use in the intent. Variables are supported. Category List The list of categories as a comma separated list to add to the intent. Variables are supported. Data URI The data URI to set on the intent. Variables are supported. Mime Type The mime type to set on the intent. Variables are supported. Package Name The specific package to launch. Variables are supported. Class Name The specific class to launch. Variables are supported. Flag List The flags to add to the intent. Extras A script used to add an unlimited number of extras to the intent. Additionally to the regular built in functions of Automagic also the following functions are available to add the extras to the intent: putString(key, value) putBoolean(key, value) putFloat(key, value) putDouble(key, value) putByte(key, value) putShort(key, value) putChar(key, value) putInt(key, value) putLong(key, value) putUri(key, value) putBooleanArray(key, value) putByteArray(key, value) putIntArray(key, value) putIntegerArrayList(key, value) putLongArray(key, value) putFloatArray(key, value) putDoubleArray(key, value) putShortArray(key, value) putCharArray(key, value) putStringArray(key, value) putStringArrayList(key, value) putUriArray(key, value) putUriArrayList(key, value) Example: putString("key1", "Hello"); putBoolean("key2", true); putDouble("key3", 1.23); putInt("key4", 42); putInt("key5", a+4*b); See action Script for a description of the scripting language. Send ordered broadcast Whether Automagic should send an ordered broadcast which allows a broadcast receiver to provide a result to Automagic. Access Result Extras Script to access the returned extras. Following functions are supported: getString(String key) getChar(String key, String defaultValue) getBoolean(String key, Boolean defaultValue) getFloat(String key, Number defaultValue) getDouble(String key, Number defaultValue) getByte(String key, Number defaultValue) getShort(String key, Number defaultValue) getInt(String key, Number defaultValue) getLong(String key, Number defaultValue) getBundle(String key) getUri(String key) getBooleanArray(String key) getByteArray(String key) getShortArray(String key) getCharArray(String key) getIntArray(String key) getIntegerArrayList(String key) getLongArray(String key) getFloatArray(String key) getDoubleArray(String key) getStringArray(String key) getUriArray(String key) getUriArrayList(String key) getParcelableAsString(String key) See action Script for a description of the scripting language. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables result_code (only if Send ordered broadcast is enabled) the returned result code operation (only if Send ordered broadcast is enabled) string "ok", when result_code was -1, "cancel" otherwise data_string (only if Send ordered broadcast is enabled) the data of the received intent as a string abort_broadcast (only if Send ordered broadcast is enabled) boolean flag indicating whether or not the broadcast receiver aborted the broadcast. Send SMS The action Send SMS sends an SMS to the specified phone number. Examples: Send an SMS with your location as a response to an SMS containing the text Where are you? Send an SMS to your partner when you are on your way home. Settings To The number to send the SMS to. Variables are supported. Example: use {sms_sender} to fill in the phone number received in an SMS Received trigger. Message The message to send. Variables are supported. Example: use {location,locationformat} to fill in a nearby address of the location. The location can be determined using an action Init Variable Location. Truncate Whether to truncate the message text to fit within one SMS or to send the message using multiple SMS parts. SMS Sending Limit Defines how many SMS can be sent within the given amount of time. The action interrupts the flow with an error when the limit is exceeded. Store sent SMS Whether to store the sent SMS in the sent messages of the devices messaging app or not. This function is not officially supported by Android and might not work on all devices. Android 4.4+ automatically stores all sent SMS. Send Wake on LAN Packet The action Send Wake on LAN Packet sends a Wake On LAN packet using UDP to the specified IP address and port. Examples: Start your NAS daily at 6am Settings MAC Address The MAC address to send in the packet data. Variables are supported. IP/Port The IP address to send the packet to. Variables are supported. Top Set Airplane Mode The action Set Airplane Mode sets the airplane mode of the phone on or off. Warning: This function requires root access starting with Android 4.2 and is not officially supported by Android. Examples: Reduce radiation at night by turning on the airplane mode. Turn on airplane mode to reduce battery usage when battery level is below 20%. Settings Turn Airplane Mode On/Off Whether to turn airplane mode on or off. Set Alarm The action Set Alarm creates an alarm in the alarm app available on the device. Settings Label The label to use in the alarm. Variables are supported. Hour (023) The hour to use in the alarm. Variables are supported. Minutes (059) The minutes to use in the alarm. Variables are supported. Set Audio Manager Mode The action Set Audio Manager Mode changes the mode of the audio manager to either Normal, Ringtone or In call. The audio mode encompasses audio routing AND the behavior of the telephony layer. Settings Audio Manager Mode The mode to set. Set Audio Stream Volume The action Set Audio Stream Volume changes the volume of a audio stream of a specific type. Examples: Reduce ringer volume when you are in your office. Increase music volume when you plug in the earphones. Settings Sound Type The type of the audio stream to adjust. Volume The volume level to use. The maximum level differs for the different audio streams. Play Sound Whether to play the short volume adjustment sound when the action is executed. Show Volume Level Popup Whether to show a popup indicating the new volume level. Set Auto Sync State The action Set Auto Sync State turns the automatic synchronisation on or off. Examples: Turn the automatic synchronisation off at night. Turn off the automatic synchronisation of the company account on weekends. Settings Auto Sync Whether to turn auto sync on or off. Global or Specific Whether to change the auto sync globally or only for a the specified accounts/authorities. Changing the global switch does not change the settings of the individual accounts/authorities. Accounts The accounts to change in format Type:Name. Glob patterns can be used to match multiple accounts. Variables are supported. * changes all accounts Google:* changes all Google accounts Authorities The parts/databases of the accounts to change. Specify a * to change all parts of the account. Glob patterns can be used to match multiple authorities. Variables are supported. * changes all authorities of the specified accounts com.android.calendar changes all calendars of the specified accounts Set Accelerometer Rotation The action Set Accelerometer Rotation turns on or off the Auto-rotate screen setting. Note: An application can request to use the accelerometer for screen orientation changes, even when this setting is turned off. Settings Auto-rotate screen Whether the system should automatically rotate the screen depending on the orientation of the device or not. Set Bluetooth SCO State The action Set Bluetooth SCO State turns Bluetooth SCO for communications on or off. Examples: Turn Bluetooth SCO off even when a headset is connected. Settings Bluetooth SCO Whether to turn Bluetooth SCO on or off. Check Start Bluetooth SCO to route the audio to the bluetooth device or Stop Bluetooth SCO to stop routing the audio to your bluetooth device when it was previously started with Automagic. Note: Starting/stopping Bluetooth SCO is not supported on all devices and is known to be buggy on some devices. Set Bluetooth State The action Set Bluetooth State turns Bluetooth globally on or off. Examples: Turn Bluetooth on when the phone is connected to a power source. Turn Bluetooth off when the battery level is below 30%. Settings Bluetooth Whether to turn Bluetooth on or off. Set Bluetooth Tethering State The action Set Bluetooth Tethering State turns Bluetooth tethering setting on or off. Note: This action does not supply the Bluetooth tethering feature by itself, it only turns on the setting. Some providers remove the Bluetooth tethering feature. This action can not turn on tethering on such a phone. Warning: This function is not officially supported by Android and might not work on all devices. Warning: This function requires Android 3+. Settings Bluetooth Tethering Whether to turn Bluetooth tethering on or off. Set Car UI Mode The action Set Car UI Mode puts the device into car UI mode. Note: Not supported by all devices. Examples: Launch the car dock UI mode of an app when you don't actually own the car dock. Settings Car UI Mode Whether to turn the car UI mode on or off. Launch Dock/Home Whether or not to start the dock/home screen when available on this device. Set Data Roaming State The action Set Data Roaming State turns the global data roaming setting on or off. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Example: Activate data roaming abroad every morning for 10 minutes to synchronize the mails and deactivate data roaming again for the rest of the day. Settings Data Roaming Whether to turn data roaming on or off. Set Default Input Method The action Set Default Input Method changes the current input method/keyboard. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Use Hacker's Keyboard in landscape mode and otherwise the default keyboard Settings Input Method The keyboard to use. Set Ringtone The action Set Ringtone sets the default ringtone of the specified type (ringtone, alarm or notification). Examples: Use a different ringtone at home. Settings Type The type of ringtone to set. Select Sound To select the sound of the category above. Set Flow State The action Set Flow State enables or disables one or many flows. Examples: Disable all flows using networking features when you are roaming. Disable all time tracking flows on Saturday and Sunday. Settings Flow pattern list A comma separated list of flow names to enable or disable. Glob patterns * and ? can be used to match similar named flows. Variables are supported. Examples: Test Flow Test Flow, SMS Flow *time tracking* Exclude flow pattern list A comma separated list of flow names to not affect even when the field Flow pattern list includes the flow. Glob patterns * and ? can be used to match similar named flows. Variables are supported. Enable or disable flows Whether to enable or disable the flows. Set GPS State The action Set GPS State turns GPS globally on or off. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Turn GPS on when Google Maps is started. Settings GPS Whether to turn GPS on or off. Set Keyguard State The action Set Keyguard State globally disables or reenables the keyguard after it was disabled by this action. Warning: The device keyguard will not turn on even when locking the device using the power button when the keyguard is disabled using this action (device specific). Warning: The official API will be removed in a future release of Android and this action will stop working depending on Android version and device manufacturer. Examples: Disable the keyguard when the shopping list is started from the background in a specific location. Reenable the keyguard when the shopping list app is stopped. Settings Keyguard Whether to disable or reenable the keyguard when it was previously disabled by this action. Set Lock Pattern State The action Set Lock Pattern State enables or disables the system setting whether the lock pattern should be used as the screen lock. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Example: Deactivate the pattern lock at home Settings Lock Pattern Whether to enable or disable the lock pattern. Method Secure setting: Changes the setting in the regular settings database of Android (Android 4.2 and below) Database: Directly accesses the database containing the lock settings (Android 4.3+) Service: Asks the system service to change the setting (Android 4.3+) Set Lock PIN/Password The action Set Lock PIN/Password sets the PIN/Password of the screen lock or resets the screen lock. The action can be used to deactivate the screen lock: Important: Set the screen lock in the settings of Android to 'None' activate the desired PIN/Password screen lock in the settings of Android use the option 'Clear PIN/Password' in the action to disable the screen lock Note: The procedure might not work on all Android versions. The screen lock will not be dismissed when the lock screen is currently showing on screen. Examples: Deactivate the screen lock when you are connected to the WiFi at home. Settings Clear or Set PIN/Password Whether to set a PIN/Password or to clear the PIN/Password. PIN or Password Whether you want to set a PIN or a Password. PIN The PIN to set. Password The password to set. Set Microphone Mute The action Set Microphone Mute mutes or unmutes the microphone of the phone. Examples: Mute the microphone when the device screen is facing down. Settings Mute Microphone Whether to mute or unmute the microphone. Set Mobile Datanetwork State The action Set Mobile Datanetwork State turns the mobile datanetwork on or off. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Turn the mobile datanetwork off at night. Settings Mobile Datanetwork Whether to turn mobile datanetwork on or off. Set Mobile Network Mode (2G/3G) The action Set Mobile Network Mode (2G/3G) changes the network mode of the phone. Warning: This function is not officially supported by Android and might not work on all devices. Settings Mobile Network Mode The network mode to use. Strikethrough values are most likely not supported by the device. Set Network Location State The action Set Network Location State changes the setting whether the system can use WiFi access points and the mobile network to determine your location. Note: Android shows a confirmation dialog on some devices. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Turn on the network location when Google Maps is started Settings Network Location Whether the network location provider can be used to determine the location. Set NFC State The action Set NFC State turns NFC globally on or off. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Turn NFC on when entering the office to scan NFC tags. Settings NFC Whether to turn NFC on or off. Set Night Mode The action Set Night Mode turns the night mode of the device on or off or activates the automatic switch based on time and location. Note: Not supported by all devices. Examples: Activate the night mode of the device at 10pm and turn back to normal mode at 6am. Settings Night Mode Whether to turn night mode on, off or let the device handle the mode switching based on time and location. Set Ringer Mode The action Set Ringer Mode changes the ringer to either Normal, Silent or Vibrate mode. Examples: Turn your phone to vibrate in your office. Turn your phone to normal mode when plugged in to a power adapter. Turn your phone to normal and maximise the ringer volume when you get an SMS containing the text Phone Lost! Settings Ringer Mode The ringer mode to set. Set Screen Brightness The action Set Screen Brightness changes the screen brightness. Examples: Turn down the screen brightness when the battery is below 50%. Turn the screen brightness to maximum when the power adapter is connected. Settings Automatic brightness Whether to use automatic brightness or the value specified using the slider. Variables are supported. Set Screen Orientation The action Set Screen Orientation forces the device to use the specified screen orientation setting. It can be used to force the screen to always use landscape mode or to use the sensor to enable reverse portrait and reverse landscape orientations. Warning: This function is not officially supported by Android and might not work on all devices. Some apps like launchers or games might crash when the screen can not be changed to the rotation required by the app. Examples: Force the device to use landscape mode even for the launcher Settings Screen Orientation The orientation setting to force: Reset to default: Resets to the device default so the device can use the orientation it wants to Landscape: Force landscape Portrait: Force portrait Sensor: Force the use of the sensor detected orientation, even when an app requests landscape only Don't use sensor: Don't allow to use the sensor for orientation determination Sensor Landscape: Landscape or reverse landscape as determined by the sensor (from Android 2.3) Sensor Portrait: Portrait or reverse portrait as determined by the sensor (from Android 2.3) Reverse Landscape: Force reverse landscape (from Android 2.3) Reverse Portrait: Force reverse portrait (from Android 2.3) Sensor all orientations: All four possible orientations as determined by the sensor (from Android 2.3) Show status bar notification to reset Shows a lock icon in the statusbar to indicate that an orientation setting is enforced. Selecting the notification resets to the default value and is the same as executing this action with Reset to default Set Screen Timeout The action Set Screen Timeout changes the screen timeout. Examples: Raise the screen timeout to 10 Minutes when the browser is started. Lower the screen timeout to 15 Seconds when the battery is almost empty. Settings Screen Timeout The new screen timeout to set. Note: Not all devices support all timeouts. Some devices round the value to the most similar value as soon as the Android settings page is opened. Other devices modify the value to the minimum of (15 seconds) when the value is not supported. Set Speakerphone State The action Set Speakerphone State turns the speakerphone of the phone on or off. On most devices a call must be active for this action to have any effect. Examples: Turn the speakerphone on an incoming call and the phone is in the car dock. Settings Speakerphone Whether to turn the speakerphone on or off. Set System Locale The action Set System Locale changes the currently use system locale. Warning: This function is not officially supported by Android and might not work on all devices. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. (Android 4.2+) Settings Locale The technical name of the locale to set. Variables are supported. Set System Setting The action Set System Setting stores the specified value in the settings database of the system. Warning: Modifying system settings to unsupported values can possibly harm your device or crash the system. Use at your own risk! Note: Changes to some settings are not immediately picked up by the system but require an addition event to occur like turning the screen off and back on. Some settings need to be changed by special APIs, changing the value of such settings in the settings database are ignored by the system. Examples: Change the value of a ROM specific setting not available in a regular action in Automagic Settings working on different devices (not available on all devices) Pulse notification light/LED Category:System Name: notification_light_pulse Value: 0=off 1=on Samsung S3 specific settings (not available on all devices) Driving mode Category:System Name: driving_mode_on Value: 0=off 1=on Power saving mode Category:System Name: psm_switch Value: 0=off 1=on Blocking mode Category:System Name: dormant_switch_onoff Value: 0=off 1=on Multi window mode Category:System Name: multi_window_enabled Value: 0=off 1=on S Beam mode Category:System Name: sbeam_mode Value: 0=off 1=on Vibration intensity Category:System Name: VIB_RECVCALL_MAGNITUDE VIB_NOTIFICATION_MAGNITUDE VIB_FEEDBACK_MAGNITUDE Value: 0=weak to 5=strong Samsung S5 specific settings (not available on all devices) Car mode Category:System Name: car_mode_on Value: 0=off 1=on Power saving mode Category:System Name: powersaving_switch Value: 0=off 1=on Blocking mode Category:System Name: dormant_switch_onoff Value: 0=off 1=on Multi window mode Category:System Name: multi_window_enabled Value: 0=off 1=on Toolbox Category:System Name: toolbox_onoff Value: 0=off 1=on Smart stay Category:System Name: intelligent_sleep_mode Value: 0=off 1=on Smart pause Category:System Name: smart_pause Value: 0=off 1=on Touch sensitivity Category:System Name: auto_adjust_touch Value: 0=off 1=on Vibration intensity Category:System Name: VIB_RECVCALL_MAGNITUDE VIB_NOTIFICATION_MAGNITUDE VIB_FEEDBACK_MAGNITUDE Value: 0=weak to 5=strong CyanogenMod specific settings (not available on all devices) Expanded desktop Category:System Name: expanded_desktop_state Value: 0=off 1=on Settings Category System: for regular settings Secure: for settings which can usually not be modified Global: for global Settings valid for all users of the device (Android 4.2+) Name The name of the setting to modify. Variables are supported. Value The value to store in the system settings database. Variables are supported. Set Telephony Radio State The action Set Telephony Radio State turns the radio of the phone on or off. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Turn off the radio at night to save battery. Settings Method Defines the method to use to turn the radio on/off. Telephony Radio Whether to turn the radio on or off. Set Timer The action Set Timer creates a timer in a compatible timer app installed on the device. Settings Label The label of the timer. Variables are supported. Duration The duration of the timer (second granularity). Variables are supported. Set USB Debugging State The action Set USB Debugging State enables or disables the USB debugging setting. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Example: Enable USB debugging at work and at home but disable USB debugging elsewhere. Settings USB Debugging Whether to turn USB debugging on or off. Set USB Tethering State The action Set USB Tethering State turns USB tethering on or off. Note: This action does not supply the USB tethering feature by itself, it only turns on the setting. Some providers remove the USB tethering feature. This action can not turn on tethering on such a phone. Warning: This function is not officially supported by Android and might not work on all devices. Warning: This function requires root access starting with Android 4.0. Examples: Turn on USB tethering when USB is connected. Turn off USB tethering when the battery level is below 50%. Settings USB Tethering Whether to turn USB tethering on or off. Set Vibrate on Ring State The action Set Vibrate on Ring State changes the setting whether the device should vibrate on ring or not. Warning: This function is not officially supported by Android and might not work on all devices. Settings Vibrate on Ring Whether to change the setting to vibrate on ring should be turned on or off. Set Wallpaper The action Set Wallpaper changes the wallpaper of the phone to the defined static image. Examples: Change the wallpaper at home. Change the wallpaper when an SMS is received. Settings Path to wallpaper image The path to the image file to use as the wallpaper. Variables are supported. Set WiFi Access Point Priority The action Set WiFi Access Point Priority sets the priority of an access point configuration to control which access point is chosen to connect to by the phone. Note: The algorithm used by the device to determine which access point to use and if the device will reconnect to another access point is not known and might vary between devices, versions and manufacturer. Examples: Prefer a free access point over a paid one when both access points are available. Settings SSID The SSID of the access point configuration to modify. Priority The priority to use. Set WiFi Sleep Policy The action Set WiFi Sleep Policy changes the currently active sleep policy. Warning: This function requires root access starting with Android 4.2 and is not officially supported by Android. Examples: Always activate WiFi even when you are not using your mobile phone to keep the connection to your media center active. Only activate WiFi when you actively use your mobile phone. Settings Keep WiFi on during sleep Whether WiFi should stay active when your mobile phone is in sleep mode or not. Note: Disabling WiFi when the device is not active can increase mobile data usage when applications transmit data in the background. Set WiFi State The action Set WiFi State turns WiFi globally on or off. Examples: Turn WiFi on when the phone is connected to a power source. Turn WiFi off when the battery level is below 30%. Settings Wifi Whether to turn WiFi on or off. Set Wifi Tethering State The action Set Wifi Tethering State turns WiFi tethering on or off. Note: This action does not supply the WiFi tethering feature by itself, it only turns on the setting. Some providers remove the WiFi tethering feature. This action can not turn on tethering on such a phone. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Turn on WiFi tethering when a power adapter is connected. Turn off WiFi tethering when the battery level is below 50%. Settings WiFi Tethering Whether to turn WiFi tethering on or off. WiFi Tethering Whether to turn WiFi tethering on or off. Turn WiFi on Whether to turn WiFi on or off when tethering is turned off. Show Call Log The action Show Call Log opens the built-in App to show the call log. Show Custom Widget Overlay The action Show Custom Widget Overlay displays a custom Widget (defined within Automagic) on an arbitrary position on the display. The overlay is also shown on the lock screen on many Android versions. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Show the battery percentage as a semi-transparent rectangle over the statusbar. Prevent accidental touches by displaying an overlay that covers the entire screen. Shade the screen to a darker level than the built-in screen brightness control allows by displaying a semi transparent overlay covering the entire screen. Settings Overlay name The name/identification of the overlay. The same name can be used to hide the overlay using action Hide Custom Widget Overlay. The same identification can be used in multiple actions to display the same overlay in different configurations depending on situation (e.g.different settings when in landscape or portrait). Widget The name of the widget to display. Variables are supported. Width/Height The size of the overlay. Variables are supported. Gravity The position to align the overlay on the screen. X/Y-Offset The offset of the overlay relative to the gravity. Variables are supported. Opacity The transparency respectively opacity of the widget. Clickable Whether the overlay should react to clicks/touches. Warning: A clickable overlay blocks the touches of underlying elements! Stretch widget Whether the widget should be stretched to fill the entire area of the overlay. Show Home Screen The action Show Home Screen launches the home screen. Show Input Method Selector The action Show Input Method Selector shows the screen to select the input method/keyboard. Examples: Open the input method selector to change the keyboard using action Control UI. Shutdown The action Shutdown shuts the device down. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Silence Ringer The action Silence Ringer silences the ringer and stops the vibrator when an incoming call is currently ringing. Warning: This function requires root access, is not officially supported by Android and might not work on all devices. Examples: Silence the ringer on a call after 5 seconds when you are in a meeting. Sleep The action Sleep pauses the flow execution for a certain amount of time. Note: Please uncheck the option Keep device awake when the period is longer than one to two minutes and the functions of the flow does not require an active device CPU. Examples: Sleep a second when a vibrate action is executing. Slow down a countdown flow. Settings Duration The amount of time to sleep. Variables are supported. Keep device awake Ensure that the device does not go into deep sleep while the action is executed. Unchecking this option will not prevent the device from falling into deep sleep mode. The device will be woken up when the specified period has elapsed. Sound The action Sound plays the selected sound. Examples: Beep every 5 minutes when Gleeo Time Tracker is recording. Play an additional alert when an SMS is received. Settings Sound Type The type of sound to play. Select Sound To select the sound of the category above. Show status bar notification to stop sound Shows a status bar notification when the sound is playing that stops the sound when selected. Wait for sound to finish Makes the action wait for the sound to finish before continuing with the next element in the flow. Request audio focus Defines whether or not and how Automagic should request audio focus. This causes other apps like music players to pause playback or to temporarily lower the volume. Possible settings: Transient: Automagic requests temporary audio focus, other apps usually pause playback temporarily (depends on app) Transient may duck: Automagic requests temporary audio focus, other apps either temporarily pause playback or temporarily lower the volume (depends on app) Normal: Automagic requests the normal audio focus, other apps usually pause/stop playback (depends on app) Speech Output The action Speech Output uses the default text to speech engine installed to read the defined text. Examples: Read out the incoming SMS. Read the current time when you press a shortcut. Settings Voice The voice/language to use. The list of available voices depends on the installed TTS engine. Audio Stream Type The type of the audio stream to use to emit the speech output. Text The text to speak. Variables are supported. Examples: use {triggertime,dateformat,HH:mm:ss} to read the time Speech Rate Whether or not to use a custom speech rate (0.5=slow, 1.0=normal, 2.0=fast). Not supported by all text to speech engines. Variables are supported. Pitch Whether or not to use a custom pitch (0.5=low, 1.0=normal, 2.0=high). Not supported by all text to speech engines. Variables are supported. Synthesis Embedded When checked the engine must not use network access to synthesise the speech. Not supported by all text to speech engines. Synthesis Network When checked the engine must use network based synthesis. Not supported by all text to speech engines. Show status bar notification to stop speaking Shows a status bar notification when the tts engine is speaking that stops the speaking when selected. Request audio focus Defines whether or not and how Automagic should request audio focus. This causes other apps like music players to pause playback or to temporarily lower the volume. Possible settings: Transient: Automagic requests temporary audio focus, other apps usually pause playback temporarily (depends on app) Transient may duck: Automagic requests temporary audio focus, other apps either temporarily pause playback or temporarily lower the volume (depends on app) Normal: Automagic requests the normal audio focus, other apps usually pause/stop playback (depends on app) Start Activity The action Start Activity starts an activity using the specified intent. Please also see the documentation of the Android Intent class. Tip: Some activities require special permissions to be launched. Check the log after testing the action when an activity fails to start. Examples: Start a specific action exposed by another application Start a Skype call: Action: android.intent.action.VIEW Data URI: skype:echo123 Dial a number (without calling): Action: android.intent.action.DIAL Data URI: tel:99 Starting a mail app with a predefined subject: Action: android.intent.action.SEND Data MIME Type: text/plain Extras: putString("android.intent.extra.SUBJECT", "test") Settings Action The action to use in the intent. Variables are supported. Category List The list of categories as a comma separated list to add to the intent. Variables are supported. Data URI The data URI to set on the intent. Variables are supported. Mime Type The mime type to set on the intent. Variables are supported. Package Name The specific package to launch. Variables are supported. Class Name The specific activity to launch. Variables are supported. Flag List The flags to add to the intent. Note that the flag Intent.FLAG_ACTIVITY_NEW_TASK is always added to the intent. Extras A script used to add an unlimited number of extras to the intent. Additionally to the regular built in functions of Automagic also the following functions are available to add the extras to the intent: putString(key, value) putBoolean(key, value) putFloat(key, value) putDouble(key, value) putByte(key, value) putShort(key, value) putChar(key, value) putInt(key, value) putLong(key, value) putUri(key, value) putBooleanArray(key, value) putByteArray(key, value) putIntArray(key, value) putIntegerArrayList(key, value) putLongArray(key, value) putFloatArray(key, value) putDoubleArray(key, value) putShortArray(key, value) putCharArray(key, value) putStringArray(key, value) putStringArrayList(key, value) putUriArray(key, value) putUriArrayList(key, value) Example: putString("key1", "Hello"); putBoolean("key2", true); putDouble("key3", 1.23); putInt("key4", 42); putInt("key5", a+4*b); See action Script for a description of the scripting language. Wait for result Whether Automagic should wait for the activity to return a result (only works when supported by the activity). Access Result Extras Script to access the extras in the returned intent. Following functions are supported: getString(String key) getChar(String key, String defaultValue) getBoolean(String key, Boolean defaultValue) getFloat(String key, Number defaultValue) getDouble(String key, Number defaultValue) getByte(String key, Number defaultValue) getShort(String key, Number defaultValue) getInt(String key, Number defaultValue) getLong(String key, Number defaultValue) getBundle(String key) getUri(String key) getBooleanArray(String key) getByteArray(String key) getShortArray(String key) getCharArray(String key) getIntArray(String key) getIntegerArrayList(String key) getLongArray(String key) getFloatArray(String key) getDoubleArray(String key) getStringArray(String key) getUriArray(String key) getUriArrayList(String key) getParcelableAsString(String key) See action Script for a description of the scripting language. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables result_code (only if Wait for result is enabled) the returned result code operation (only if Wait for result is enabled) string "ok", when result_code was -1, "cancel" otherwise action (only if Wait for result is enabled) the action of the received intent data_string (only if Wait for result is enabled) the data of the received intent as a string categories (only if Wait for result is enabled) the list of categories scheme (only if Wait for result is enabled) the scheme of the received intent type (only if Wait for result is enabled) the explicitly set MIME type of the received intent Start Daydream The action Start Daydream starts the daydream configured in the Android settings. Warning: This function is not officially supported by Android and might not work on all devices. Note: The action requires Android 4.2+. Examples: Start to daydream when a shortcut is clicked. Start Recording Audio The action Start Recording Audio starts recording the specified audio source to the defined file. Only one audio file can be captured at a time. The recording can be stopped manually using the shown statusbar notification or by executing the action Stop Recording Audio. Warning: Some audio sources are not supported on most devices due to technical or legal reasons. Examples: Start recording the audio of an incoming call. Record the audio at night between 1am and 2am. Record the audio for 10 minutes when an SMS arrives and send the resulting audio file to your mail account. Settings Audio Source The audio source to record. Warning: The voice audio sources are not supported on most devices due to technical or legal reasons. Audio Encoder The audio encoding to use to compress the recorded audio. Maximum Duration The maximum duration to use when recording audio. File The path of the file to store the recorded audio in. A file ending of m4a or mp4 is recommended. Variables are supported. Example: /mnt/sdcard/audio_{triggertime,dateformat,yyyy_MM_dd}.m4a becomes /mnt/sdcard/ audio_2011_02_13.m4a Show status bar notification to stop recording Shows a status bar notification when audio is recording to stop. Start Service The action Start Service starts a service using the specified intent. Please also see the documentation of the Android Intent class. Tip: Some services require special permissions to be launched. Check the log after testing the action when a service fails to start. Settings Action The action to use in the intent. Variables are supported. Category List The list of categories as a comma separated list to add to the intent. Variables are supported. Data URI The data URI to set on the intent. Variables are supported. Mime Type The mime type to set on the intent. Variables are supported. Package Name The specific package to launch. Variables are supported. Class Name The specific service to launch. Variables are supported. Flag List The flags to add to the intent. Extras A script used to add an unlimited number of extras to the intent. Additionally to the regular built in functions of Automagic also the following functions are available to add the extras to the intent: putString(key, value) putBoolean(key, value) putFloat(key, value) putDouble(key, value) putByte(key, value) putShort(key, value) putChar(key, value) putInt(key, value) putLong(key, value) putUri(key, value) putBooleanArray(key, value) putByteArray(key, value) putIntArray(key, value) putIntegerArrayList(key, value) putLongArray(key, value) putFloatArray(key, value) putDoubleArray(key, value) putShortArray(key, value) putCharArray(key, value) putStringArray(key, value) putStringArrayList(key, value) putUriArray(key, value) putUriArrayList(key, value) Example: putString("key1", "Hello"); putBoolean("key2", true); putDouble("key3", 1.23); putInt("key4", 42); putInt("key5", a+4*b); See action Script for a description of the scripting language. Stop Action Sound The action Stop Action Sound stops a currently executing action Sound Stop Action Speech Output The action Stop Action Speech Output stops a currently executing action Speech Output Stop Flows The action Stop Flows stops one or multiple flows specified in the field Flow pattern list as soon as possible. Use an action Set Flow State to disable flows. Examples: Stop a wake-up flow when the device is shaken. Settings Flow pattern list A comma separated list of flow names to stop. Glob patterns * and ? can be used to match similar named flows. Examples: Test Flow Test Flow, SMS Flow *battery save* Exclude flow pattern list A comma separated list of flow names to not stop, even when the field Flow pattern list includes the flow. Stop Recording Audio The action Stop Recording Audio stops the currently recording audio started with action Start Recording Audio. Examples: Stop recording a call when the call ends. Store Audio Volumes The action Store Audio Volumes stores the currently set audio volumes in global variables to restore using action Restore Audio Volumes. Examples: Store the audio volumes when a meeting begins, set all volumes to zero and restore the previously volumes when the meeting ends Settings Alarm Whether or not to store the alarm volume and the name of the variable to store the volume in. DTMF Whether or not to store the DTMF volume and the name of the variable to store the volume in. Music Whether or not to store the music volume and the name of the variable to store the volume in. Notification Whether or not to store the notification volume and the name of the variable to store the volume in. Ring Whether or not to store the ringtone volume and the name of the variable to store the volume in. System Whether or not to store the system volume and the name of the variable to store the volume in. Voice Call Whether or not to store the voice call volume and the name of the variable to store the volume in. Ringer Mode Whether or not to store the ringer mode and the name of the variable to store the volume in. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables names of the variables defined in the text fields the volumes and ringer mode as numbers Take Picture The action Take Picture takes a picture using the built-in camera app or directly in the background without showing a user interface/preview (Android 4+) Examples: Take a picture once an hour and upload the image to Dropbox Settings Recording Mode Whether to use the camera app or to take the picture in the background without user interface (Android 4+). Target File The target file to save the picture. Variables are supported. Camera The camera to use to take the picture. Picture Size The resolution of the image. Zoom The zoom ratio. Scene Mode The scene mode. Flash Mode Whether to use the flash or not. White Balance The white balance setting to use. Focus Mode The focus mode to use. Effect The effect to apply to the image. Not all effects work with all cameras. Often the effect is ignored for the front-facing camera. Add to gallery Whether or not the image should be made available in the gallery app. Otherwise the picture will become available when the system scans the device for media files the next time. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables picture_path the target path of the picture Turn Screen On The action Turn Screen On turns the screen on for a few seconds. Examples: Turn the screen on when an SMS arrives. Settings Screen Brightness Whether to screen should be fully turned on or only dimmed. Note: Some devices ignore this setting and always use the bright mode. Duration The amount of time to keep the screen on. Variables are supported. Note: Some devices ignore this setting and use a longer duration. Reset user activity timer Whether or not to reset the user activity timer. Resetting the timer keeps the screen on a little bit longer. Note: Some devices ignore this setting. Unzip Files The action Unzip Files unzips all files and folders contained in the ZIP file to the specified target folder. Examples: Unzip all files in archive.zip to directory /mnt/sdcard/xyz/ Settings ZIP File The ZIP File to uncompress. Variables are supported. Target Directory The absolute path of the target directory to unzip the archive to. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Vibrate The action Vibrate vibrates with a specific pattern. Examples: Vibrate when WiFi has been disconnected. Vibrate when entering a location. Settings Pattern Type Whether to use a predefined pattern or to enter/record a custom pattern. Vibrate Pattern The vibration pattern to use. A custom pattern can be composed using a list of numbers in milliseconds to turn the vibrator on/off like 0,500,1000,500 (0ms pause, 500ms vibration, 1000ms pause, 500ms vibration). Voice Search (Experimental) The action Voice Search (Experimental) starts the built-in voice search of the system. The speech recognition engine usually requires network access. Settings Prompt An optional title to show in the user interface. This setting might be ignored by the engine. Variables are supported. Language Optional the desired language to use in the speech recognition engine. This setting might be ignored by the engine. Variables are supported. WiFi Reassociate The action WiFi Reassociate reconnects to the currently active access point. WiFi Scan The action WiFi Scan starts a scan for available access points. Note: This is an asynchronous operation and you have to use a trigger WiFi Scan Results Available to process the results. Examples: Start a WiFi scan when you are coming home to faster connect to the access point. Write HTTP Response File (Experimental) The action Write HTTP Response File (Experimental) writes the specified file as a response to a HTTP request. The flow must be invoked by a trigger HTTP Request to write a response. Example: Fetch a file on your Android device from your desktop PC when connected to the same WiFi network. Settings File The name of the file to deliver. Variables are supported. Write HTTP Response Text (Experimental) The action Write HTTP Response Text (Experimental) writes the specified text as a response to a HTTP request. The flow must be invoked by a trigger HTTP Request to write a response. Example: Return a page with device information when a specific page is requested. Settings Text The text to write. Variables are supported. Content Type The content type (like text/plain or text/html) of the content. The content type is only considered when no data has been returned to the client yet. Variables are supported. Write to File The action Write to File writes the defined text to the specified file. The action automatically creates the file when the file does not exist yet. Examples: Record your location every 20 minutes to a file. Write all incoming SMS to a file. Settings File The file to write the text to. Variables are supported. Text The text to write into the file. The text can contain multiple lines. Variables are supported. Append Whether to append the text to the end of the file or to overwrite the file. Write to Log The action Write to Log appends the defined text to the log file. Examples: Log a variable to debug a flow. Settings Text The text to write to the log file. Variables are supported. Zip Files The action Zip Files creates a Zip archive containing the specified files and directories. Examples: Zip all files in directory /mnt/sdcard/xyz/ to the zip file /mnt/sdcard/backup.zip Settings Source Files A comma separated list of files or directories to zip. Glob patterns can be used to match multiple files. Variables are supported. Examples: /mnt/sdcard/export* matches all files with a name starting with export in folder /mnt/sdcard The files in the ZIP file are stored relative based on the parent directory of the files to archive: Source Files /mnt/sdcard/export* will store all export* files directly (without parent folder) in the ZIP file Source Files /mnt/sdcard/download/ (note the trailing slash) will store all files in folder download directly (without parent folder) in the ZIP file Source Files /mnt/sdcard/download (no trailing slash) will store the folder download and its contained files in the ZIP file ZIP File The absolute path of the target ZIP file to create. Variables are supported. Show progress notification Whether or not to show a notification on the statusbar indicating the progress of the operation. Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Base Concepts Flow An automatic process executed by Automagic is defined using a flow. A flow consists of three types of elements: Trigger Condition Action A flow can consist of an unlimited number of such elements. The same trigger, condition or action can be used in more than one flow. Changes to an element affect all flows where this element is used. Triggers A trigger initiates the flow whenever some type of event is detected by the system. Several types of triggers exist: Time Location Shortcut Incoming SMS (Premium) Battery State (Premium) Power State (Premium) ...and many more... Multiple triggers can be added to the same flow. A flow is executed when one of the triggers receives an event. Conditions A condition executes a check and continues the flow depending on the result on one of the two possible outputs true or false. Several types of conditions exist: Gleeo is recording Location Time range Confirmation dialog Expression (Premium) ...and many more... A flow stops executing when a condition is evaluated to an output that has no subsequent conditions or actions defined. Actions An action executes an operation or changes a setting. Several types of actions exist: Gleeo Start Recording Gleeo Stop Recording Gleeo Filesystem Export Turn WiFi on/off (Premium) Turn Flightmode on/off (Premium) Send SMS (Premium) Send mail (Premium) Change audio settings (Premium) ...and many more... Variables Variables are a very powerful feature and can be used to define a part of a text dynamically. Example: Every trigger stores the time of execution in a variable called triggertime. You can show the time in an action Notification on Screen by defining the text 'It is {triggertime}'. A variable can be formatted using patterns like {triggertime,dateformat,HH:mm} to show the time as 14:35. Every trigger, condition and action can make variables available to a flow. See the the Help of each object to see what variables are made available to the flow. Global Variables start with global_ and are available in all flows and are kept when the flow has ended. Variables can be modified using action Script and can be evaluated using condition Expression. Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Creating the First Flow This tutorial is a guide to build a basic flow that shows every 5 minutes a text on the display. The first version shows the text "Hello Automagic". The slightly more advanced version displays the formatted current time. Step 1 - Creating a New Flow Every automated processes in Automagic is modeled as a flow so we have to create a new empty flow first. Please start Automagic and ensure that you are positioned on the flow list as shown in the following screen: Press the menu button to open the menu. The menu button looks slightly different on different versions of Android. Your device might also have a dedicated hardware button to open the menu. Select the menu item New Flow to create a flow. Step 2 - Adding the Trigger In this step we are going to add a trigger that will execute the flow every 5 minutes. The gray rounded rectangle contains the triggers that automatically execute a flow. The rectangle is empty since we did not yet define the trigger to use. Press the list icon above the rounded rectangle to show a list of existing triggers. The list with existing triggers is displayed on the screen. A 5 minute trigger does not exist yet in the list so we have to create a new one. Press the New button to create a new trigger.
The list of all available types of triggers is shown. Scroll down and select the trigger type Periodic Timer.
You can change the values in this screen to define how often the trigger will execute the flow by changing the interval to a different value like "2m" or "2m 30s". A help screen with a description of valid time intervals in Automagic can be accessed using the blue question mark icon. There is also a more detailed description of each trigger type available using the ?-button. You can use the default settings for this trigger and press the Save button. Step 3 - Adding the Action In this step we are going to add an action that will display the text "Hello Automagic" on the screen. Press and hold the plus icon under the trigger and drag the icon down to a free area to add a new container for a condition or action to the flow. Select the container type Action.
A list with existing actions is displayed. Press the New button to create a new action.
The list of all available action types is displayed. Scroll down and select the type Notification on Screen to display a simple text that automatically vanishes after a few seconds. Enter the text "Hello Automagic". Note that the name of the action is automatically adjusted to reflect your settings. The name of the action must be unique within Automagic since an action is identified by its name. Automagic will check if an action with the same name already exists and allows to reuse an already existing action. It is often required to test if the settings of an action are correct and the action does what you want. Open the menu and press the Execute menu item to test the action. The action is executed in complete isolation. This means that the rest of the flow is not executed. The action itself is executed for real, this means that an action that is configured to delete a file on the device will really delete the file when executed using the Execute menu item.
Ensure that the displayed text matches your expectations. Press the Save button to accept the values of the action.
The action is now displayed in the flow. Step 4- Manually Starting a Flow It is often helpful to manually test a newly built flow so you don't have to wait for the trigger event. Otherwise you would have to wait 5 minutes to see if your flow actually works. Open the menu and select the Execute menu item. The flow displays the currently executing element in red. There also exists a menu item Stop to interrupt a flow if you see that there is a problem and you want to stop the flow early. The text "Hello Automagic" should be shown as soon as the action "Notification on Screen" is reached. You can now enable the flow by turning the switch button to ON. The flow is registered in the system and will be executed every 5 minutes automatically from now on.
Note that the container with the trigger changes the background color when the flow is enabled. You can rename a flow opening the menu and selecting Rename.
Rename the flow to "Notification Flow". The name of a flow must be unique within Automagic. Step 5 - Extend the Flow to Show the Current Time In this step we are going to enhance the flow to show the current time instead of the static text "Hello Automagic". The time (and optionally the date) can be shown using a variable. Almost all text fields allow to define a dynamic text by using a variable in curly braces {}. Press the edit icon to directly open the editing screen of the action. Change the text to "It is " then open the menu and select the item Select Variable.
Automagic determines the variables that are likely available when the flow execution reaches this action. One of the variables available in all flows is the variable triggertime. It contains the date and time when the trigger has been executed. The first five entries in the list show usage examples of this variable with three different formatting options. The first entry formats the time using the 24-hour format with minutes and seconds. Select the first entry of the list.
Notice that the selected variable is copied to the clipboard. Long-press the text field to paste the contents of the clipboard into the text field. The variable is rendered in blue to indicate that this part of the text is dynamic and will be replaced when the action is executed.
Open the menu and execute the action. The current time should be displayed.
You can now save the action. Notice that the action name has been automatically adjusted to reflect the new text of the action. Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Creating a Custom Widget This tutorial is a guide to build a basic custom widget that displays the current time and battery level. The widget will open the device clock app when the upper half of the widget is pressed and will open the battery usage summary when the lower half of the widget is pressed. Step 1 - Creating a new Custom Widget Press the menu button to open the menu. The menu button looks slightly different on different versions of Android. Your device might also have a dedicated hardware button to open the menu. Select Custom Widgets to open the list with your custom widgets. The list is empty since no custom widgets exist yet. Select the New Widget button in the action bar to create a new widget. The widget initially consists of an empty, semi transparent background with rounded corners. The lower half of the screen shows the currently selected element in a dropdown. The complete widget is selected by default, thus the dropdown contains the name of the widget itself. The sections Widget Settings and Clickable Actions are groups of properties pertaining to the widget in general. The property groups can be expanded and collapsed by touching on the group name. We are going to add a text element to the widget to show the current time on the widget. Select Add Element in the action bar to add a new element. The list of the available element types is shown. Select Text to create an element that can display one or multiple lines of text.
The new text element is placed on the upper left corner of the widget and initially contains the static text Text1. An element on a widget can be moved around by dragging and can be resized by dragging the lower right corner of the element. Note that different widget property sections are available now, since every type of widget element has specific properties that can be adjusted. A text element contains: Bounds: to adjust position, size and rotation Text: to adjust the displayed text, typeface, alignment etc. Fill: to adjust fill color, shadow properties of the fill shape Outline: to adjust outline color, outline width and shadow of the outline shape
Drag the text element approximately to the upper half of the widget. You can also expand the property group Bounds and enter the position manually or precisely move the element with the arrow buttons. Since the text element should not show a static but a dynamic text, we will enter a short inline expression that will dynamically evaluate to the current time. You can use the [...]-button to select the predefined text from the list. The function getDate returns the current time. dateformat instructs Automagic to format the value as a date. HH:mm instructs Automagic to use the 24-hour format for the hours and format the minutes to two digits. You can also use the pattern hh:mm a to format to the 12-hour AM/PM format. Note that the widget design area directly executes the inline expression and displays the current formatted time. To display the battery level, we have to add another text element to the widget. Select the Add Element button in the action bar again and place the element in the lower half of the widget and set the text to {global_battery_level}. This instructs Automagic to display the contents of the global variable global_battery_level. Since the variable does not exist yet, the value null is displayed. Automagic only refreshes a widget when it detects either a change in a global variable that is used by the widget or when a property of a widget element is modified. Since neither is the case in the text element that displays the time, we have to instruct Automagic to refresh the widget every minute. Select the widget in the dropdown list or touch a free area in the design area. Expand the property group Widget Settings. Check Automatically refresh and set the refresh interval to one minute. Press Back to leave the widget design area and to go back to the widget list.
Select the widget menu to open the list of actions for your widget and select Rename to give the widget the name Info Widget. Press Back to leave the widget list and to go back to the flow list.
Step 2 - Updating the battery level In this step we are going to create a flow that updates the global variable containing the battery level. Create a new flow and add a trigger Battery Level. Configure the trigger as shown on the screenshot. This will ensure that the flow is executed whenever the battery level changes and will provide the variable battery_level to the flow. Please also check both ignore-checkboxes in the filter since some devices will execute the trigger very often when the device is connected to a charger. Now we have to fill the battery level available in the local variable battery_level into the global variable global_battery_level used by the widget. Add an action Script to the flow. Configure the action Script as shown in the screenshot. The script global_battery_level = battery_level + "%" reads the battery_level available in the flow, appends a percent character and stores the resulting string in the global variable global_battery_level. The global variable global_battery_level will contain a value like 65% when the flow is executed. The widget will display this value since we instructed the text element on the widget to show the contents of the variable with {global_battery_level}. The complete flow should look as shown in the screenshot.
Step 3 - Adding the widget to the launcher In this step we are going to add the widget to a home screen of the launcher. Open the widget drawer by opening the Apps drawer and switch to the widgets tab. Press and hold AM Custom Widget to add your widget to one of the home screens. Depending on device, Android version and manufacturer, you can also add a widget by long-pressing a free area on the home screen and by selecting Widgets in the popup dialog.
The widget should look approximately as shown in the screenshot. The widget will be updated every minute and every time the battery level changes. Step 4 - Adding actions to the widget In this step we are going to add clickable actions to the widget. The widget will open the device clock app when the upper half of the widget is pressed and will open the battery usage summary when the lower half of the widget is pressed. Open the widget (Menu->Custom Widgets then select your Info Widget). Expand the property group called Clickable Actions and add two rows by pressing the [+]-button two times. The layout of the two clickable actions is also faintly painted in blue in the design area to illustrate where the active regions will be in the widget. Please also read the quick guide available on this screen to get more information about resizing behavior. You can press one of the two added blue fields to open the action selection dialog. You can either use an existing action or create a new action. Add an action Launch App: com.google.android.deskclock to the first field to start the device clock app when the upper half of the widget is pressed. The package of the clock app can be different on different versions of Android. Add an action Launch App: com.android.settings/fuelgauge.PowerUsageSummary to the second field to open the power usage screen when the lower half of the widget is pressed. You can use every action available in Automagic on a widget. It's also possible to use an action Execute Flows to execute a complete flow consisting of multiple actions and conditions. Go back to the home screen containing your widget and touch the widget to execute the actions. Tips Automagic allows to modify almost every aspect of a widget element with scripts. You can also use this method to update the widget with the current battery level instead of using a global variable. To do this, open the action Script previously created in this tutorial and press the button Function to list all available functions in Automagic. Scroll down and select the function setWidgetElementProperty. Automagic shows a dialog Widget Property that allows to select the widget, element and property to modify. Select the Info Widget and the element containing the battery level. The element could be called Text_2 if you did not give a custom name to the element. Select the property text and change the value from {global_battery_level} to {battery_level}% and confirm with OK. The script should approximately look like this: setWidgetElementProperty("Info Widget", "Text_2", "text", " {battery_level}%"); Since the widget and the elements are referenced by name, it is a good idea to properly name the widget and the widget elements you want to modify in a script before you start to write complex scripts. This method is extremely flexible and can be used to achieve almost everything. For example: change the background color of the widget to red, when the battery level falls below 30% change the image in an image element from a sun to a moon at night gradually change the width of a rectangle element to show the battery level using a bar use an ellipse/arc to show the battery level in a pie chart style create the arms of an analog clock by rotating a thin rectangle element switch between two images when toggling a setting show the name of the last missed caller in the widget change the shadow position of a text element depending on daytime like a sun-dial Please note that updating a widget is quite a heavyweight process so it is advised to change a widget only when necessary. Battery consumption could be high if you change a widget every 5 seconds. Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Main Screens Flow List When you first start Automagic Premium you are presented with the main screen containing a list of predefined flows. 1. Automagic icon indicating that the Automagic service is running 2. A group of flows that can be expanded and collapsed. Select the dropdown icon on the right side to create a new flow and to rename the group. 3. An enabled flow is displayed using a blue background color and the switch set to ON. Use the dropdown icon on the right side to execute common actions on the flow. 4. A disabled flow is displayed using a grey background color and the switch set to OFF. 5. Menu button with common actions to add new flows, to open the catalog and much more Only the flow "Countdown" is enabled by default when Automagic is started for the first time. All other flows are disabled and therefore rendered in grey. A disabled flow is inactive, not registered with the operating system and hence does not automatically execute anything until the flow is enabled. You can open and change a flow by selecting the flow in the list. Flow List - Menu New Flow: Allows to create a new flow Custom Widgets: Allows to design your own widgets Tutorial: Explains the basic concepts like flows and triggers used in Automagic Catalog: Contains many predefined flows that you can import into Automagic Forum: Opens the forum where you can ask questions and share flows with other users of Automagic Search: Allows to search for a flow Recommend Automagic: Tell your friends about Automagic Manage: Item to access the Preferences, Global Variables, the Log and much more
Flow The flow screen can be used to view a flow, watch a flow while the flow is executing and to modify the flow. A rectangular container with rounded corners contains one or multiple triggers. A flow is executed whenever one of the triggers detects an event like an incoming SMS or the WiFi adapter is turned on. A container with a diamond shape contains a condition that tests if a condition holds true. The flow continues to execute the condition or action in the subsequent container attached at the true or false output of the condition. A rectangular container contains an action. Also see the Base Concepts for a description. 1. The name of the flow. The switch shows whether the flow is currently enabled (ON) or disabled (OFF). 2. A selected trigger/condition/action with the four main edit commands: Selection: Opens the list to reuse an action in this place of the flow. Edit: Opens the screen to edit the action. Delete: Removes the selected action from this flow. This command does not delete the action definition since the same action might still be used in another flow. Add: Drag this icon to a free area on the screen to add a new action or condition. 3. Menu button with actions to enable/disable the flow, manually execute the flow, reset the zoom level, send the flow and to open the log filtered for this flow only The area containing the flow can be moved around by dragging with the finger in a free area. Pinch zooming is also supported. The menu contains an item to reset the zoom/offset of the flow area in case you can not find your flow anymore. Touch on a container with triggers, a condition or an action to select the container. You can move a container to another place by dragging the container. The flow is structurally not modified when you rearrange the containers, this means that the flow executes the same actions and stays logically the same. A connection between two containers can be selected by clicking on the connection. A connection can be deleted using the trash can. You can modify the visual routing of the connection by selecting the connection and then clicking on one of the four small yellow dots on the source and target container. Note that this does only change the appearance of the connection and does not structurally change the flow. Edit Action 1. Buttons to save or cancel the changes you have made to the action. The default behavior when the back button is pressed can be configured in the preferences of Automagic. Cancel: Closes the screen and discards the changes made to this action. Save: Closes the screen and stores the properties of the action. 2. Menu button to select variables, test execute the action or to open the log. 3. Spinner to change the type. 4. Whether a name should be generated based on the properties of action or a custom name for the action should be used. The name of an action is also the identifier and thus has to be unique. 5. Properties of the action. This area contains the action specific settings and is different for every action type. Edit Action - Menu Select Variable: Opens a list of variables that are probably available for this action when the flow executes. The list contains the variables set by the predecessor actions, conditions and the trigger. Not all variables are guaranteed to be available since some variables are only set conditionally. Execute: Executes the action with the currently set properties. Variables are not available when an action is executed using this menu since the action is executed in isolation and the predecessor actions are not executed. Log: Opens the log file. Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Triggers Active Network Type Activity Ended Activity Started Airplane Mode App Package Event App Task Ended App Task Started Assist Audio Volume Auto Sync State Automagic Notification Selected Automagic Startup Battery Level Battery Low Condition Bluetooth Device Connected Bluetooth Device Disconnected Bluetooth State Calendar Calendar Event Car UI Mode Clipboard Changed Command Output Compass Daydream State Desk UI Mode Device Orientation Device Storage Space Low Display State Dock Event File Observer General Broadcast Gleeo Recording Started Gleeo Recording Stopped Global Variable Global Variable Date/Time Gmail Unread Conversation Count HTTP Request (Experimental) Incoming Call K-9 Mail Received Light Sensor Locale Adjusted Location Location Provider State Login Attempt Media Button Event (Experimental) Mobile Datanetwork Type Next Alarm NFC State NFC Tag Notification on Screen Displayed Notification on Statusbar Displayed Notification on Statusbar Removed Notification on Statusbar Selected Outgoing Call Periodic Location Update Periodic Timer Periodic Timer Inexact Phone Cell CDMA Phone Cell GSM Phone Service State Phone Signal Strength Plugin (Experimental) Plugin Event (Experimental) Power Source Pressure Sensor Proximity Sensor Screen Orientation Shake Shortcut Shutdown Significant Motion Detected SMS Received SMS Sent Sound Level (Experimental) Speed Storage Media Event System Setting Changed Time Time Adjusted Timezone Adjusted User Activity (Experimental) User Present WiFi Connected WiFi Disconnected WiFi Scan Results Available WiFi State Wired Headset Plugged Triggers Active Network Type The trigger Active Network Type executes a flow when the active network type changes to another type. Settings Network type changed to Defines for what network types the trigger should be executed A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed network_type the network type as number (None=-1, Mobile=0, WiFi=1, WiMAX=6, Bluetooth=7, Ethernet=9) network_type_name the name of the network as string like WIFI or MOBILE network_subtype the network subtype as number network_subtype_name the network subtype as number network_state the network state (CONNECTING, CONNECTED, SUSPENDED, DISCONNECTING, DISCONNECTED, UNKNOWN) network_detailed_state the detailed network state (IDLE, SCANNING, CONNECTING, AUTHENTICATING, OBTAINING_IPADDR, CONNECTED, SUSPENDED, DISCONNECTING, DISCONNECTED, FAILED, BLOCKED, VERIFYING_POOR_LINK, CAPTIVE_PORTAL_CHECK) network_extra_info additional info as string (like SSID), when available network_reason the reason of a failure, when available Activity Ended The trigger Activity Ended is executed when an activity is moved to the background. Settings Package Name The package name of the app or comma separated list. Glob patterns are supported. Class Name The class name of the activity or comma separated list. Glob patterns are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed package_name the name of the package app_name the display name of the app activity_class the class of the activity activity_name the display name of the activity Activity Started The trigger Activity Started is executed when an activity is moved to the foreground. Examples: Increase the display brightness when Google Maps is started. Settings Package Name The package name of the app or comma separated list. Glob patterns are supported. Class Name The class name of the activity or comma separated list. Glob patterns are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed package_name the name of the package app_name the display name of the app activity_class the class of the activity activity_name the display name of the activity Airplane Mode The trigger Airplane Mode is executed when the airplane mode is turned on or off. Example: Disable all flows that are downloading data when the airplane mode is turned on. Settings Airplane Mode On/Off Whether the trigger should be executed when the airplane mode is turned on or off. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed App Package Event The trigger App Package Event is executed when a app/package is installed, updated or removed. Examples: Write the date and time of an app update to a log file for reference Settings Event The event type: Added: A new package has been installed Changed: A component of a package has been enabled/disabled Data cleared: The data of the app has been cleared Replaced: A package has been updated Restarted: A package has been restarted and all processes of the package have been killed Removed: A package was removed or is in the process of being updated Fully removed: A package has been uninstalled (and data deleted) (Android 4) Package Name The list of package names to check. Glob patterns are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed package_name the name of the package app_name the display name of the app uid the UID assigned to the package replacing true when the package is updated (only set for event Added and Removed) changed_component_name_list the list of changed components (only set for event Changed) dont_kill_app true when the app should not be killed (only set for event Changed) data_removed true when also the data has been removed (only set for event Removed) App Task Ended The trigger App Task Ended is executed when an application is moved to the background or closed respectively the user moved the focus to another app. The application might still be running in the background or the process hosting the application might still be in memory. Examples: Raise the media volume back to normal when you leave the browser Change the display brightness back to normal when you don't use Google Maps anymore Settings Package Name Enter the name of the package of the application or use the button to show a list of available applications. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed package_name the name of the package app_name the display name of the app App Task Started The trigger App Task Started is executed when an application is moved to the foreground or opened respectively the user moved the focus to this app. Examples: Lower the media volume when you open the browser Raise the display brightness when you start using Google Maps Settings Package Name Enter the name of the package of the application or use the button to show a list of available applications. Glob patterns (*, ?) can be used to match apps with similar names. A single *-character matches all apps. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed package_name the name of the package app_name the display name of the app Assist The trigger Assist is executed when the home button is long-pressed or dragged upwards (Galaxy Nexus) or the home button is long-pressed and the middle icon is selected (S3). Warning: This function requires Android 4.1+ and is not officially supported by Android. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Audio Volume The trigger Audio Volume is executed when the volume of the device has been changed. Some devices report the volume change slightly delayed. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Vibrate whenever the volume is changed Settings Sound Type The type of the audio stream to check. Condition Whether the condition should check if the volume is above or below the volume level. Volume The volume value to check. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Auto Sync State The trigger Auto Sync State is executed when the auto sync setting is changed to on or off. Examples: Turn an hourly executed download flow off when auto sync is disabled. Settings Auto Sync On Execute the flow when the auto sync has been turned on. Off Execute the flow when the auto sync has been turned off. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Automagic Notification Selected The trigger Automagic Notification Selected executes a flow when the Automagic-wand notification available in the statusbar is selected. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Automagic Startup The trigger Automagic Startup is executed when the Automagic service is completely started and the flows have been loaded. Examples: Initialise global variables to default values when Automagic started. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Battery Level The trigger Battery Level is executed whenever the battery level changes and the built in condition about the level holds true. Examples: Lower the display brightness when the battery level falls below 50% Turn off WiFi when the battery level falls below 30% Settings Battery Level Defines the condition that must be met to execute the flow: becomes lower than Executes the flow when the last reported percentage was above the defined level and the current percentage is below the defined level becomes higher than Executes the flow when the last reported percentage was below the defined level and the current percentage is above the defined level becomes equal to Executes the flow when the last reported percentage was different than the defined level and the current percentage equals the defined level becomes full Executes the flow when the last reported battery status was not full and is now full lower than Executes the flow whenever the reported percentage by the system is below the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last percentage has been the same. higher than Executes the flow whenever the reported percentage by the system is above the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last percentage has been the same. exactly Executes the flow whenever the reported percentage by the system is exactly on the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last percentage has been the same. full Executes the flow whenever the reported battery status by the system is full. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last status has been already full. Level Percentage Defines the level percentage. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed battery_level the charging level of the battery battery_percentage the charging percentage battery_plugged whether the battery is plugged (1=AC adapter, 2=USB, 4=Wireless) or not (0=not plugged) battery_present whether the battery is present or not battery_scale the maximum battery level battery_status the status of the battery (1=unknown, 2=charging, 3=discharging, 4=not charging, 5=full) battery_technology the technology of the battery battery_temperature the temperature of the battery battery_voltage the current battery voltage battery_health the health of the battery (1=unknown, 2=good, 3=overheat, 4=dead, 5=over voltage, 6=unspecified failure, 7=cold) Battery Low Condition The trigger Battery Low Condition is executed when the battery level becomes low or when the battery level becomes OK again after it was low. Examples: Lower the display brightness when the battery level becomes low Turn off WiFi when the battery level becomes low Turn on WiFi when the battery level becomes OK again Settings Battery Condition low The battery level becomes low (the exact value can differ between different devices). OK The battery level becomes OK again (the exact value can differ between different devices). A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Bluetooth Device Connected The trigger Bluetooth Device Connected is executed when a bluetooth device is connected. Examples: Turn down the volume when a bluetooth headset is connected Settings Bluetooth Device Defines whether the trigger should be executed for all devices or only for a specific device. Bluetooth Device Address The address of the bluetooth device. Bluetooth Device Name The name of the bluetooth device. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed name the name of the device address the address of the device bluetooth_class the bluetooth class of the device bond_state the bonding state of the device Bluetooth Device Disconnected The trigger Bluetooth Device Disconnected is executed when a bluetooth device is disconnected. Examples: Turn up the volume when a bluetooth headset is disconnected Settings Bluetooth Device Defines whether the trigger should be executed for all devices or only for a specific device. Bluetooth Device Address The address of the bluetooth device. Bluetooth Device Name The name of the bluetooth device. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed name the name of the device address the address of the device bluetooth_class the bluetooth class of the device bond_state the bonding state of the device Bluetooth State The trigger Bluetooth State is executed when the bluetooth adapter of the device is turned on or off depending on the settings used. Examples: Enable some flows using the bluetooth adapter as soon as the bluetooth is turned on. Settings Bluetooth state Defines the bluetooth states to trigger the flow. Selecting multiple states triggers the flow once for each state. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed previous_bluetooth_state the state of the bluetooth adapter before bluetooth_state the current state of the bluetooth adapter Calendar The trigger Calendar is executed on the defined date and time. Examples: Send a reminder mail on the last Friday of each month Export and mail your time tracking data on the first Monday of each month Note: You can use the trigger Time to execute a flow on every weekday or on every Monday. Settings Date/Time Defines the date and time when the flow should be executed or the first time a flow should be executed when this is a repeating trigger. Repeats Defines when this trigger should repeat. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Calendar Event The trigger Calendar Event is executed when an event on the calendar starts or ends. Examples: Mute the ringer when a meeting starts Vibrate 5 minutes before a meeting starts Start recording a task in Gleeo Time Tracker when a meeting starts Settings Trigger at Event Start Whether the trigger should execute at the start of the event. The duration specifies whether the trigger should execute a certain amount of time before or after the event begins. Trigger at Event End Whether the trigger should execute at the end of the event. The duration specifies whether the trigger should execute a certain amount of time before or after the event ends. Calendars A comma separated list of calendar names that should be checked for events. The names can contain glob pattern characters like * and ?. Titles A comma separated list of event titles to match. The titles can contain glob pattern characters like * and ?. Examples: Plan* matches titles like Planning, Plan B etc. Descriptions A comma separated list of event descriptions to match. The descriptions can contain glob pattern characters like * and ?. Locations A comma separated list of event locations to match. The locations can contain glob pattern characters like * and ?. Event Type Whether the trigger should consider all day events or regular events (not all day) or both. Event Availability Whether the trigger should consider events marked as free, busy or tentative. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed event_calendar the name of the calendar of the event event_title the title of the event event_description the description of the event event_location the location of the event event_start the start time of the event event_end the end time of the event event_all_day boolean indicating if the event is all day or not event_availability FREE, BUSY or TENTATIVE depending on the availability of the event event_id the ID of the event Car UI Mode The trigger Car UI Mode is executed when the device is put into car UI mode when placed in a car dock. Examples: Raise the audio volume when the device is put into the car dock. Settings Enter or Exit car UI mode Enter When selected executes the flow when the device is put into car UI mode. Exit When selected executes the flow when the car UI mode has been ended. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Clipboard Changed The trigger Clipboard Changed is executed when the content of the clipboard changes. Use the action Copy Text from Clipboard to access the content of the clipboard. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Command Output The trigger Command Output is executed when a command prints a line containing a specific text. Settings Command The command to execute. The command is passed to /bin/sh to be interpreted or to su when as root is checked. Working Directory The path the command is executed in. Output trigger condition The text which needs to be contained in the output to trigger. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed stdout the last 10 lines written to stdout stderr the last 10 lines written to stderr output the triggering line output_type the string stdout when the triggering line was written to stdout, stderr otherwise Compass The trigger Compass executes the flow when the device changes its orientation. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Examples: Play a beep sound when the device is heading north. Settings Type The type of the trigger. Periodic: executes the flow in periodic time intervals On Change: executes the flow when the orientation changed for at least some degrees. On Relative Sector Change: Remembers the device orientation when this trigger is enabled first, divides the orientation into the specified number of equal sectors and executes the flow whenever the device stays in a different sector. Frequency Defines the frequency between flow executions. Tolerance in Degrees The minimum amount of change in the device orientation required to execute the flow. trigger when steady Executes the flow only when the device does not change the direction for a short period of time anymore. Number of Sectors The number of equal sectors to divide the orientation of the device. The sectors are numbered starting at 1 and incrementing in clockwise order. Example: When 4 sectors are desired the 360 possible degrees are divided into 4 sectors with an opening angle of 90 each. The sectors are relative to the initial device orientation when the trigger was enabled. Sector 1: 315 to 45 Sector 2: 45 to 135 Sector 3: 135 to 225 Sector 4: 225 to 315 A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed azimuth the azimuth in degrees pitch the pitch in degrees roll the roll in degrees azimuth_sector (On Relative Sector Change only) the azimuth sector (1 to Number of Sectors) pitch_sector (On Relative Sector Change only) the pitch sector (1 to Number of Sectors) roll_sector (On Relative Sector Change only) the roll sector (1 to Number of Sectors) Daydream State The trigger Daydream State is executed when the daydream of the system starts or stops. Settings Daydream Started/Stopped Whether to trigger on the daydream start or the stop. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Desk UI Mode The trigger Desk UI Mode is executed when the device is put into desk UI mode when placed in a desk dock. Examples: Raise the audio volume when the device is put into the desk dock. Settings Enter or Exit desk UI mode Enter When selected executes the flow when the device is put into desk UI mode. Exit When selected executes the flow when the desk UI mode has been ended. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Device Orientation The trigger Device Orientation executes the flow when the device is moved to the defined orientation. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Examples: Reduce the ringer volume when the device screen is facing down. Settings Device Orientation The desired orientation of the device. Face down: The display of the device is facing down for example when lying on a table with the display towards the table. Face up: The display of the device is facing up for example when lying on a table with the display facing away from the table. Face left: The display faces to the left with the longer side lying on a table when the upper edge of the device is pointing away from you. Face right: The display faces to the right with the longer side lying on a table when the upper edge of the device is pointing away from you. Standing upright: The device is standing upright on a table. Standing upside-down: The device is standing upside-down on a table. Negate Whether the condition should be negated or not. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Device Storage Space Low The trigger Device Storage Space Low executes the flow when the internal device storage space becomes low or the free storage space is back to a normal level. Note: The amount of free space to consider as low is defined by the device manufacturer. Standard Android considers less than 10% of free internal memory as low. Example: Play a warning sound when the device storage space is low. Settings Device Storage Space becomes low Executes the flow when the storage space becomes low. becomes OK Executes the flow when the storage space is back to a normal level. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Display State The trigger Display State is executed when the display is turned on or off. Examples: Turn on WiFi when you turn the display on. Turn WiFi off when you turn the display off. Count how many times a day you turn your display on. Remind you with a sound alert when you are recording your time and you are starting to use the device. Settings Display On/Off On Execute the flow when the display has been turned on. Off Execute the flow when the display has been turned off. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Dock Event The trigger Dock Event is executed when the device is put into a dock (car, desk, some external hardware keyboard). The dock type can be distinguished using a condition Dock State. Examples: Raise the audio volume when the device is put into a dock. Settings Docked/Undocked Docked When selected executes the flow after the device has been put into a dock. Undocked When selected executes the flow after the device has been removed from a dock. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed dock_state the state/dock type File Observer The trigger File Observer is executed when a path of interest on the filesystem is accessed or changed. Examples: Create a copy of a file after it has been modified. Upload a new image to Dropbox when a new subfile is created in folder /sdcard/DCIM/Camera/. Settings Paths to Observe A comma separated list of files or directories to observe. Event Types The type of events to observe. File accessed: Data was read from a file Modify: Data was written to a file Metadata changed: Metadata (permissions, owner, timestamp) was changed explicitly Writeable file closed: Someone had a file or directory open for writing, and closed it Unwriteable file closed: Someone had a file or directory open read-only, and closed it File opened: A file or directory was opened File moved from: A file or subdirectory was moved from the monitored directory File moved to: A file or subdirectory was moved to the monitored directory Subfile created: A new file or subdirectory was created under the monitored directory Subfile deleted: A file was deleted from the monitored directory Delete Self: The monitored file or directory was deleted; monitoring effectively stops Self moved: The monitored file or directory was moved; monitoring continues A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed registered_path the path of the observed file or directory event the event represented as a number: File accessed: 1 (0x00000001) Modify: 2 (0x00000002) Metadata changed: 4 (0x00000004) Writeable file closed: 8 (0x00000008) Unwriteable file closed: 16 (0x00000010) File opened: 32 (0x00000020) File moved from: 64 (0x00000040) File moved to: 128 (0x00000080) Subfile created: 256 (0x00000100) Subfile deleted: 512 (0x00000200) Delete Self: 1024 (0x00000400) Self moved: 2048 (0x00000800) path the path of the file or directory which triggered the event, relative to the main monitored file or directory General Broadcast The trigger General Broadcast dynamically registers a broadcast receiver at runtime with the specified intent filter. Please also see the Android Developer Documentation. Examples: Receive the current WiFi signal strength (only when the display is turned on): Action: android.net.wifi.RSSI_CHANGED Access Intent Extras: value=getInt("newRssi", 0); Receive a message from NMA (https://www.notifymyandroid.com/): Action: com.usk.app.notifymyandroid.NEW_NOTIFICATION Access Intent Extras: app=getString("app"); event=getString("event"); desc=getString("desc"); prio=getInt("prio", 0); url=getString("url"); Settings Action The action to use in the intent filter. Category List The list of categories to use in the intent filter. Data Scheme List The list of data schemes to use in the intent filter. (like http, content etc.). Data Authority List The list of data authorities to use in the intent filter (host:port). Data Path Literal List The list of data paths to use in the intent filter (the specified pattern has to match the entire path) Data Path Prefix List The list of data paths to use in the intent filter (the specified pattern has to match the prefix of the path) Data Path Glob List The list of data paths to use in the intent filter (the specified glob pattern has to match the entire path) Data Type List The list of MIME types to use in the intent filter. Access Intent Extras Script to access the extras in the received intent. Following functions are supported: getString(String key) getChar(String key, String defaultValue) getBoolean(String key, Boolean defaultValue) getFloat(String key, Number defaultValue) getDouble(String key, Number defaultValue) getByte(String key, Number defaultValue) getShort(String key, Number defaultValue) getInt(String key, Number defaultValue) getLong(String key, Number defaultValue) getBundle(String key) getUri(String key) getBooleanArray(String key) getByteArray(String key) getShortArray(String key) getCharArray(String key) getIntArray(String key) getIntegerArrayList(String key) getLongArray(String key) getFloatArray(String key) getDoubleArray(String key) getStringArray(String key) getUriArray(String key) getUriArrayList(String key) getParcelableAsString(String key) Examples: value = getString("key1"); value = getBoolean("key2", true); value = getDouble("key3", 1.23); value = getInt("key4", 42); value = getInt("key5", a+4*b);
Data of intents wrapped in a Bundle-extra can be accessed using function getBundle(String name). Values contained in a bundle can be accessed with the functions used to accessed regular extras but by additionally specifying the bundle. Example: bundle = getBundle("key1"); value = getString(bundle, "key2");
compact form: value = getString(getBundle("key1"), "key2"); Example to access the track info of PowerAMP: track_info = getBundle("track"); artist = getString(track_info, "artist"); album = getString(track_info, "album"); title = getString(track_info, "title"); path = getString(track_info, "path"); duration = getInt(track_info, "dur", 0); Initial Sticky Broadcast Whether to ignore the initial broadcast sent for a sticky broadcast or not. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed action the action of the received intent data_string the data of the received intent as a string categories the list of categories scheme the scheme of the received intent type the explicitly set MIME type of the received intent Gleeo Recording Started The trigger Gleeo Recording Started is executed when a task in Gleeo Time Tracker has been started. Settings Project Filter List A comma separated list of the projects to accept. Task Filter List A comma separated list of the tasks to accept. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed project_title contains the title of the project task_name contains the name of the task start contains the start date and time of the recording entry Gleeo Recording Stopped The trigger Gleeo Recording Stopped is executed when a task in Gleeo Time Tracker has been stopped. Settings Project Filter List A comma separated list of the projects to accept. Task Filter List A comma separated list of the tasks to accept. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed project_title contains the title of the project task_name contains the name of the task start contains the start date and time of the entry end contains the end date and time of the entry Global Variable The trigger Global Variable is executed when a different value is assigned to a global variable. The trigger is not executed when the same value is assigned to the variable again. Examples: Show a reminder when you sent more than 10 SMS in one day Settings Global Variable The name of the global variable to watch. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed old_name_of_the_global_variable contains the old value of the global variable before it has been updated Global Variable Date/Time The trigger Global Variable Date/Time is executed when the point of time stored in the global variable is reached. Examples: Execute a flow daily on sunrise/sunset Execute a flow in irregular intervals Settings Global Variable The name of the global variable containing the point of time. trigger immediately on missed events Execute the trigger when the point in time stored in the variable has passed and the trigger did not yet execute the trigger for this point in time (for example when the device was turned off at the date/time specified in the variable or when a past date is assigned to the global variable) A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Gmail Unread Conversation Count The trigger Gmail Unread Conversation Count is executed when the count of unread conversations in the Gmail app on the device changes. Examples: Play a notification sound, when more unread conversations are available Settings Accounts The accounts to check. The sum of unread conversations is checked when multiple accounts are specified. Increasing Unread Count A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed count the number of unread conversations old_count the number of unread conversations before HTTP Request (Experimental) The trigger HTTP Request (Experimental) is executed when a HTTP request is received using the specified path and port. Note: The built-in webserver is neither fast nor should you try to upload large files. Please don't use it to run webshops, corporate websites or sites like Slashdot on your phone. Examples: Send an SMS from your Phone using your PC when the URL http://192.168.1.XX:8080/sms? receiver=12345&text=test is requested Return a page with the list of files on the SD card when the URL http://192.168.1.XX:8080/files/xyz is requested Settings Path The path to handle by this trigger. Glob patterns (*, ?) are supported. Examples: /automagic/test /automagic/files/* to handle all paths that start with /automagic/files/ The trigger with the longest path is preferred when multiple triggers match requested path since only one response can be written. Examples: The first trigger is preferred when two triggers with paths /automagic/test and /automagic/* are available. Port The port of the server. Keep WiFi awake Whether to keep the WiFi radio awake, otherwise the WiFi radio might turn off to save battery and a connection to your device is no longer possible. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed request_path the decoded path of the request (e.g. /automagic/test) method the HTTP method (e.g. GET, POST, PUT) header_* All values of the headers. The name of the variable is built using the prefix header_ and the name of the header by replacing dash with underscore and converting the name to lowercase. Examples: Header Accept is stored in variable header_accept Header Accept-Encoding is stored in variable header_accept_encoding Headers leading to an invalid variable name are ignored. param_* All values of the request parameters. The name of the variable is built using the prefix param_ and the name of the parameter by converting the name to lowercase. Example: Parameter test is stored in variable param_test Parameters leading to an invalid variable name are ignored. file_* All paths of the uploaded files. The name of the variable is built using the prefix file_ and the name of the parameter by converting the name to lowercase. Example: Parameter File is stored in a variable file_file Parameters leading to an invalid variable name are ignored. Incoming Call The trigger Incoming Call is executed when a call is received depending on the criteria defined in the options. Examples: Start recording in Gleeo Time Tracker when your employer calls. Send a mail containing the callers number and time to your mail account. Settings Incoming callnumbers The list of callnumbers when the flow should be executed. Multiple numbers can be separated by comma. Glob patterns (*, ?) can be used to filter on similar numbers like corporate number ranges: Examples: +17001111111 +17001111111,+17002222222 *70033311* *70033311*,*70033?22* Special characters like +, - and . are removed before comparing the number. Warning: The formatting of the incoming number depends on the operator in use. Some operators format the number as an international callnumber like +17001111111, local fixed line network numbers often use the local format. You have to check the log file to see the exact formatting used or you can add an action Notification on Screen with text {incoming_number} to see the actual number. Phone state Defines the state of the call to trigger the flow. Selecting multiple states triggers the flow once for each state. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed incoming_number the number of the calling party or null when suppressed call_state the state of the call (IDLE, RINGING, OFFHOOK) call_missed_rejected true or false whether or not the call has been missed or rejected when the phone enters the idle state contact_name the name of the contact if available contact_company the company of the contact if available contact_title the title of the contact if available contact_note the note of the contact if available contact_nickname the nickname of the contact if available contact_email an email address of the contact if available contact_groups the list of groups of the contact if available K-9 Mail Received The trigger K-9 Mail Received is executed when K-9 Mail receives a mail. Examples: Play an alert sound when you receive a mail from the boss. Settings K9 Account List The comma separated list of accounts to consider (case insensitive). Glob patterns (*, ?) are supported. Sender List The comma separated list of sender mail addresses to consider (case insensitive). Glob patterns (*, ?) are supported. Subject List The comma separated list of subjects to consider (case insensitive). Glob patterns (*, ?) are supported. Receiver List The comma separated list of receiver mail addresses to consider (case insensitive). Glob patterns (*, ?) are supported. CC List The comma separated list of CC-mail addresses to consider (case insensitive). Glob patterns (*, ?) are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed k9_account the K-9 Mail account of the mail k9_folder the K-9 folder of the mail k9_to the recipients of the mail k9_from the sender of the mail k9_from_self whether or not the mail was sent by yourself (only set on newer versions of K-9) k9_subject the subject of the mail k9_sent_date the date the mail has been sent k9_cc the cc of the mail k9_bcc the bcc of the mail Light Sensor The trigger Light Sensor is executed when the measured surrounding light intensity passes the defined value. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Settings Sensitivity The sensitivity of the slider to define the light level. Light Level Whether the trigger should execute when the illuminance passes above or below a certain value and the level to use. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed light_level the effective illuminance in lux Locale Adjusted The trigger Locale Adjusted is executed when the locale has been changed in the system. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed locale the new locale Location The trigger Location is executed when the location is entering the defined region or exiting the defined region. The accuracy of the location depends heavily on the available location provider. Tip: Enabling GPS in the phone settings can yield much better location accuracy but might use more battery. Locations with WiFi access points might work accurate enough and GPS can be disabled in the global phone settings to reduce battery strain. Examples: Start recording in Gleeo Time Tracker when you are in the office, stop recording when you leave. Switch the ringer to vibrate when you are at your office. Turn off the ringer in the church. (Do it manually when it is important!) Send an SMS when you are home. Note: The location is usually checked every 4 minutes when the device is not actively used and the classic method is used. This can result in the GPS icon on the statusbar being visible every 4 minutes. Entering/exiting a location can be missed when you are moving fast through a location with a small radius and the 4 minute check misses the location. Locations can be reported more often when the device is active or another application also uses the location features (for example when using Google Maps). Settings Method The method used to detect the geofence. Modern uses the new geofence API provided by Google and should be tuned to use only a minimum amount of battery power. The algorithms to detect the locations are not known and can vary depending on device model. Please experiment with both methods to see what works best for you. Location The location used by this trigger. Location Name The name to use for this location. This name is used in the trigger name and to select an existing location on the map. Radius The radius around the location in meters. Entering/Exiting Whether to execute the flow when the location within the defined radius is entered or exited. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed location the configured location location_name the name of the location entering whether the location has been entered or not Location Provider State The trigger Location Provider State is executed when a location provider (GPS or Network) is enabled or disabled. Examples: Deactivate a flow that uses GPS when GPS is turned off. Settings Location Provider The location provider to monitor (GPS or Network) Enabled/Disabled Whether to trigger when the provider was enabled or disabled. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Login Attempt The trigger Login Attempt is executed, whenever someone unsuccessfully tries to login to the device respectively tries to unlock the device. Examples: Take a picture with the front camera when someone enters the wrong PIN code three times. Settings Failed/Successful after failed Failed: executes the trigger when the login attempt fails Successful after failed: executes the trigger when the login attempt was successful after it failed one or multiple times before When On every failed attempt: executes once for every failed attempt On the Nth failed attempt: executes the trigger exactly once when the number of failed login attempts reach the specified amount of times A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed failed_login_attempt the number of failed login attempts Media Button Event (Experimental) The trigger Media Button Event (Experimental) executes a flow when the system detects a media button event, for example when the play-button is pressed on a headset. Warning: When an audio player is launched, future events are usually sent to the audio player and not to Automagic anymore. If this is not the desired behaviour, Automagic has to be registered to receive the events again using an action Reregister Media Button Receiver. Settings Events Whether the trigger should be executed for all media button events or only for a specific button. Specific event The Event/Button that should be reacted upon. Wired headsets usually generate the event Headset Hook. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed key_code the numeric keycode key_code_name (Android 3.1+) the name of the keycode key_duration the duration of the event in milliseconds key_source_device_id the ID of the sending device Mobile Datanetwork Type The trigger Mobile Datanetwork Type is executed when the network type switches to one selected in the list. Examples: Play an alert sound when the network switches to GPRS Settings Network Type The network types to execute the trigger. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed previous_mobile_network_type the type of the network before mobile_network_type the type of the network (0=Unknown, 1=GPRS, 2=EDGE, 3=UMTS, 4=CDMA, 5=CDMA - EvDo rev. 0, 6=CDMA - EvDo rev. A, 7=CDMA - 1xRTT, 8=HSDPA, 9=HSUPA, 10=HSPA, 11=iDEN, 12=CDMA - EvDo rev. B, 13=LTE, 14=CDMA - eHRPD, 15=HSPA+) Next Alarm The trigger Next Alarm is executed when the next alarm set in the Android alarm app is reached. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Start the coffee machine when you are woken up in the morning. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed NFC State The trigger NFC State is executed when the NFC adapter of the device is turned on or off depending on the settings used. Settings NFC state Defines the NFC states to trigger the flow. Selecting multiple states triggers the flow once for each state. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed nfc_state the current state of the NFC adapter NFC Tag The trigger NFC Tag executes the flow when an NFC tag is detected. You can either write a special ID to the NFC tag that will be used to identify the tag and execute the flow (this is the recommended option to use when you have a writeable NFC tag) or you can also read the ID of an existing NFC tag. This is especially useful for read-only NFC tags like the ones often found in credit cards or read-only NFC tags (Live Tags, Smart Tags etc.) of some device manufacturers. Please also check the Tip in the settings section of this page. Note: Not all NFC tags are supported. Examples: Turn on the airplane mode when an NFC tag in the bedroom is scanned Settings Tag Type Whether an NFC tag is written using a specific ID defined in Automagic (recommended) or an existing NFC tag should be used (does not work with all tags, some devices show an app selection list when other apps are installed that also handle NFC tags). Tag IDs A comma separated list of tag IDs. Glob patterns can be used to match multiple tag IDs. Write ID to NFC tag Opens a screen to write the specified IDs to an NFC tag. The NFC tag must be writeable and must be able to contain NDEF formatted data. Multiple IDs can be written to the tag but the tag IDs must contain only regular characters, underscore and numbers. Option Write alternate tag information on the writer screen allows to define whether or not different type of information should be written to the NFC tag. Some devices show a warning dialog when a regular Automagic NFC tag is scanned since the tag contains a Web-URL. Writing an alternate tag uses a different URL that avoids this warning message. Android 4+: Option Include Android Application Record on the writer screen allows to define whether or not an additional AAR (Android Application Record) should be written to the tag. An AAR uses slightly more space on the NFC tag but ensures that the tag is preferably handled by Automagic and not by another app. Read ID from NFC Tag Opens a screen to read the ID of an existing NFC tag. Tip: Some devices contain apps that can handle generic NFC tags and are shown in a selection list when an NFC tag is scanned. Uninstall or deactivate unused apps when the selection dialog bugs you. You can deactivate apps in the system settings on an Android 4+ device (System settings->Apps->All, Select the app->Deactivate). For example, you can disable the app Tags on a Galaxy Nexus to prevent the selection list from showing. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed nfc_tag_ids the scanned tag ID or a comma separated list when the tag contained multiple IDs Notification on Screen Displayed The trigger Notification on Screen Displayed is executed when a notification is displayed on the screen. Note: At least Android 4.0 (ICS) is required. Examples: Read out the text of a notification Settings Package Name The comma separated list of apps that displayed the notification. Glob patterns can be used to match multiple packages. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed notification_message the text of the displayed notification package_name the name of the package that displayed the notification app_name the display name of the app Notification on Statusbar Displayed The trigger Notification on Statusbar Displayed is executed when a notification is displayed in the statusbar. Examples: Turn the screen on when Gmail app receives a mail Settings Package Name The comma separated list of apps that displayed the notification. Glob patterns can be used to match multiple packages. Ignore ongoing events Defines whether or not the trigger should execute the flow for ongoing events. A notification is marked as an ongoing event by the application that posts the notification and is usually set when a notification shows some progress like a file download, an app is playing a sound, or an app is running as a foreground service. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed title the title of the displayed notification notification_text (This function is not officially supported by Android and does not work with all notifications) the textual content of the notification notification_text_big (Android 4.1+, This function is not officially supported by Android and does not work with all notifications) the textual content of the big, expanded view of the notification package_name the name of the package that displayed the notification app_name the display name of the app id (Android 4.3+) the id of the notification buttons (Android 4.1+, This function is not officially supported by Android and does not work with all notifications) the list of buttons available on the big, expanded notification Notification on Statusbar Removed The trigger Notification on Statusbar Removed is executed when a notification is removed from the statusbar. Examples: Disable mobile data access when a music app displaying a notification is stopped Settings Package Name The comma separated list of apps that displayed the notification. Glob patterns can be used to match multiple packages. Ignore ongoing events Defines whether or not the trigger should execute the flow for ongoing events. A notification is marked as an ongoing event by the application that posts the notification and is usually set when a notification shows some progress like a file download, an app is playing a sound, or an app is running as a foreground service. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed title the title of the displayed notification notification_text (This function is not officially supported by Android and does not work with all notifications) the textual content of the notification notification_text_big (Android 4.1+, This function is not officially supported by Android and does not work with all notifications) the textual content of the big, expanded view of the notification package_name the name of the package that displayed the notification app_name the display name of the app id (Android 4.3+) the id of the notification Notification on Statusbar Selected The trigger Notification on Statusbar Selected executes the flow when a notification is selected that was previously shown using action Notification on Statusbar. Example: Show a notification when the airplane mode is enabled by a flow. Turn airplane mode manually off when the notification in the statusbar is selected. Settings Notification Create own Notification Creates a new notification on the statusbar. Trigger on Notification from Action Trigger the flow when a notification supplied by action Notification on Statusbar was selected. Icon The icon to use for this notification. Title The title of the notification. Message The message of the notification. Play Sound Plays the default notification sound when checked. Vibrate Vibrates when checked. Flash LED Flash the notification LED using the supplied color. Notification LED and user defined colors are not supported on all devices. Ongoing Flags this notification as an ongoing event and prevents the removal of this notification from the statusbar. A notification ID is mandatory when this option is selected. Priority (Android 4.1+) Defines the priority of the notification. A notification with a low priority might be displayed in the expanded statusbar only (depends on Android version). Notification IDs Whether the trigger should be executed for one specific ID or for all notifications. The ID can be defined in the action Notification on Statusbar. Big Message (Android 4.1+, Premium) Defines a big message that will be displayed when the notification is expanded (by swiping down on the notification). The notification usually also shows the big message when the notification is displayed as the topmost notification on the notification drawer. You can affect the ordering of the notifications by using the priority setting. Actions (Android 4.1+, Premium) Up to three actions displayed as buttons when the notification is expanded (by swiping down on the notification). The notification usually also shows the action buttons when the notification is displayed as the topmost notification on the notification drawer. You can affect the ordering of the notifications by using the priority setting. Tip: Use action Execute Flows to execute a complex flow consisting of multiple actions and conditions. Following variables are supplied to the executed action: action_number: contains the number of the action (1, 2 or 3) action_text: the text label of the selected action button on the notification A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed notification_title the title of the notification notification_message the message of the notification notification_id the ID of the selected notification Outgoing Call The trigger Outgoing Call is executed when an outgoing call is made and the criteria defined in the options match. Examples: Start recording in Gleeo Time Tracker when you call your employer. Send a mail containing the called number and time to your mail account. Settings Called Callnumber List The list of callnumbers when the flow should be executed. Multiple numbers can be separated by comma. Glob patterns (*, ?) can be used to filter on similar numbers like corporate number ranges: Examples: +17001111111 +17001111111,+17002222222 *70033311* *70033311*,*70033?22* Special characters like +, - and . are removed before comparing the number. Warning: Verify that the called number is formatted to your expectations. You have to check the log file to see the exact formatting used or you can add an action Notification on Screen with text {called_number} to see the actual number. Phone state Defines the state of the call to trigger the flow. Selecting multiple states triggers the flow once for each state. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed called_number the number of the called party call_state the state of the call (IDLE, OFFHOOK) contact_name the name of the contact if available contact_company the company of the contact if available contact_title the title of the contact if available contact_note the note of the contact if available contact_nickname the nickname of the contact if available contact_email an email address of the contact if available contact_groups the list of groups of the contact if available Periodic Location Update The trigger Periodic Location Update is executed in periodic intervals and delivers a location to the executed flow. The accuracy of the location heavily depends on the selected location provider. Tip: The higher the time interval between updates the less battery will be used. A frequency of about 4 minutes is recommended. Examples: Record the location every 5 minutes to a file. Send an SMS with your location every hour to someone. Settings Location Provider The location provider to use. Network This provider uses the location provided by the cell tower and Wi-Fi signals. Depending on environment this provider can deliver location of about 60 meters of accuracy. Locations found using the cell tower can be very inaccurate (up to several kilometers or miles). Passive This provider delivers the location from the currently active provider (Network or GPS) without activating one of the providers by itself. This might result in very infrequent location updates. GPS This provider delivers the location using the GPS receiver. This provider usually uses more battery than the network provider. High Accuracy (Experimental) This provider delivers the finest available location using different sensors available on the device. Balanced Power/Accuracy (Experimental) This provider delivers the a location with an accuracy of about 100m and uses less battery than the high accuracy provider. Low Power (Experimental) This provider delivers the a location with an accuracy of about 10km. No Power (Experimental) This provider will only deliver locations when another app on the device has requested locations. Frequency The desired time between location updates. The actual time between location updates depends on the location provider when Enforce Exact Frequency is not checked. A location provider (for example GPS) can ignore the specified frequency and deliver updates every few seconds. Enforce Exact Frequency Ensures that the location is provided in the intervals specified by Frequency even when the location provider delivers the location updates more often or less often. Minimum Accuracy (in meters) Only newer locations with at least the specified accuracy are passed to the flow. This can be useful to filter out locations calculated using the cell tower when also more exact locations using WiFi are available. Limit time range Whether the trigger should be active all the time or only within a defined time range. Weekdays The day on which the trigger should be active. From - To The start of the time range and the end of the time range. A To-time smaller than the From-time will move the To-time to the next day to simplify checks for time ranges crossing midnight. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed location the reported location location_accuracy the accuracy of the location location_altitude the altitude of the location when available location_bearing the direction of travel in degrees East of true North when available location_speed the speed of travel in meters per second when available Periodic Timer The trigger Periodic Timer is executed in the specified interval. Examples: Remind about a recording task in Gleeo Time Tracker every 5 minutes. Settings Interval Defines the time interval between flow executions. Wake device when in sleep mode Defines whether the device should be woken up from sleep mode. Disabling this option saves a bit of battery but delays the trigger invocation for an unknown amount of time when the devices is asleep. Limit time range Whether the trigger should be active all the time or only within a defined time range. Weekdays The day on which the trigger should be active. From - To The start of the time range and the end of the time range. A To-time smaller than the From-time will move the To-time to the next day to simplify checks for time ranges crossing midnight. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Periodic Timer Inexact The trigger Periodic Timer Inexact is executed approximately in the specified interval. The device can adjust the time of the trigger a bit and call the trigger when the device is currently also executing other tasks. This trigger uses less battery than the regular trigger Periodic Timer Examples: Check approximately once an hour if a server is online. Settings Interval (Inexact) Defines the time interval between flow executions. Android only supports the times available in this list. Wake device when in sleep mode Defines whether the device should be woken up from sleep mode. Disabling this option saves a bit of battery but delays the trigger invocation for an unknown amount of time when the devices is asleep. Limit time range Whether the trigger should be active all the time or only within a defined time range. Weekdays The day on which the trigger should be active. From - To The start of the time range and the end of the time range. A To-time smaller than the From-time will move the To-time to the next day to simplify checks for time ranges crossing midnight. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Phone Cell CDMA The trigger Phone Cell CDMA is executed when the device connects or disconnects from the defined cells. Changes within the defined list of cells don't invoke the trigger. Warning: Some devices don't report the cell to Automagic when the screen is turned off. Examples: Turn WiFi on, when the device connects to one of the cells at home Settings Cell List A comma separated list of cell IDs. Glob patterns (*, ?) are supported. Variables are supported. Cell List to Ignore A comma separated list of cell IDs to ignore. Glob patterns (*, ?) are supported. Variables are supported. Connected / Disconnected Whether the trigger should be executed when the device connects or disconnects from the listed cells. Changes within the defined list of cells don't invoke the trigger. Wake device Whether the trigger should wake the CPU of the device every X minutes or not. This is necessary for some devices when the cell is not updated regularly. Consumes more battery when a shorter time interval is chosen. Turn screen on Whether the display should be turned on briefly or not. This is necessary for some devices when the cell is not updated otherwise. This option increases battery consumption and should only be enabled when the cell is not updated otherwise. Force update Whether the cell update should be forced. This option increases battery consumption and should only be enabled when the cell is not updated otherwise. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed cell_id the cell id, null if unknown base_station_id the ID of the base station , -1 if unknown network_id the ID of the network, -1 if unknown system_id the ID of the system, -1 if unknown base_station_latitude the latitude of the base station in quarter degree seconds, 2147483647 if unknown. Divide value by 14400 to get decimal degrees. Not all networks provide meaningful values. base_station_longitude the longitude of the base station in quarter degree seconds, 2147483647 if unknown. Divide value by 14400 to get decimal degrees. Not all networks provide meaningful values. connected true when connected to the defined cells, false otherwise disconnected true when disconnected from the defined cells, false otherwise Phone Cell GSM The trigger Phone Cell GSM is executed when the device connects or disconnects from the defined cells. Changes within the defined list of cells don't invoke the trigger. Warning: Some devices don't report the cell to Automagic when the screen is turned off. Examples: Turn WiFi on, when the device connects to one of the cells at home Settings Location Area Code (LAC) List A comma separated list of location area codes. A location area is set of base stations and usually covers a large area. Glob patterns (*, ?) are supported. Variables are supported. Cell ID (CID) List A comma separated list of cell IDs. Glob patterns (*, ?) are supported. Variables are supported. Cell ID (CID) List to Ignore A comma separated list of cell IDs to ignore. Glob patterns (*, ?) are supported. Variables are supported. Connected / Disconnected Whether the trigger should be executed when the device connects or disconnects from the listed cells. Changes within the defined list of cells don't invoke the trigger. Wake device Whether the trigger should wake the CPU of the device every X minutes or not. This is necessary for some devices when the cell is not updated regularly. Consumes more battery when a shorter time interval is chosen. Turn screen on Whether the display should be turned on briefly or not. This is necessary for some devices when the cell is not updated otherwise. This option increases battery consumption and should only be enabled when the cell is not updated otherwise. Force update Whether the cell update should be forced. This option increases battery consumption and should only be enabled when the cell is not updated otherwise. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed lac the currently connected location area code (LAC), -1 if unknown cid the currently connected cell ID (CID), -1 if unknown psc the primary synchronization code (PSC), -1 if unknown connected true when connected to the defined cells, false otherwise disconnected true when disconnected from the defined cells, false otherwise Phone Service State The trigger Phone Service State is executed when the device detects the specified state. Warning: Some devices don't send the current service state to applications when the screen is turned off. You can periodically use the action Turn Screen On to mitigate this problem. Examples: Play a warning sound when no service is available. Settings Phone Service State In Service Execute the flow when the telephony is back to regular operation. Out of Service Execute the flow when telephony becomes unavailable. Emergency Only Execute the flow when only emergency numbers can be called. Power Off Execute the flow when the radio is explicitly powered off. Wake device Whether the trigger should wake the CPU of the device every X minutes or not. Consumes more battery when a shorter time interval is chosen. Turn screen on Whether the display should be turned on briefly or not. This option increases battery consumption and should only be enabled when the values are not updated otherwise. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed previous_service_state the previous service state (0=in service, 1=out of service, 2=emergency only, 3=power off) service_state the current state of the service (0=in service, 1=out of service, 2=emergency only, 3=power off) roaming boolean indicating the roaming status Phone Signal Strength The trigger Phone Signal Strength is executed when the signal strength falls under or raises over the specified value. Examples: Play an alert when the signal strength becomes bad. Settings Signal Strength Condition Defines the condition that must be met to execute the flow: becomes lower than Executes the flow when the last reported value was above the defined level and the current value is below the defined level becomes higher than Executes the flow when the last reported value was below the defined level and the current value is above the defined level becomes equal to Executes the flow when the last reported value was different than the defined level and the current value equals the defined level lower than Executes the flow whenever the reported value by the system is below the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last value has been the same. higher than Executes the flow whenever the reported value by the system is above the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last value has been the same. exactly Executes the flow whenever the reported value by the system is exactly on the defined level. Depending on device this might cause the flow to be executed every few seconds. The flow is executed even when the last value has been the same. Signal Strength Defines the signal strength to use. Wake device Whether the trigger should wake the CPU of the device every X minutes or not. Consumes more battery when a shorter time interval is chosen. Turn screen on Whether the display should be turned on briefly or not. This option increases battery consumption and should only be enabled when the values are not updated otherwise. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed is_gsm true when GSM signal_strength_level the signal strength in a value from 0 to 4 like the bars on a standard Android device signal_strength_asu the signal strength in ASU (0-31) gsm_signal_strength the GSM signal strength (0-31, 99 for unknown, -1 for unavailable) gsm_bit_error_rate the GSM bit error rate (0-7, 99 for unknown, -1 for unavailable) cdma_dbm the CDMA RSSI value in dBm (-1 for unavailable) cdma_ecio the CDMA Ec/Io value in dB*10 (-1 for unavailable) evdo_dbm the EVDO RSSI value in dBm (-1 for unavailable) evdo_ecio the EVDO Ec/Io value in dB*10 (-1 for unavailable) evdo_snr the EVDO signal to noise ratio (0-8, -1 for unavailable) Plugin (Experimental) The trigger Plugin (Experimental) executes a flow when the condition of a plugin changes to true and/or false. Warning: This function is experimental and might not work with all existing plugins available in Google Play. We can not provide support for plugins. Note: Plugins can be defined using the interface description available from the app Locale: Locale developer documentation and Tasker: Tasker plugin extensions. Settings Plugin List of all available plugins found on the device. Condition becomes true: when the condition measured in the plugin changes from false or undefined to true becomes false: when the condition measured in the plugin changes from true or undefined to false A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed condition whether the condition became true or false Plugin Event (Experimental) The trigger Plugin Event (Experimental) executes a flow when an event-plugin indicates an event. Warning: This function is experimental and might not work with all existing plugins available in Google Play. We can not provide support for plugins. Note: Plugins can be defined using the interface description available from the app Locale: Locale developer documentation and Tasker: Tasker plugin extensions. Settings Plugin List of all available plugins found on the device. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Power Source The trigger Power Source is executed when a power source is connected to the device (charger or USB cable). Examples: Turn on WiFi when a power source is connected. Increase the screen brightness when a power source is connected. Set screen brightness to automatic when a power source is disconnected. Settings Power connected/disconnected Connected When selected executes the flow when a power source is connected. AC Adapter: when charging with the AC adapter USB: when charging over an USB connection Wireless: when charging wirelessly Disconnected When selected executes the flow when a power source is disconnected. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed battery_level the charging level of the battery battery_percentage the charging percentage battery_plugged whether the battery is plugged (1=AC adapter, 2=USB, 4=Wireless) or not (0=not plugged) battery_present whether the battery is present or not battery_scale the maximum battery level battery_status the status of the battery (1=unknown, 2=charging, 3=discharging, 4=not charging, 5=full) battery_technology the technology of the battery battery_temperature the temperature of the battery battery_voltage the current battery voltage battery_health the health of the battery Pressure Sensor The trigger Pressure Sensor is executed when the measured pressure of the pressure sensor rises above or declines below a certain level or when the pressure changes at least the specified amount in the given time. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Tip: If you need to check the pressure only every few minutes, it is recommended to use a condition Pressure Sensor since the condition will not use the sensor constantly and thus consumes less battery. Examples: Execute a flow when the pressure changes when walking down a stair Settings Type Declines below: executes the trigger when the measured pressure falls under a certain value Rises above: executes the trigger when the measured pressure rises above a certain value Declines within duration: executes the trigger when the measured pressure declines a certain amount within a given time Rises within duration: executes the trigger when the measured pressure rises a certain amount within a given time Pressure (in mbar) The pressure in millibar to compare. Threshold The minimal change in pressure before the trigger is executed again. Example: Type: Declines below, Pressure 1000mbar, Threshold: 5mbar The trigger is executed when the pressure declines below 1000mbar. The pressure has to rise to at least 1005mbar again before the trigger is executed again. Change (in mbar) The change in pressure in mbar. Duration The duration the pressure change has to happen for the trigger to execute. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed pressure the measured pressure in mbar Proximity Sensor The trigger Proximity Sensor is executed when the measured distance of the proximity sensor passes the defined distance. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Settings Distance (in cm) Whether to execute the trigger when the distance passes above or below the defined distance and the distance in cm. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed proximity the measured value of the proximity sensor Screen Orientation The trigger Screen Orientation is executed when the orientation of the device changes to portrait or landscape. Examples: Change the active keyboard type depending on screen orientation Settings Portrait or Landscape Whether the trigger should be executed when the display changes to portrait or landscape. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Shake The trigger Shake is executed when the device is shaken. Warning: This trigger uses the device hardware sensors and might increase battery usage (depending on device model). Some devices turn off the sensors when the screen is off. Examples: Raise the screen brightness for 1 minute when the device is shaken. Turn silent mode on when the device is shaken. Settings Sensitivity Defines how strong a shake must be to invoke the trigger. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Shortcut The trigger Shortcut is executed when a shortcut on the launcher is pressed. You can create the shortcut and select an icon by pressing the Install Shortcut button. Examples: Turn WiFi on by pressing the shortcut. Launch a settings application screen by pressing the shortcut. Start recording in Gleeo Time Tracker by pressing the shortcut. Settings Title The title/name of the shortcut to create. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Shutdown The trigger Shutdown is executed before the device shutdown. A flow is executed on a best effort basis, Automagic might not have enough time to execute the flow completely or some services or interfaces might already be unavailable when the shutdown is detected. Examples: Vibrate before the device shuts down A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Significant Motion Detected The trigger Significant Motion Detected is executed when the special hardware sensor of the device detects a significant motion. Automagic can not configure how strong or how long the duration of the motion needs to be to activate the sensor. Warning: This trigger hardware sensors of the device. This special hardware sensor used by this trigger should have a very low battery consumption. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed SMS Received The trigger SMS Received is executed when an SMS is received depending on the criteria defined in the options. Examples: Play a special alert when an SMS containing the keyword Alert! Send an SMS containing your location back to the SMS sender when the SMS contains Where are you? Read the received SMS aloud. Delete a password file on the SD card when the SMS contains house search! Play a repeating sound and vibrate when an SMS contains device lost! Tip: Use a keyword or password that will not be part of a regular SMS to avoid unpleasant surprises. Settings SMS Sender List The list of callnumbers when the flow should be executed. Multiple numbers can be separated by comma. Glob patterns (*, ?) can be used to filter on similar numbers like corporate number ranges: Examples: +17001111111 +17001111111,+17002222222 *70033311* *70033311*,*70033?22* Special characters like +, - and . are removed before comparing the number. Warning: The formatting of the incoming number depends on the operator in use. You have to check the log file to see the exact formatting used or you can add an action Notification on Screen with text {sms_sender} to see the actual number. Contains Text Only executes the flow when the text of the SMS contains the given text (no wildcards supported). The text is not case sensitive. Prevent other apps from receiving the SMS Prevents the regular SMS application from receiving the SMS. Warning: Only check this option when you are sure that Contains Text does not match regular SMS by accident. Warning: This feature is not supported on Android 4.4+. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed sms_text the text of the SMS sms_sender the sender of the SMS contact_name the name of the contact if available contact_company the company of the contact if available contact_title the title of the contact if available contact_note the note of the contact if available contact_nickname the nickname of the contact if available contact_email an email address of the contact if available contact_groups the list of groups of the contact if available SMS Sent The trigger SMS Sent is executed when an SMS is sent and stored as a sent SMS in the default SMS outbox of the standard Android SMS database. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Send every sent SMS as a mail to your mail account Settings SMS Receiver List The list of callnumbers when the flow should be executed. Multiple numbers can be separated by comma. Glob patterns (*, ?) can be used to filter on similar numbers like corporate number ranges: Examples: +17001111111 +17001111111,+17002222222 *70033311* *70033311*,*70033?22* Special characters like +, - and . are removed before comparing the number. Contains Text Only executes the flow when the text of the SMS contains the given text (no wildcards supported). The text is not case sensitive. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed sms_text the text of the SMS sms_receiver the receiver of the SMS contact_name the name of the contact if available contact_company the company of the contact if available contact_title the title of the contact if available contact_note the note of the contact if available contact_nickname the nickname of the contact if available contact_email an email address of the contact if available contact_groups the list of groups of the contact if available Sound Level (Experimental) The trigger Sound Level (Experimental) is executed when the recorded sound level in the environment exceed a certain level. Warning: This condition records the environment sound using the microphone of the device which does not work, when another app already uses the microphone. Settings Average If the current sound level should be considered or the duration to record and calculate the sound level. Sensitivity The sensitivity of the slider to define the sound level. Sound Level The sound level to check. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed sound_level the detected sound level Speed The trigger Speed is executed when the measured speed of the GPS receiver rises above or declines below a certain level. Warning: This trigger uses the GPS receiver and might increase battery usage (depending on device model). Examples: Record the location in a file whenever you are driving faster than 120km/h Settings Type Declines below: executes the trigger when the reported speed falls under a certain value Rises above: executes the trigger when the reported speed rises above a certain value Speed The speed to compare. Unit The unit of the speed. Threshold The minimal change in speed before the trigger is executed again. Example: Type: Declines below, Speed 40km/h, Threshold: 10km/h The trigger is executed when the speed declines under 40km/h. The speed has to rise to at least 50km/h again before the trigger is executed again. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed location the reported location location_accuracy the accuracy of the location location_altitude the altitude of the location when available location_bearing the direction of travel in degrees East of true North when available location_speed the speed of travel in meters per second Storage Media Event The trigger Storage Media Event is executed when the system mounts or unmounts the SD card or makes other changes involving the storage media. Examples: Disable a flow writing the location to the SD card when the sdcard is removed. Settings Event Defines the event when the flow should be executed. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed path the affected path System Setting Changed The trigger System Setting Changed is executed whenever a setting in the systems setting database was changed. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Play an alert when the system turns on the blocking mode. Settings Category System: for regular settings Secure: for settings which can usually not be modified Global: for global Settings valid for all users of the device (Android 4.2+) Name The name of the setting to watch. Variable The name of the variable with the new value of the setting to pass to the flow. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed old_setting the value of the setting before it was changed setting the new value of the setting Time The trigger Time is executed regularly on the defined weekday and time. Examples: Download a PDF newspaper every morning at 6am. Turn on airplane mode every evening at 11pm. Turn off airplane mode every morning at 6am. Settings Weekdays The day on which the trigger should execute the flow. Time The time of the day when the trigger should execute the flow. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Time Adjusted The trigger Time Adjusted is executed when the time of the system is changed. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed Timezone Adjusted The trigger Timezone Adjusted is executed when the timezone of the system has been changed. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed timezone the new timezone User Activity (Experimental) The trigger User Activity (Experimental) asks the device to periodically check most probably physical activity of the user like driving a car, riding a bike or walking. Note: The detection of the current activity is a feature of the device provided by Google. Automagic can not change or improve the quality of the detected activity. Examples: Check the activity every 5 minutes to measure how much time the user walks per day and how much time the user sits in the office. Increase the ringer volume when the user is driving in a car. Settings Trigger when Activity detected: execute the flow when the defined activity begins or ends. Periodically: execute the flow periodically even when the activity stays the same. Activity Defines which activity should trigger the flow. Begin executes the flow when the detected activity switches to the defined activity and was different before. Ends executed the flow when the defined activity was in progress before and is not detected anymore. Enforce Exact Frequency Ensures that the flow is executed exactly at the defined frequency even when the detected activity changes more or less frequent. Check Frequency The desired time between activity checks. The actual time between activity updates depends on the device when Enforce Exact Frequency is not checked. The device can detect the activity more frequently when another app is interested in activity updates and uses a shorter update interval. Some devices turn off activity detection when activity still is detected and a low power sensor to detect device movement is available. Minimum Confidence The minimum confidence level to accept (0=unconfident, 100=confident). Limit time range Whether the trigger should be active all the time or only within a defined time range. Weekdays The day on which the trigger should be active. From - To The start of the time range and the end of the time range. A To-time smaller than the From-time will move the To-time to the next day to simplify checks for time ranges crossing midnight. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed activity_name the name of the activity ("in_vehicle", "on_bicycle", "on_foot", "tilting" or "unknown") activity_type the type of the activity as a number (0=in_vehicle, 1=on_bicycle, 2=on_foot, 3=still, 4=unknown, 5=tilting) activity_confidence the confidence in a number from between 0=unconfident and 100=confident activity_time the time when the activity was originally detected User Present The trigger User Present executes the flow when the user activates the device and passed the unlock screen. Example: Start the browser when the device is unlocked at home. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed WiFi Connected The trigger WiFi Connected is executed when a connection with the defined network has been established. Examples: Download a file as soon as WiFi is available. Settings SSID List The list of SSIDs to execute the flow when connected. The list can contain glob pattern characters like * and ?. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed bssid the BSSID of the connected WiFi network ssid the SSID of the connected WiFi network WiFi Disconnected The trigger WiFi Disconnected is executed when a connection with the defined network has been separated. Examples: Play an alert when WiFi is not available anymore. Turn off flows causing big data transfers. Settings SSID List The list of SSIDs to execute the flow when disconnected. The list can contain glob pattern characters like * and ?. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed bssid the BSSID of the disconnected WiFi network ssid the SSID of the disconnected WiFi network WiFi Scan Results Available The trigger WiFi Scan Results Available is executed when the results of a WiFi access point scan are available. Examples: Connect to a free WiFi network when it becomes available. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed access_points the list of available access points WiFi State The trigger WiFi State is executed when the devices wireless network adapter changes to one of the defined states. Examples: Enable some download flows when WiFi is turned on Settings WiFi States The accepted states. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed previous_wifi_state the wifi state (0=disabling, 1=disabled, 2=enabling, 3=enabled, 4=unknown) wifi_state the wifi state (0=disabling, 1=disabled, 2=enabling, 3=enabled, 4=unknown) Wired Headset Plugged The trigger Wired Headset Plugged is executed when a wired headset or earphones have been connected or disconnected. Examples: Turn down the volume when the headset is connected. Settings Wired headset plugged/unplugged Plugged Execute the flow when the headset has been plugged. Unplugged Execute the flow when the headset has been unplugged. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed headset_type the type of the headset microphone whether a microphone is available or not Base Concepts Creating the First Flow Creating a Custom Widget Main Screens Triggers Conditions Actions Conditions Active Network Type Airplane Mode On App Process Running App Task Running Audio Manager Mode Audio Volume Auto Sync Enabled Auto-rotate Screen Enabled Battery Level Bluetooth Device Connected Bluetooth Enabled Bluetooth SCO On Calendar Event Call State Confirmation Dialog Debug Dialog Device Orientation Device Storage Space Device Storage Space Low Dock State Execution Count Expression Flow Enabled Flow Executing Gleeo is Recording Gmail Unread Conversation Count Host Reachable Keyguard Locked Light Sensor Location Location Entering Location Provider Enabled Time Range UI Mode Vibrate on Ring Enabled WiFi Access Point Enabled WiFi Available WiFi Connected Wifi Signal Level WiFi State Microphone Mute Mobile Datanetwork Enabled Mobile Datanetwork Type Music Active Network Connected NFC Enabled Night Mode Notification on Statusbar Displayed Phone Cell CDMA Phone Cell GSM Phone Service State Phone Signal Strength Plugin (Experimental) Power Source Connected Pressure Sensor Proximity Sensor Ringer Mode Roaming Screen On Screen Orientation Service Running Sound Level (Experimental) Speakerphone On Telephony Radio Enabled WiFi Tethering State Wired Headset Plugged Conditions Active Network Type The condition Active Network Type checks if a network (usually WiFi or Mobile) is active and usable for data traffic. Examples: Execute a download action only when the current active network is WiFi Settings Network Type Defines for what network types the condition should be true A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables network_type the network type as number (None=-1, Mobile=0, WiFi=1, WiMAX=6, Bluetooth=7, Ethernet=9) network_type_name the name of the network as string like WIFI or MOBILE network_subtype the network subtype as number network_subtype_name the network subtype as number network_state the network state (CONNECTING, CONNECTED, SUSPENDED, DISCONNECTING, DISCONNECTED, UNKNOWN) network_detailed_state the detailed network state (IDLE, SCANNING, CONNECTING, AUTHENTICATING, OBTAINING_IPADDR, CONNECTED, SUSPENDED, DISCONNECTING, DISCONNECTED, FAILED, BLOCKED, VERIFYING_POOR_LINK, CAPTIVE_PORTAL_CHECK) network_extra_info additional info as string (like SSID), when available network_reason the reason of a failure, when available Airplane Mode On The condition Airplane Mode On checks whether the airplane mode is on or not. Examples: Only download a file when airplane mode is turned off. App Process Running The condition App Process Running checks whether the process hosting an app is currently running. Note: Android keeps processes in memory even when the process might not be required anymore and enough free memory is available. Settings Package Name The name of the process to check. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables pid the id of the process importance the importance of the process. The smaller the value the higher the importance. lru least recently used. Smaller value means more recently used. uid the user id of the process App Task Running The condition App Task Running checks whether a task for one of the specified packages is currently running. Settings Package Name The name of the app to check. Glob patterns (*, ?) are supported. Variables are supported. check most recent app task only if only the most recent app task should be checked (this is the active app on many Android versions) A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables index the index of this task. An index of zero denotes the most recent running task. base_activity the component launched as the first activity in the task top_activity the activity component at the top of the history stack of the task id a unique identifier for this task num_running the number of activities that are currently running (not stopped and persisted) in this task description a description of the task's current state Audio Manager Mode The condition Audio Manager Mode checks whether the device is currently configured to use the desired audio manager mode. Settings Audio Manager Mode The desired audio manager mode to check. Audio Volume The condition Audio Volume checks whether the volume of the selected stream type is above or below a certain level. Examples: Execute a vibrate action only when the music volume is very low Settings Sound Type The type of the audio stream to check. Condition Whether the condition should check if the volume is above or below the volume level. Volume The volume value to check. Auto Sync Enabled The condition Auto Sync Enabled checks whether the automatic synchronisation is turned on or off either globally (the master switch) or for a specific account/authority. Examples: Check the current state of auto sync to toggle the setting to the opposite value Settings Global or Specific Whether the global master switch should be checked or a specific account/authority. Account The account to check in format Type:Name. Variables are supported. Authority The part/database of the account to check. Variables are supported. Auto-rotate Screen Enabled The condition Auto-rotate Screen Enabled checks whether the system setting to automatically rotate the screen is enabled or not. Battery Level The condition Battery Level checks whether the battery level is above or below a certain level. Examples: Download a file only when the battery level is above 50%. Settings Battery Level Defines the condition that must be met to continue the flow on the true branch: lower than true when the reported percentage by the system is below the defined level higher than true when the reported percentage by the system is above the defined level exactly true when the reported percentage by the system is exactly on the defined level full true when the reported battery status by the system is full Level Percentage Defines the level percentage. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables battery_level the charging level of the battery battery_percentage the charging percentage battery_plugged whether the battery is plugged (1=AC adapter, 2=USB, 4=Wireless) or not (0=not plugged) battery_present whether the battery is present or not battery_scale the maximum battery level battery_status the status of the battery (1=unknown, 2=charging, 3=discharging, 4=not charging, 5=full) battery_technology the technology of the battery battery_temperature the temperature of the battery battery_voltage the current battery voltage battery_health the health of the battery (1=unknown, 2=good, 3=overheat, 4=dead, 5=over voltage, 6=unspecified failure, 7=cold) Bluetooth Device Connected The condition Bluetooth Device Connected checks whether a connection to a Bluetooth device exists. Warning: This function is not directly supported by Android. The list of currently connected Bluetooth devices is collected using connect/disconnect events reported to Automagic. Under certain circumstances, the list of connected devices might not correspond to the list of really connected devices, for example when Automagic is freshly installed and a bluetooth device was already connected. In such cases, the bluetooth adapter must be disabled temporarily and reenabled in the preferences of Android to force the Bluetooth devices to reconnect. Examples: Turn on WiFi in the evening only when one of the Bluetooth devices at home is connected. Settings Bluetooth Device Defines whether the condition should check if at least one connection to a device exists or if the condition should check a specific device. Bluetooth Device Address The address of the bluetooth device. Variables are supported. Bluetooth Device Name The name of the bluetooth device. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables connected_devices_addresses list of addresses of the connected devices connected_devices_names list of names of the connected devices Bluetooth Enabled The condition Bluetooth Enabled checks whether bluetooth is turned on or off. Examples: Open an app when bluetooth is turned on. Bluetooth SCO On The condition Bluetooth SCO On checks whether communications use Bluetooth SCO or not. Calendar Event The condition Calendar Event checks, whether an event on the calendar is currently active. Examples: Send an SMS to the calling number telling when your meeting ends Don't let the SMS be read aloud in a meeting Settings Starting The start time offset the condition should consider an event as active. Ending The end time offset the condition should consider an event as active. Calendars A comma separated list of calendar names that should be checked for events. The values can contain glob pattern characters like * and ?. Variables are supported. Titles A comma separated list of event titles to match. The values can contain glob pattern characters like * and ?. Variables are supported. Examples: Plan* matches titles like Planning, Plan B etc. Descriptions A comma separated list of event descriptions to match. The values can contain glob pattern characters like * and ?. Variables are supported. Locations A comma separated list of event locations to match. The values can contain glob pattern characters like * and ?. Variables are supported. Event Type Whether the trigger should consider all day events or regular events (not all day) or both. Event Availability Whether the trigger should consider events marked as free, busy or tentative. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables event_calendar the name of the calendar of the event event_title the title of the event event_description the description of the event event_location the location of the event event_start the start time of the event event_end the end time of the event event_all_day boolean indicating if the event is all day or not event_availability FREE, BUSY or TENTATIVE depending on the availability of the event event_id the ID of the event Call State The condition Call State checks whether a call is currently active or not. Settings Phone state The accepted states. Note: State Ringing is only valid for incoming calls, an outgoing call directly changes the state from Idle to Off-hook Confirmation Dialog The condition Confirmation Dialog shows a dialog with a question and continues flow execution depending on the button pressed. Examples: Turn on bluetooth but ask for confirmation first. Settings Question The text of the question to ask. Variables are supported. Activate Timeout Whether an automatic timeout should be used when the user does not react within the specified time. Duration The amount of time to automatically close the dialog and to continue the flow. Value on Timeout Whether the flow should be continued on the Yes or No branch. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables operation the operation used to close the dialog. Can be one of: yes when the user pressed the Yes-button no when the user pressed the No-button timeout when the dialog was closed by a timeout Debug Dialog The condition Debug Dialog shows a dialog containing all variables and the corresponding values in a dialog. Buttons can be used to control if the condition continues at "true" or "false. Examples: Debug a complex flow. Device Orientation The condition Device Orientation checks whether the device is in one of the specified orientation. Examples: Beep every 5 minutes when recording your time but only when the device display is not facing down. Settings Device Orientation The desired orientation of the device. Face down: The display of the device is facing down for example when lying on a table with the display towards the table. Face up: The display of the device is facing up for example when lying on a table with the display facing away from the table. Face left: The display faces to the left with the longer side lying on a table when the upper edge of the device is pointing away from you. Face right: The display faces to the right with the longer side lying on a table when the upper edge of the device is pointing away from you. Standing upright: The device is standing upright on a table. Standing upside-down: The device is standing upside-down on a table. Device Storage Space The condition Device Storage Space checks the storage space on the filesystem containing the specified path. Example: Check every morning if 100MB are still free on the SD card. Settings Filesystem The path of the filesystem to check. Variables are supported. Compare Free or Used Space Whether to check the free or used space on the filesystem. Size The size to check. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables available_blocks the number of free blocks available to applications free_blocks the number of free blocks inclusive reserved blocks not usable by applications block_count the total number of blocks in the filesystem block_size the size of the blocks in bytes available_space the available space in bytes used_space the used space in bytes Device Storage Space Low The condition Device Storage Space Low checks whether the free space of the internal memory of the device is low. Note: The amount of free space to consider as low is defined by the device manufacturer. Standard Android considers less than 10% of free internal memory as low. Example: Play a warning sound every 5 minutes when the device storage space is low. Dock State The condition Dock State checks whether the device is in one of the docking states or not. Settings Dock States The accepted docking states. Docked Car: in a car dock Docked Desk: in a desk dock Docked Desk (High End, Digital): in a high end, digital dock Docked Desk (Low End, Analog Dock): in a low end, analog dock Docked Special: in a special dock like a hardware keyboard for an ASUS Transformer Undocked: not in a dock Execution Count The condition Execution Count checks whether the condition has been executed a certain amount of times. An internal counter is incremented whenever the condition is executed. The counter is reset to zero when to condition is met. Examples: Play an alarm when 2 SMS are received in 5 minutes. Turn off the screen when the device is shook 2 times in 10 seconds. Settings Count The count to compare. Timed Only consider executions that happened within the given duration. Duration The maximum age of executions to consider. Expression The condition Expression checks whether the expression is true or not. Example Expressions: a==1 b > =3 c < b AND a > 3 (a--)==0 startsWith(a, "test") a > addDays(b, 4) isEmpty(files) Examples: Check if the accuracy of a location is good enough: location_accuracy<300 Check if a counter reached zero: counter==0 See action Script for a description of the scripting language. Settings Expression The expression to evaluate. Note: Variables can be used directly in an expression and don't need to be escaped using curly braces. Example: use location_accuracy instead of {location_accuracy}. Flow Enabled The condition Flow Enabled checks whether a flow is enabled or disabled. Settings Flow Name The exact name of the flow to check. Variables are supported. Flow Executing The condition Flow Executing checks if a particular flow is currently executing. Examples: Don't execute a flow when the flow is already executed. Settings Flow Name The name of the flow to check. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables flow_execution_contexts how many times the flow is currently executing Gleeo is Recording The condition Gleeo is Recording checks whether Gleeo Time Tracker is currently recording a specific project or task. Settings Project Filter List A comma separated list of the projects to accept. Variables are supported. Task Filter List A comma separated list of the tasks to accept. Variables are supported. Gmail Unread Conversation Count The condition Gmail Unread Conversation Count checks the number of unread conversations available in the Gmail app on the device. Examples: Play an alert sound every 5 minutes when unread conversations are available Settings Condition Defines the condition that must be met to continue the flow on the true branch: lower than true when the reported count is below the defined count higher than true when the reported count is above the defined count exactly true when the reported count is exactly matches the defined count Unread Count The number to compare in the condition. Accounts The accounts to check. The sum of unread conversations is checked when multiple accounts are specified. The values can contain glob pattern characters like * and ?. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables count the number of unread conversations Host Reachable The condition Host Reachable tests whether a host can be reached by either opening a TCP-connection using a socket or by executing a ping command. Examples: Check once an hour if a server can be reached or not. Settings Type Type of the check: Automatic: Tries to connect to the host to port 7 to determine if the host is available. This method might use ping on some versions of Android. Socket: Tries to establish a TCP-connection to the specified host and port. The host is only considered to be reachable when the connection can be successfully established. Ping: Checks the reachability of the host using a ping-command (only one echo-request is sent). This option only works when the ping-command is available on the device. Host The host to check. Variables are supported. Port The port to connect to (only for type=Socket). Variables are supported. Keyguard Locked The condition Keyguard Locked checks whether or not the keyguard is currently active. Light Sensor The condition Light Sensor checks whether the measured value of the light sensor is below or above the defined level. Warning: Some devices turn off the sensors when the screen is off. Warning: Some devices can not determine the current value of the sensor and only deliver a value when the measured value of the sensor changes. This condition does not work on such devices. Settings Sensitivity The sensitivity of the slider to define the light level. Light Level Whether the trigger should execute when the illuminance passes above or below a certain value and the level to use. Timeout The amount of time to wait for a value of the sensor, the condition is terminated with an error when no value becomes available. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables light_level the effective illuminance in lux Location The condition Location checks whether a location is inside a specific area or not. The condition can also check if an area is entered or exited by comparing the location of the last execution and the current location. The condition uses the location already made available to the flow from a location trigger or uses the last known location of the system. The condition fails when no location is available in the flow and the device does not have a last known location ready. This usually happens when the flow is executed manually. Either use one of the location triggers to execute your flow or explicitly acquire the location using an action Init Variable Location before the condition is reached. Examples: Enable WiFi when you enter your office. Stop recording in Gleeo Time Tracker when you leave your office. Settings Location The location used by this condition. Location Name The name to use for this location. This name is used in the condition name and to select an existing location on the map. Radius The radius around the location in meters. Entering True when the location was outside the defined location and is inside now. Exiting True when the location was inside the defined location and is outside now. Ignore when previous state was not known Ignore entering/exiting when the location has not been known before. This is usually the case when the flow is executed for the first time after starting Automagic. Inside True when the location is inside. This is also true when the location has been inside before and therefore is possibly true for every location provided by a trigger. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables location the reported location location_name the name of the location entering whether the location has been entered or not exiting whether the location has been exited or not inside whether the location is inside the defined area or not Location Entering The condition Location Entering checks whether an area has been entered or exited. This condition should only be used in conjunction with a Location trigger. Examples: Enable WiFi when entering a location, disable WiFi when exiting the location. Start recording in Gleeo Time Tracker when coming to the office, stop recording when exiting the office. Settings Entering/Exiting Whether the condition should be true when entering or when exiting the location. Location Provider Enabled The condition Location Provider Enabled checks whether a particular location provider like GPS is enabled or not. Examples: Report your location per SMS only when GPS is active. Settings Location Provider The location provider to check. Network This provider uses the location provided by the cell tower and Wi-Fi signals. Depending on environment this provider can deliver location of about 60 meters of accuracy. Locations found using the cell tower can be very inaccurate (up to several kilometers or miles). Passive This provider delivers the location from the currently active provider (Network or GPS) without activating one of the providers by itself. This might result in very infrequent location updates. GPS This provider delivers the location using the GPS receiver. This provider usually uses more battery than the network provider. Microphone Mute The condition Microphone Mute checks whether the microphone is currently muted. Examples: Play a warning sound when the microphone is mute. Mobile Datanetwork Enabled The condition Mobile Datanetwork Enabled checks whether the mobile datanetwork is turned on or off. Warning: This function is not officially supported by Android and might not work on all devices. Examples: Open an app when the mobile datanetwork is turned on. Mobile Datanetwork Type The condition Mobile Datanetwork Type checks if the current datanetwork type matches one selected in the list. Examples: Download a PDF only when the network type is UMTS or LTE Settings Network Type The network types to accept. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables mobile_network_type the type of the network (0=Unknown, 1=GPRS, 2=EDGE, 3=UMTS, 4=CDMA, 5=CDMA - EvDo rev. 0, 6=CDMA - EvDo rev. A, 7=CDMA - 1xRTT, 8=HSDPA, 9=HSUPA, 10=HSPA, 11=iDEN, 12=CDMA - EvDo rev. B, 13=LTE, 14=CDMA - eHRPD, 15=HSPA+) Music Active The condition Music Active checks whether the music audio stream is currently in use. Examples: Turn down the media volume when entering a location and the music is playing. Network Connected The condition Network Connected checks if a network connection is currently available. Examples: Check that a network connection is available before sending a mail. NFC Enabled The condition NFC Enabled checks whether NFC is turned on or off. Examples: Play an alert sound when NFC is turned off when you enter the office. Night Mode The condition Night Mode checks whether the device is currently configured to use the desired night mode. Settings Night Mode The accepted night modes. Notification on Statusbar Displayed The condition Notification on Statusbar Displayed checks whether a notification of an app is displayed in the statusbar and supplies the information of the first matching notification as variables to the flow. Examples: Check every 5 minutes if an Hangout message is displayed in the statusbar and play a notification sound Settings Package Name The comma separated list of apps that displayed the notification. Glob patterns can be used to match multiple packages. Variables are supported. Ignore ongoing events Defines whether or not the condition should ignore ongoing events. A notification is marked as an ongoing event by the application that posts the notification and is usually set when a notification shows some progress like a file download, an app is playing a sound, or an app is running as a foreground service. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables title the title of the displayed notification notification_text (This function is not officially supported by Android and does not work with all notifications) the textual content of the notification notification_text_big (Android 4.1+, This function is not officially supported by Android and does not work with all notifications) the textual content of the big, expanded view of the notification package_name the name of the package that displayed the notification app_name the display name of the app id (Android 4.3+) the id of the notification buttons (Android 4.1+, This function is not officially supported by Android and does not work with all notifications) the list of buttons available on the big, expanded notification count the number of notifications matching the condition Phone Cell CDMA The condition Phone Cell CDMA checks whether the phone is connected to one of the specified cells of interest. Examples: Turn on WiFi when the phone cell at home is detected Settings Cell List A comma separated list of cell IDs. Glob patterns (*, ?) are supported. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables triggertime the time the trigger executed cell_id the cell id, null if unknown base_station_id the ID of the base station , -1 if unknown network_id the ID of the network, -1 if unknown system_id the ID of the system, -1 if unknown base_station_latitude the latitude of the base station in quarter degree seconds, 2147483647 if unknown. Divide value by 14400 to get decimal degrees. Not all networks provide meaningful values. base_station_longitude the longitude of the base station in quarter degree seconds, 2147483647 if unknown. Divide value by 14400 to get decimal degrees. Not all networks provide meaningful values. Phone Cell GSM The condition Phone Cell GSM checks whether the phone is connected to one of the specified cells of interest. Examples: Turn on WiFi when the phone cell at home is detected Settings Location Area Code (LAC) List A comma separated list of location area codes. A location area is set of base stations and usually covers a large area. Glob patterns (*, ?) are supported. Variables are supported. Cell ID (CID) List A comma separated list of cell IDs. Glob patterns (*, ?) are supported. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables lac the currently connected location area code (LAC), -1 if unknown cid the currently connected cell ID (CID), -1 if unknown psc the primary synchronization code (PSC), -1 if unknown neighboring_cells the list of neighboring cells. Null or empty if not available Phone Service State The condition Phone Service State checks whether the phone service is currently available, unavailable or only emergency calls can be placed. Warning: Some devices don't send the current service state to applications when the screen is turned off. You can periodically use the action Turn Screen On to mitigate this problem. Settings Phone Service state The accepted states. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables service_state the state of the service (0=in service, 1=out of service, 2=emergency only, 3=power off) roaming boolean indicating the roaming status Phone Signal Strength The condition Phone Signal Strength checks whether the signal strength of the mobile network is above or below a certain level. Warning: Some devices don't send the current signal strength to applications when the screen is turned off. You can use the options to periodically turn the screen on or wake the device. Examples: Beep every five minutes when the network strength is very weak Settings Signal Strength Condition Defines the condition that must be met to execute the flow: lower than true when the reported signal strength by the system is below the defined level higher than true when the reported signal strength by the system is above the defined level exactly true when the reported signal strength by the system is exactly on the defined level Signal Strength Defines the signal strength to use. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables is_gsm true when GSM signal_strength_level the signal strength in a value from 0 to 4 like the bars on a standard Android device signal_strength_asu the signal strength in ASU (0-31) gsm_signal_strength the GSM signal strength (0-31, 99 for unknown, -1 for unavailable) gsm_bit_error_rate the GSM bit error rate (0-7, 99 for unknown, -1 for unavailable) cdma_dbm the CDMA RSSI value in dBm (-1 for unavailable) cdma_ecio the CDMA Ec/Io value in dB*10 (-1 for unavailable) evdo_dbm the EVDO RSSI value in dBm (-1 for unavailable) evdo_ecio the EVDO Ec/Io value in dB*10 (-1 for unavailable) evdo_snr the EVDO signal to noise ratio (0-8, -1 for unavailable) Plugin (Experimental) The condition Plugin (Experimental) checks the condition of a plugin. Warning: This function is experimental and might not work with all existing plugins available in Google Play. We can not provide support for plugins. Note: Plugins can be defined using the interface description available from the app Locale: Locale developer documentation and Tasker: Tasker plugin extensions. Settings Plugin List of all available plugins found on the device. replace variables/modify configuration Script to dynamically replace variables and to modify the configuration passed to the plugin. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables Tasker variables takes over the local Tasker variables returned by the plugin (without leading %-character) Power Source Connected The condition Power Source Connected checks whether the device is currently connected to a power source. Examples: Turn on WiFi only when the device is connected to an AC adapter. Settings Power connected/disconnected Connected When a power source is connected. AC Adapter: when charging with the AC adapter USB: when charging over an USB connection Wireless: when charging wirelessly Disconnected When no power source is connected. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables battery_level the charging level of the battery battery_percentage the charging percentage battery_plugged whether the battery is plugged (1=AC adapter, 2=USB, 4=Wireless) or not (0=not plugged) battery_present whether the battery is present or not battery_scale the maximum battery level battery_status the status of the battery (1=unknown, 2=charging, 3=discharging, 4=not charging, 5=full) battery_technology the technology of the battery battery_temperature the temperature of the battery battery_voltage the current battery voltage battery_health the health of the battery Pressure Sensor The condition Pressure Sensor checks whether the measured pressure is below or above the defined value. Warning: Some devices turn off the sensors when the screen is off. Warning: Some devices can not determine the current value of the sensor and only deliver a value when the measured value of the sensor changes. This condition does not work on such devices. Settings Pressure (in mbar) Whether the condition should check if the pressure is above or below the defined pressure. Timeout The amount of time to wait for a value of the sensor, the condition is terminated with an error when no value becomes available. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables pressure the measured pressure in mbar Proximity Sensor The condition Proximity Sensor checks whether the measured distance of the proximity sensor is below or above the defined distance. Warning: Some devices turn off the sensors when the screen is off. Warning: Some devices can not determine the current value of the sensor and only deliver a value when the measured value of the sensor changes. This condition does not work on such devices. Settings Distance (in cm) Whether the condition should check if the distance is above or below the defined distance and the distance in cm. Timeout The amount of time to wait for a value of the sensor, the condition is terminated with an error when no value becomes available. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables proximity the measured value of the proximity sensor Ringer Mode The condition Ringer Mode checks whether the device is currently configured to use the desired ringer mode. Settings Ringer Mode The desired ringer mode to check. Roaming The condition Roaming checks whether you are currently in a roaming location. Examples: Only download a file when you are not using a more expensive roaming tariff. Screen On The condition Screen On checks whether the screen is currently turned on. Examples: Show an alert only when the display is on. Screen Orientation The condition Screen Orientation tests whether the device is currently in portrait or landscape mode. Settings Portrait or Landscape Whether the condition should check for portrait or landscape. Service Running The condition Service Running checks whether the specified service is currently running. Settings Service Class The class name of the service to check. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables package_name the package name of the service service_name the display name of the service pid the process this service is running in uid the user id owning this service active_since the time this service has been started (in milliseconds since the device was booted) last_activity_time the time this service was last active (in milliseconds since boot not counting sleep phases) restarting the time when this service will be started, 0 when the service is currently running foreground true when the service is run as a foreground process Sound Level (Experimental) The condition Sound Level (Experimental) checks whether or not the environment sound exceed a certain level. Warning: This condition records the environment sound using the microphone of the device which does not work, when another app already uses the microphone. Settings Average The duration to record and calculate the sound level. Sensitivity The sensitivity of the slider to define the sound level. Sound Level The sound level to check. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables sound_level the detected sound level Speakerphone On The condition Speakerphone On checks whether speakerphone is turned on or off. Telephony Radio Enabled The condition Telephony Radio Enabled checks if the radio of the phone is enabled or not. Warning: This function is not officially supported by Android and might not work on all devices. Time Range The condition Time Range is true when the current time is in the defined time range. Examples: Play an alert only during the day. Settings Weekdays The day on which the condition should check the time range. From - To The start of the time range and the end of the time range. A To-time smaller than the From-time will move the To-time to the next day to simplify checks for time ranges crossing midnight. UI Mode The condition UI Mode checks whether the device is currently in car, desk, TV or normal UI mode. Note: Many devices only support the normal UI mode. Settings UI Mode The UI mode to check. Vibrate on Ring Enabled The condition Vibrate on Ring Enabled checks whether the setting to vibrate on ring is enabled or not. Warning: This function is not officially supported by Android and might not work on all devices. WiFi Access Point Enabled The condition WiFi Access Point Enabled checks whether a WiFi configuration is enabled and the system is allowed to connect to this access point. Settings SSID The SSID to check. Variables are supported. WiFi Available The condition WiFi Available checks whether one specific WiFi access point is currently available. The condition waits for the first available scan result when wifi has just been enabled and no scan result is available yet. Examples: Check if a specific free access point is available and enable this one. Settings SSID List The comma separated list of SSIDs to accept. The condition is true when one of the access points in the list is available. Glob patterns can be used to match multiple SSIDs. Variables are supported. The variables supplied by the condition relate to the available access point with the highest signal strength. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables access_points the list of available access point SSIDs bssid (only set when the SSID is available) the BSSID of the available access point bssids (only set when the SSID is available) the list of BSSIDs of the available access points ssid (only set when the SSID is available) the SSID of the WiFi network capabilities (only set when the SSID is available) the capabilities of the WiFi network frequency (only set when the SSID is available) the frequency of the WiFi network level (only set when the SSID is available) the signal strength level of the WiFi network WiFi Connected The condition WiFi Connected checks whether the device is currently connected to one of the specified WiFi networks. Examples: Start recording in Gleeo Time Tracker when you are in the office and connected to the wireless network. Enable a flow downloading big PDF files only when connected to your free wireless network at home. Settings SSID List The comma separated list of SSIDs to accept. Glob patterns can be used to match multiple SSIDs. Variables are supported. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables bssid the BSSID of the connected WiFi network ssid the SSID of the connected WiFi network Wifi Signal Level The condition Wifi Signal Level checks the signal level of the connected wifi network. Note: The current signal strength has to be measured using a wifi scan when the display is turned off. A wifi scan can take a few seconds and increases battery consumption. Settings Signal Level Condition Defines the condition that must be met to continue the flow on the true branch: lower than true when the reported level by the system is below the defined level higher than true when the reported level by the system is above the defined level exactly true when the reported level by the system is exactly on the defined level Signal Level Defines the level to compare (usually in range 0-4). A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables rssi the signal strength in dBm signal_strength_level the signal strength mapped to levels (usually in range 0-4) WiFi State The condition WiFi State checks whether the device wireless network adapter is in the specified state. Settings WiFi States The accepted states. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables wifi_state the wifi state (0=disabling, 1=disabled, 2=enabling, 3=enabled, 4=unknown) WiFi Tethering State The condition WiFi Tethering State checks whether the device wireless network adapter is in the specified state. Settings WiFi Tethering States The accepted states. A variable is a container for a value that can be used in many actions and conditions to dynamically define a part of a text. See action Script for a description. Supplied Variables wifi_tethering_state the wifi tethering state (10=disabling, 11=disabled, 12=enabling, 13=enabled, 14=failed) on older devices (0=disabling, 1=disabled, 2=enabling, 3=enabled, 4=failed) Wired Headset Plugged The condition Wired Headset Plugged checks whether a wired headset is currently plugged in or not. Examples: Turn the volume to maximum only when the headset is not plugged.