I was introduced to Automation for Android – Tasker (https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en) via reddit (http://www.reddit.com/r/tasker) and the word ‘automation’ was enough for me to dive right into this app. Only automation that I did earlier was switching profiles depending on location on there phones. And now, just imagine a complete set of possibilities that can be automate on the phone or via the phone. I did my research and found a couple of other tools that do the same/as close as what Tasker can do and few of them are even free. There’s one even by Microsoft called on{X} (https://play.google.com/store/apps/details?id=com.microsoft.onx.app&hl=en). Microsoft’s on{X} really caught my eye. You can write code for your phone on the web application by them, deploy it on your phone and even trace the flow all using your PC. Really brilliant, I love the fact that it’s all JavaScript. Here comes the but, it is still very very young and it’s policy of accessing my News Feed on Facebook is not something that I can not digest.

On{X} is good, but as I said earlier, the API is not very mature and hence, I gave up on it. I bought Tasker, the best 5,00 € I spent in ages and I want to talk about it in this post. I am still a “noob” while operating this tool, but I tried my shot at automating WhatsApp (https://play.google.com/store/apps/details?id=com.whatsapp&hl=en), a popular messenger for various platform.

The requirement for the automation is that, if I send a WhatsApp ‘wru’ message to the phone, it should respond back giving the location and battery level of my phone. It could be useful, if you like to locate your misplaced phone or automatically reply to your partner/friend, honestly, I don’t know what you will use it - through this post, I am just introducing automating WhatsApp using Tasker.

Before we begin, the following script only works when your phone is rooted as we will be accessing the WhatsApp database and type some special characters like ‘:’.

Let’s follow the code line by line:

Profile: Location request from XYZ. (12) // Name of your profile.

Event: Notification [ Owner Application:WhatsApp Title:* ] // When a new notification comes from WhatsApp, this event is fired. Read the end note, if you face problems with Chrome app after enabling Tasker accessibility.

Enter: A1: Run Shell [ Command:sqlite3 // We will access the WhatsApp database and check if the message comes from designated phone number or not. We mustn’t reply to every message. /data/data/com.whatsapp/databases/msgstore.db "SELECT _id, data FROM messages WHERE key_from_me='0' AND key_remote_jid LIKE '%XXXXXXXXXXX%' // Replace XXXXXXXXXXX with the phone number of your message sender. ORDER BY _id DESC LIMIT 1;" Timeout (Seconds):10 Use Root:On Store // I made a timeout for 10 seconds, if in case WhatsApp is busy accessing the database. Result In:%WHATSAPP_CURRREQ ] // Store the read Id and the last message on to the variable %WHATSAPP_CURRREQ

A2: If [ %WHATSAPP_CURRREQ ~R .*[wW][rR][uU].* ] // Check if the pattern of the message is correct and we are all set to send the location.

A3: If [ %WHATSAPP_CURRREQ !~ %WHATSAPP_LASTREQ ] // Verify that the message is different from the last request. Remember every message has a unique Id.

A4: Notify [ Title:WhatsApp location request... Text:Sending location // Just a notification that the location message is being prepared. to Kavita Gupta... Icon:<icon> Number:0 Permanent:On Priority:3 ] // Make a note it is a permanent notification, we will clear it later.

A5: Secure Settings [ Configuration:Pattern Lock Disabled // I am disabling the pattern lock, that I use using the plugin Secure Settings. Package:com.intangibleobject.securesettings.plugin Name:Secure // You can download the plugin from here: https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin&hl=en Settings ] A6: Secure Settings [ Configuration:Keyguard Disabled // Disable the keygaurd, it is useful, when your phone is on lock and you want to automate everything, even the typing. Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] A7: Secure Settings [ Configuration:GPS Enabled // Pretty clear, turn on the GPS and get location at A8 Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] A8: AutoShortcut [ Configuration:WhatsApp: Some One// I am using AutoShortcut plugin (https://play.google.com/store/apps/details?id=com.joaomgcd.autoshortcut) to start WhatsApp with the indented recipient. Package:com.joaomgcd.autoshortcut Name:AutoShortcut ] // Replace Some One, actually choose it from the plugin, the right recipient.

A10: Secure Settings [ Configuration:Screen Dim // Now, this extension of the plugin Secure Settings, wakes your device so that you can type out the string on the WhatsApp app. 5 Seconds Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]

A11: Run Shell [ Command:input text // Now, I am using the shell script to type the text to the window, because the ‘:’ while not be typed from the Type task in Tasker. LOCATION:maps.google.com/maps?q=%LOC Timeout (Seconds):0 Use Root:On // And also, this is way faster, but remember you need root for this, not for the other way of typing. Store Result In: ] A12: Dpad [ Button:Right Repeat Times:1 ] // Focus the Send button A13: Dpad [ Button:Press Repeat Times:1 ] // And press it. A14: Dpad [ Button:Left Repeat Times:1 ] // Get back to the typing box.

A23: Button [ Button:Back ] // I am exiting the WhatsApp nicely and not killing it. If you are the murderer kind, kill it, just know, you don’t have any place in the heaven. A24: Button [ Button:Back ]

That’s it in the above small example – you can read/write messages from/to WhatsApp app. I am using n7000-cm9.1-cwr6. Oh yea, and if you are having the Talkback auto enabled for Chrome browser, you need to turn Off the Web scripts to run.

Tasker is amazing, I have automated a lot of tasks using this tool. I will share a few none generic ones with you in my coming post here.

Hello Sircan u kindly help me with an issue related to whatsapp, i am trying to configure whatsapp to send a broadcast for over “25 contacts” which is the current limit set by the whatsapp owners, or some script to tweak whatsapp, like send 25 contacts then another 25…you feedback is appreciatedThank you in Advance

I want to receive and respond to my girlfriend's whatsapp messages from my tablet. So far I'm able to receive and respond to messages from tablet, but:

- when the messages are coming at a very high speed, one after another, I don't receive on my tablet all of the messages, only some of them. let's say if she sends the following messages: A, B, C, D, E, i will receive notifications only for A and E. Is there anyway to receive all of these messages?

Nice, I'll be using this to make some "I'm driving my car/sleeping/working/..." automatic messages as a response to someone calling me when certain conditions are true (something like a navigation app is running + average speed over the last minute was larger than 15 km/h = I'm driving)

i'm using note 2 (GT-N7100) and i tried to use autoshortcut to send whatsapp message using time conditions. it's not opening whatsapp but Google Search (Google Now) and the text type there...can somebody help me? My phone is rooted

I am not a computer programmer, but I thought I could pick on your brains to see how I can solve one problem.

I currently have an automatic service that sends daily SMSes to some of my customers. These daily SMSes contain some business information. There is a chronjob on a server that triggers these SMSes.

Instead of sending SMSes, I want to send these messages to business owners using Whatsapp. Here is what I am hoping for:

- Use a dedicated Android phone as a standalone automation machine- SMS will generate from our server- An automation script will read the SMS and the sender number, locate the same sender number in Whatsapp and send the same message there