Workflow: Share an Article from Chrome to a pre-defined Group of Contacts using Missives and Drafts

As someone who is quite active on Twitter and, I am usually one of the first among my circle of friends to know about a breaking news or an interesting article on technology topics. Each time I find such article, I would try to share it over Twitter and But, because my closest friends are not as active as I am, they tend to miss these tweets/posts. Hence, whenever I do this, I always try to squeeze in a mention or two in the limited 140-256 characters.

Granted, this is not the best use of Twitter nor I probably should have sent an email instead. Yet, I was never convinced to use the built-in email action in Safari. As I tend to feel the urge of sharing while I'm in the middle of reading the article, I often hesitated to break the reading experience by sending the email first, and multitask my way back into Safari. I wish there is a way to perform an x-callback-url to send the email, then return immediately to the browser.


A few days ago, Craig Pearlman released a new app entitled Missives. One of the premise of this app is to allow you to setup "canned" emails or messages, and override them via x-callback-url. Hence, by creating a blank email template from my email account to a pre-defined set of my friends' email accounts, I can override the subject and body each time I want to create an instance of it via URL Scheme.

Prior to using Missives, I have tried both Drafts' Email Action and Launch Center Pro's In-app Email Action, but none of them is able to fit my needs. Here are some of the advantages that I can have if I use Missives instead of these alternatives:

  1. I can use my email address as the sender, instead of the address that Drafts uses.
  2. I can edit the message body prior to sending the email, instead of sending the entire [[draft]] without confirmation when I use Drafts' Email Action.
  3. Missives fully supports x-callback-url, allowing me to return to the browser to continue my reading. While Launch Center Pro's In-app Email Action allows me to use my email address as the sender and edit the message body prior to sending the email, it doesn't support x-callback-url's x-success parameter.
  4. If you prefer to send text messages instead of emails, Missives also has a first-class support for it. Missives will try to send each message via iMessages if the recipient has enabled his/her phone numbers as a valid way to receive iMessage. Otherwise, Missives will send a text message for each recipient who has not enabled this feature.
Missives has a unique ID to identify its message templates. Tapping on the Link menu will copy the generated x-callback-url scheme into the clipboard.

Once you have setup a blank email template with the email addresses that you want to sent it to, you need to find the unique id of that message in Missives. Simply tap and hold on the template you want to use, a small contextual menu will pop and show you a Link menu item. Tapping on it will automatically add the x-callback-url scheme into the clipboard.

From Chrome to Missives and Back

The idea here is to somehow send the article title and URL from Chrome to Drafts, and trigger a custom URL Action in Drafts that would take the [[title]] as the email subject and the [[body]] as the email body, and forward it to the Missives' x-callback-url that you've just copied into the clipboard. Later, I will show you how to populate the [[title]] with the article title and the [[body]] with the article URL. In the mean time, let's assume that you're coming from a bookmarklet in Chrome, and want to return to it once you've finished sharing the article via email.


Requires: Missives, Drafts 2.5, and Chrome

To create this URL Action in Drafts, you need to write your own custom URL Action in Drafts by appending the following code behind the copied Missives URL:


Then, you can use this workflow to install your new code with a single action. To make things easier, let's assume you call this action Mail and Chrome.

Chrome Bookmarklet is a bit tricky to trigger. Instead of choosing them from the Bookmarks menu, you need to type the Bookmark name in the Omnibox from within the tab that you want to share.

Now, you need to create a Javascript Bookmarklet in Chrome to trigger the newly created action. Simply browse any URL, and tap the Hamburger Menu Drawer to see the star icon. Tapping on this icon would allow you to add a new bookmark where you can paste the following code in its URL field. You might want to give the bookmark a proper name, such as Mail and Return.

javascript:window.location='drafts://x-callback-url/create?text='+encodeURIComponent(document.title+'%5Cn')+ encodeURIComponent(location.href)+'&action=Mail%20and%20Chrome'

You are now all set. The next time you browse an article in Chrome that you want to share with a pre-defined group of your inner circles, simply type in the bookmark name in the Omnibox, and watch the magic happens. The bookmark will create a temporary post in Drafts containing both the article title and URL, before sending it as an email to your friends. Feel free to modify the email content as Missives pops up for confirmation. Once you hit the send button, Missives will redirect you back to Chrome.

An Extended Use Case involving Tweetbot/Riposte and Instapaper

Most of my browsing activities are triggered from both my Twitter timeline and my timeline. Thankfully, both Tweetbot and Riposte support opening URLs in Chrome. All I need to do now is to hook Instapaper in the mix. The idea is to have a second Javascript Bookmarklet in Chrome that would also add the article URL to Instapaper in addition to sharing it via email.


Requires: Missives, Drafts 2.5, Instapaper 3+ and Chrome

First, you need to create a new URL Action in Drafts that uses Instapaper's x-callback-url prior to returning to Chrome. Simply get the Missives' template ID and append the following code to it:


Assuming you name the new action as Mail, Instapaper and Chrome, you can use the following code to create a new bookmarklet in Chrome:


With these new bookmarklets, I can choose whichever I want to trigger depending on whether I need to add the article to my Instapaper or not. I'm grateful that Missives exists, and looking forward to how others would use Missives to automate their workflows.

To find my other workflows, please visit my Productivity and Workflows blog.