Email Documents with Yoink

Problem

You’re working on a document, and you want to email it to someone else. So what do you do? Close the document. Go to your email client. Open the message draft. Click the button to attach a file. Navigate your files and folders until you find it. Click OK. Finally finish composing your email.

Hold on a second. All of that, just to email the document you were just looking at? Seems rather inefficient, doesn’t it? Yes, yes it does. Thankfully, there’s a better, faster way to do precisely this.

Solution

For this to work, you’ll need to buy a $7 app called Yoink. This is a great utility app that slides a little shelf out from the side of your screen whenever you start dragging an item, like a file or an image. You can place multiple items—or stacks of items—into the shelf and then grab them to insert them in other apps. That’s how we’re going to solve this problem.

Open a document on your Mac. In most apps, in the top center of the document window, you’ll see the name of the file with a little icon next to it on the left. That little icon is called the proxy icon. As an example, I’m using TextEdit, but this will work in almost every Mac app.

I click the proxy icon, wait a split second until the icon darkens, and then start dragging it. As soon as the drag starts, Yoink’s shelf slides out from the right-hand side of my screen, and I drop the icon there. Next, I go to my message window in Airmail. Then it’s as simple as dragging the file from Yoink into the composer and voilà! It’s been attached, and all in a few seconds without once having to work with an Open/Save dialogue.

See this workflow in action here.

(I should note that some apps have incorporated a Share extension in recent versions of macOS, and that will allow you to create a new email message with the file attached in just a couple of clicks. This isn’t as widely available as proxy icons, and it necessitates creating a new email message. If you’re replying to an email or in the middle of a draft already, then you probably don’t want to create a new message. I find the proxy-icon-to-Yoink workflow to be more available, and thus more reliable.)

Bonus Tip

Thanks to the drag-and-drop capabilities of iOS 11 and the introduction of Yoink on iOS, you can do the same thing on your iPad. Instead of dragging a proxy icon (those don’t exist on iOS), you can add the file you’re working on to Yoink via its share extension. Then you can go to your email, open up Yoink (I prefer to do that in slide-over rather than split-view, but either will work), and drag the file into your message.

So the next time you find yourself working on a document that you want to mail to someone else, consider doing it via Yoink, one of the apps I depend on most on my Mac and iPad.

 

Advertisements

Sharing Contacts with Team Members

Problem

When you work with other people, there are a number of things that are beneficial to share with the rest of your team (or at least some of them). Calendars? Easy, thanks to the built-in sharing features of both iCloud and Google Calendar. Documents? Easy, thanks to services like Dropbox, etc. Reference notes? Easy, thanks to the likes of Evernote, et al. Contacts? Easy. Well, not so fast. This isn’t so easy. Not at first glance, anyway. How do I share a subset of my Contacts database with someone else? Unlike digital calendars, there’s no way to share just a group of contacts with someone else from a single iCloud account. The key word here being single. Hold that thought.

Solution

The way around this problem was easier than I first thought. It was certainly much easier than the way I used to solve this problem. When I first started working here, it was in the days before iCloud, and I used to share groups of contacts with others by exporting a group as a .vcf file and emailing it to the other person, who would then have to import those contacts and replace them on her Mac. Every single time changes were made, we would have to go through this. Thankfully, those days are far behind us.

In the end, all I had to do was create a second, free iCloud account (go to icloud.com to get started) which I would use only to store and sync contacts. That’s Step 1. Step 2 was to sign into that iCloud account on my Mac, but not as my primary iCloud account. That’s a key piece of information. You can actually sign into multiple iCloud accounts on a single Apple device, but only one of them can be your primary iCloud account. That’s the one that will sync your documents, Keychain, Photos, network settings, etc. Any other iCloud account you sign into can be used for Calendars, Reminders, Notes, Mail, and/or Contacts. Huzzah! There it is! So, what I did was uncheck the boxes for everything except Contacts. We’re now half-way there.

Step 3 was to get the app BusyContacts for my Mac. I know it might seem a little pricey at $49.99, but it is way more powerful than Apple’s built-in Contacts app. And if you’re going down this road of managing multiple Contacts accounts and groups, you’re going to need a tool that’s up to the task. BusyContacts is that tool, and it makes working with multiple Contacts accounts and various tags a breeze.

Now, I would be remiss if I didn’t mention Apple’s rollout of two-factor authentication (TFA) for all iCloud accounts. As of June 15 2017, all iCloud accounts have two-factor authentication enabled. That’s relevant here because if you want to use BusyContacts to access your iCloud contacts, you have to create an app-specific password to authorize BusyContacts. Providentially, the guys behind BusyContacts have published a tidy explanation of how to do just that. You’ll need to create an app-specific password for BusyContacts from your primary iCloud account, too, in order for BusyContacts to have access to all of your contacts. Be sure to save those passwords!

Step 4. Once you’ve signed into your iCloud account in BusyContacts, you’ll see that what were termed Groups in Apple’s Contacts app are handled as tags in BusyContacts. Different terminology, same basic idea. You need to make sure that all of the contacts you want to share have the same tag, then select all of the contacts with that tag and move them to the address book for the new iCloud account you’ve created. To do that, just control-click on the selected contacts and choose the address book for that secondary, Contacts-only iCloud account.

Step 5. For anyone else on your team who needs that information, all you have to do is give them the login credentials for the iCloud account (as the account holder, you’ll likely get the TFA login notification on your device, so you’ll have to send them the code to allow them access), then they can log into that account on their devices and access that same group in Contacts. Important note: If they’re just planning to use the stock Contacts app on their Mac or iOS device, they do not need to have an app-specific password. Only non-Apple apps need those. After that, you’re up an running, and any changes made will automatically be synced to anyone logged into that iCloud account. Much easier than it used to be in the pre-iCloud days, and all of your documents and other iCloud data will be safe, since that is all tied to your primary iCloud account.

P.S.: One final recommendation. If you’ve gone through the above steps, take the additional step of setting up automatic backups of your contacts database through BusyContacts. That way, you have a fail-safe for this information in the event something should go wrong.

Save iPhone Voicemails to Todoist

Problem

No matter what task-management system you use, one essential element is the ability to add tasks seamlessly and consistently. In my case, I use Todoist to keep track of what I need to do, so I obviously want all of my tasks to end up there. Creating to-dos based on e-mails is easy (Airmail is my current e-mail app of choice), but not everything comes to me in the form of an e-mail. In most of those cases, I use the Quick Entry shortcut (ctrl-opt-cmd-j for me) on my Mac and Siri on my iPhone. (The latter is done using Reminders and IFTTT, but that’s a post for another day.) Every once in a while, though, someone will call me and leave a voicemail that I then need to do something about. What am I supposed to do with that?

Solution

Enter Dropbox and Workflow. The solution I’ve pieced together wouldn’t have been possible in earlier versions of iOS, but it is now. I can’t remember exactly when Apple added this feature, but dating back to at least iOS 9, it’s possible to export voicemail recordings from the Phone app. Trouble is, the share sheet you see when you try to do that is very limited. So limited, in fact, that the Todoist share extension doesn’t show up. That’s where Workflow and Dropbox step in.

I created a four-step workflow (which you can download here) that exports the audio recording of the voicemail to a Dropbox folder (which I’ve conveniently titled Voicemails), gets the link to that file, asks for the name of the task to be done, and then creates a new Markdown-formatted Todoist task with the name of the task linked to the voicemail. (One of the best features of Todoist is the ability to use basic Markdown syntax in task titles to create nicely formatted tasks. I love it!) I wanted to be able to access all the information for a given task whether I’m on my Mac, my iPad, or my iPhone, and this was the smoothest path I could think of to gain access to voicemails across devices. Now I can tackle that voicemail-based action no matter what device I happen to be using. But that’s not all.


To tie everything together, I created a Hazel rule on my Mac
that watches that Voicemails folder. Any file in that folder more than two weeks old gets move to the trash. This means I don’t even have to think about deleting the audio recordings; they just disappear automatically. And if I haven’t dealt with a voicemail in two weeks’ time, then I’ve probably got bigger problems, anyway.

(Note: If you’re interested, you can hear a description of a previous version this workflow—back when I used Things—on episode 309 of Mac Power Users. Thanks, David and Katie, for sharing this on your show!)

Run Custom AppleScripts in MailMate

Update (2018-02-15)

I discovered today that the bundles behavior of MailMate has changed since I wrote this post. All the bundles you could enable in the app’s preferences pane used to be installed with the app. Now, however, the bundles are downloaded and installed from GitHub when you enable them in the preferences. (See this post from MailMate’s developer for more information.) I haven’t yet figured out how to work around this as a non-developer, but if I do, I’ll update this post further.


Overview

Goal: In addition to recurring tasks that I need to do on a regular, ongoing basis, there are other sets of tasks that I need to do on a recurring but non-regular basis. For example, whenever a family begins a new adoption and sends us the information on the child(ren) being adopted, there’s a series of tasks that I need to do in order to get things rolling for them. This can happen at any time, and in order to make sure that I don’t miss anything for any child’s adoption, I’ve created an AppleScript that adds a new project to Things whenever I get that email. That’s an AppleScript that I want my Mac’s email client to trigger automatically.

Problem:MailMate doesn’t have an easy, built-in way to trigger a custom AppleScript. This is one thing—quite possibly the only thing—that Apple’s Mail.app does more easily than MailMate. But don’t despair. There is a way to do this with just a few minutes and some careful attention to detail.

Solution: For each AppleScript that you want to run, you have to create a custom bundle in MailMate, which isn’t nearly as intimidating as it might sound, even for a non-developer like me. In fact, I still don’t know how to define a bundle or properly describe it to someone else, but that hasn’t stopped me from successfully creating about a dozen of them. Let’s get to it.

Set Up Custom AppleScripts for MailMate Rules

  1. Go to ~/Library/Application Support/MailMate/Managed/Bundles and locate the Things.mmbundle file. I used the Things bundle as a template because I wanted to set up rules for my inbox that would create specific tasks and projects in Things based on certain criteria. (More on that in a future blog post.) But, since these tasks are created by AppleScript, you can use this bundle as a way to execute any other AppleScripts you might want to have MailMate execute automatically.
  2. Duplicate the file in the Finder, rename it, and open it with a text editor. I used TextWrangler, and it worked great for this. Whatever you do, though, do not open the original version of the Things.mmbundle file, because that, at the very least, will serve as your template for other custom AppleScripts in the future.
  3. Open the Terminal app. You’re going to need to generate three separate UUIDs for this by running the simple command uuidgen. Go ahead and run it three times, and then leave the Terminal window open so that you can copy those UUIDs and paste them into the bundle at the appropriate spots.
  4. NPW MailMate Bundles 2.png
  5. In the Add With Summary section (see sidebar), change the UUID near the bottom of the code with the first UUID generated in the Terminal.
  6. NPW MailMate Bundles 3.png
  7. Do the same thing in the Add.mmCommand section, using the second UUID generated in the Terminal.
  8. NPW MailMate Bundles 4.png
  9. Make the same change in the info.plist section, using the third UUID generated in the Terminal.
  10. NPW MailMate Bundles 5.png
  11. In the info.plist section, also be sure to change the name of the bundle. This is the name that will show up in the Command menu in MailMate. If you don’t change it from Things.bundle, MailMate will only list one Things bundle but won’t know which one to trigger. So be sure to follow this step.
  12. Save the new text bundle.
  13. Relaunch MailMate.
  14. Set up your mail rule for your inbox, and enjoy the rush when your AppleScript is triggered by an incoming message and your Mac does precisely what you wanted it to do.

Saved 1Password Searches in iOS

NPW 002 Launch Center Pro Searches 1Password

Problem

When 1Password’s share sheet extension debuted last year with the launch of its iOS 8-compatible app, it nearly obviated the need to copy passwords from a 1Password vault and then paste them into Safari. (Yes, I know that 1Password has a built-in browser, but I still preferred to use Safari the vast majority of the time.) But, even after this advancement and the introduction of Touch ID, there are still times when one’s iCloud password must be entered. The most annoying thing about those “Enter your iCloud password” pop-up boxes is that there is no way to access the share sheet, so 1Password can’t help. Or can it?

Solution

Enter Launch Center Pro. If you’ve never used Launch Center Pro, think of it as something like Alfred for iOS. At its most basic, it can be used as an app launcher, but with a little bit of digging, you can do a lot more on an iPhone/iPad with it, especially if you use some of the other third-party apps that support URL schemes. That’s what allows me to do what I do with Launch Center Pro and 1Password.

Open Launch Center Pro and tap on one of the + icons to create a new action. In the URL field, enter the following:

onepassword://search/{{YOURSEARCHTERM}}

From Skitch

If you create this action using the Action Composer in Launch Center Pro, it will default to providing a keyboard prompt for the search term. That means that every time you launch the action, you’ll need to type in your search term. That’s very useful, but it’s not how I look up my iCloud password. To do that, I have iCloudlg inside the double curly brackets. The lg there stands for login, as in iCloud login. I added those two extra letters so that when I search my 1Password vault for “iCloudlg”, I will only get my iCloud login account. Without that suffix, every account that uses my iCloud e-mail address for the username shows up in the list, and that’s not what I want.

(You might notice in the screenshot that I also use a custom iCloud icon for the action. I simply downloaded the image for that after a quick Google search, saved it to my Camera Roll, and selected it from within Launch Center Pro. This makes the action very easy to identify at a glance.)

So, whenever I need my iCloud password, I simply open Launch Center Pro, trigger the saved Search for iCloudlg action, use Touch ID to unlock 1Password, swipe to the right across the iCloud entry, copy the password, and I’m in business. That sounds like a lot of steps, but the iOS device does most of the work, and it’s a lot easier than manually searching 1Password for “iCloud” every time I need to do so.

Keeping Track of Phone Messages & Conversations

NPW 001 - Line2 plus Evernote

Problem

In the old days (2–3 years ago), we had a landline for our non-profit, and all too often I found myself writing down notes about a voicemail or a phone conversation in a notebook. The obvious downside to that is that those notebooks aren’t searchable (that is, not without significant effort to digitize them). This wasn’t a good long-term plan in my estimation, so I set out to find a better way to do this. And I did.

Solution

We swtiched our phone from a landline to a VoIP service—Line2,to be precise—and I started using Evernote to keep up with messages and conversations. I’d started using Evernote to take notes during phone calls even before we moved away from a landline, but my use of it for this really took off once we started using VoIP. One of the best features of Line2 (and one that I assume is also true of other VoIP providers) is that whenever a voicemail is left, an mp3 copy of the message is automatically e-mailed to you. So I set up a simple rule that automatically forwards those voicemail notification e-mails to my Evernote account. That does three things:

  1. It gives me an archive of the voicemail itself, in case I ever have to go back to it. It’s rare that I have to replay a voicemail, but it has happened.
  2. It gives me an easy place to take notes on my conversation with that person. It also means that if I call someone back and have to leave them a voicemail, I can record that all in the same place.
  3. It makes all of this easily searchable, as Evernote has excellent search capabilities.

This has worked exceptionally well for me over the past couple of years. Having all of these voicemails in Evernote has made me almost fully reliable when it comes to calling someone back, and it has also saved us a considerable amount of money. Our phone bill is now significantly less than it was before making this change. I call that a win-win.