Tag Archives: TextExpander

A Leap Forward for TextExpander on iOS

Who is this for? TextExpander users who have been hoping to see more of the functionality of the Mac come to iOS.

To date, TextExpander for iOS has primarily served as a sync engine between the snippets on a Mac and those on an iOS device. Their iOS offerings shared some of the functionality of the Mac counterpart, but it was primarily something you’d setup once and occasionally reopen to update your snippets. The real magic happened when you used it in tandem with other applications.

Today that changes with TextExpander 2.0 for iPhone and iPad. Rather than just serving as a conduit for your snippets, the latest update adds in essential functionality that has been missing from iOS including fill-ins and pop-up menus. A visit to the app makes it possible to take advantage of more advanced snippets and can send them to the clipboard, a text message or a new email message.

In addition to its own new tricks, Smile Software has also updated their SDK. This will make it possible for other applications to take advantage of this new functionality. You can already see this in action in latest version of Drafts.

While I agree with Federico Vittici’s thoughts on the design, his desire for URL Schemes to expand snippets and that it would be helpful “to build popup menus using variables as options, not just pre-defined text,” TextExpander 2.0 is a strong step in the right direction.

For more, be sure to check out Vittici’s comprehensive review over at MacStories. And if you’re yet to do so, be sure to download TextExpander for Mac, iPhone and iPad. It is easily one of the best time saving applications ever created and as you can see, it keeps getting better.

Attempting Email Templates in iOS

About four years ago, I decided to take on our customer service emails at my job. In addition to getting a better sense of our customers’ needs, I wanted to dive into service in order to refine our process. The endeavor would have been impossible if not for TextExpander and its ability to create long-form emails with just a few keystrokes. Over the years, the process has evolved to the point where, in many cases, all I need to do is type four keystrokes and enter in two pieces of information to create a long form email. We now have one TextExpander snippet that accommodates over 50% of the messages we receive.

While TextExpander works in many iOS applications, it doesn’t work with Apple’s Mail.app or popular email applications like Mailbox. Even if it did, it’s unlikely that there would be a way to take advantage of the prompts that make this workflow so effective. Over time, the software limitations of iOS caused my iPhone and iPad to serve as triage devices rather than a true solution for email. I’ll delete and defer messages and answer personal ones, but all of those service emails need to wait until I’m sitting in front of my Mac.

Attempting to Improve My iOS Email Workflow

With the release of the latest update to Launch Center Pro, I set aside some time to see how I could best emulate my customer service workflow. I decided I’d try out the built in iOS Shortcuts, TextExpander touch and Launch Center Pro to see which offered the best answer. Long story short, I found a better bad way. Now for the long story …

My Mac Workflow

As I mentioned, when on my Mac, I use TextExpander to respond to these emails. With a single snippet, I’m prompted to fill in the customer’s name and am provided with a field that allows me to enter specific details about their request. As a significant number of these requests are for the exact same thing, I use TextExpander’s ability to set a default prompt with our most common response. In many cases, I can enter the customer’s name, hit enter and send the message. In others, I enter the name, overwrite the default prompt, hit enter and then send the message. Either way, the process takes about ten to twenty seconds. It gives our customers everything they need and allows us to focus our limited resources on what matters most, offering better service on our products.

Adapting This for iOS

I’ve tried to make this work in the past and there’s no way to emulate the approach described above in iOS. Ideally, I like to reply to a customer email using a template that allows me to add a customer name and one custom section of text, preferably with the ability to set default text that can be easily overwritten to accommodate a range of requests.

Limitations in Mail.app, iOS keyboard shortcuts, Launch Center Pro and TextExpander touch have led me to wait until I’m in front of a Mac to reply to these messages. This slows down response times, so when the latest version of Launch Center Pro was released, I decided to take another shot at creating something a little closer to my ideal workflow.

iOS Keyboard Shortcuts

It has been a while since I gave the built-in option a look. Since I would be able to use this in any application, it seemed the logical starting point. As there is no way to build prompts, I’d have to manually go to where the name belongs. I would also need to find, select and delete my default prompt in the cases where it needed changing (or create a few variations for common requests). This seemed a worthwhile compromise, but unfortunately upon copying and pasting my email template into a new shortcut, I found that the built in keyboard shortcuts do not maintain line breaks. When testing it out, multiple paragraphs were merged into a single block of text. In other words, iOS keyboard shortcuts was a dead end.

Once I had eliminated the built-in option, I had to see if there was a workflow that would offer a more effective way to create these messages, even if it meant using multiple applications.

TextExpander Touch

Next on the list was TextExpander touch. I wanted to see if I could use the same application where I store the customer service email templates. TextExpander touch makes it easy to copy a snippet to the clipboard, but it doesn’t let you fill in the prompts. I could paste the text into an email, but then I’d have to delete the prompts or create multiple versions of my snippets without the prompts. Considering I’d have to:

  • Start replying to the email
  • Jump into the TextExpander touch app
  • Find and copy the correct snippet
  • Jump back into email
  • Paste the text
  • Add in the person’s name

This ended up not being a viable solution. I’d still be better off waiting until I was back at my Mac.

Launch Center Pro

After eliminating iOS keyboard shortcuts and TextExpander, I turned my sights to Launch Center Pro and their latest update, version 1.1. The new release enhanced TextExpander support and I wanted to see what was possible. At first I just created an action that added my customer service snippet to the clipboard. Unfortunately this did not take advantage of the prompts within the snippet. It functioned much the same way as the copy option in TextExpander touch.

Our email blasts essentially take the following form:

Hi (Customer Name),

This is the intro to our service email. We can certainly help you with (your specific request). Here’s everything you’ll need to know.

And so on…

Best Regards,

Email Signature

To achieve this I created an action that replaced the customer name and details of their specific requests with prompts. This was meant to serve in place of my TextExpander snippet. After triggering the action and filling in the prompts, the completed text would be added to the clipboard. I managed to make this work, but there were shortcomings.

The text field in Launch Center Pro is limited. There’s no room to edit, scrolling through is a pain and once you save, the format of your text changes. In other words, editing and versioning (duplicating an action and making minor changes) is a pain. This makes Launch Center Pro suitable for short bursts of text, but painful for multiple paragraphs. This limitation makes editing and versioning a headache, but when all was said and done, I had an action that allowed me to:

  • Start replying to a message
  • Jump into Launch Center Pro
  • Trigger my action
  • Fill in my two prompts (although there’s no way to set a default and the prompt auto-capitalizes, which can be a pain if your prompt is mid-sentence as mine is)
  • Jump back into an email
  • Paste in the text and send it off.

This was good, but not great.

Launch Center Pro and TextExpander

Before putting this little project aside, I decided to see if the new TextExpander integration in Launch Center Pro 1.1 could make things even easier. To overcome the limited text field in Launch Center Pro I created two new snippets using the text from our customer service emails. This allows me to use TextExpander’s larger text fields rather to make any necessary edits. From there, I used Launch Center Pro to tie everything together with the following action:

Hi [Prompt],[Prompt]

This allowed me to create actions that were far easier to edit. It also made it easier to create multiple actions in Launch Center Pro to simplify things further. While I still use the prompt above for unique requests, I was able to create a group of actions that replaces the second prompt with all of our most frequently asked questions.

In most cases I:

  • Start replying to an email
  • Jump into Launch Center Pro
  • Trigger the relevant action from my group
  • Fill in the customer’s name (and the additional prompt when necessary)
  • Go back to the email
  • Paste in the message and send it off.

It’s not my ideal solution, but it lets me do a bit more of the heavy lifting on my phone when needed.

Bottom line, the latest integration between Launch Center Pro and TextExpander offers slightly more efficient ways to create email templates in iOS, but it’s yet another case where the simplicity of iOS adds complexity to my work.

Sandpaper Apps

The need for certain applications is obvious. It doesn’t take the average user long to grasp the need for applications like nvALT, Mailplane, Evernote and OmniFocus. They help with universal challenges such as idea capture, correspondence management, file storage and to-do management. It’s why applications like these make up the foundation of a workflow.

Next you have the applications that help you meet your own needs. For my writing, I use apps like Byword, Scrivener, iThoughts HD and Marked. While these have less of a universal appeal, they help me achieve my writerly goals in a way that appeals to my geeky nature.

Last but not least, you have applications like Keyboard Maestro, LaunchBar, Hazel and TextExpander. What they do is clear; what you can do with them isn’t always obvious. At a glance, they can seem unnecessary, yet when used well they make a a real difference in the way you work. These small, focused apps make my workflows better. They remove the friction that exists between key applications. They are my sandpaper apps.

Are Sandpaper Apps Necessary?

No. They are helpful. Here are a few examples:

Keyboard Maestro lets me string together several actions across multiple applications in a single “macro”. For example, with a single keyboard command in Byword, I can copy the HTML of a blog post, open up MarsEdit, create a new post, extract the post title and paste both the title and text in the correct spots. I also use a macro to close all unnecessary applications before recording a podcast and another to restore things back to normal once I’m done (ever try to use Skype while backing? I don’t recommend it.). Is Keyboard Maestro required to do this? Not at all, but because of it, everything gets taken care of before I can even recall the steps I’d need to take.

LaunchBar is activated by hitting a keyboard command. Once activated, it can do just about anything or, more accurately, make my computer do just about anything. While it’s primarily used to launch applications, it can perform all kinds of magic. With a single keyboard command, I can search Google, look things up in the dictionary, do calculations, and act on selected files or text. I can open websites or even log into websites through integration with 1Password. It has a clipboard manager that gives me access to up to forty of my last copied items. It’s the digital equivalent of slicing, dicing and making Julienne fries. Could everything here (excepting the clipboard manger) be done manually? You bet, but it’s far more enjoyable to use a computer when just about everything is a few keystrokes away.

Hazel watches folders and acts on files, often before I’ve had a chance to think about what I’d want do do with them. With a single “Rule” a properly named file on my desktop is added to Evernote and placed in the trash with no additional effort on my part. With a minor tweak to the name, I can even create a task from the new note in Evernote. Can I do this manually? Of course, but Hazel ensures that everything is properly filed. It also does wonders to help avoid the backlog and errors that happen when I attempt to do this my own.

TextExpander takes text abbreviations and turns them into larger text snippets. You can even get fancy by including text on your clipboard, adding customizable pop-ups, selecting from multiple options or creating optional areas within snippets. This can be used for everything from automatically correcting commonly misspelled words (and boy do I commonly misspell words), to shortening up things I type every day such as my email address. You can also go crazy and make elaborate snippets for things like customer service emails). Could I just correct these words as spell check catches them, get better a typing or copy and paste long bits of text out of a document? Obviously, but why on earth would I want to do that?

Note: This is an oversimplification of what each app is capable of, just wanted to offer a few tangible examples.

So Where Do Sandpaper Apps Fit?

You want to start with the applications that make up the foundation of your workflow. After that, it pays to prioritize the tools that can help you execute on your own goals. Once these are in place, don’t forget to check out the sandpaper apps. There may not be much that you can build with them on their own, but they help remove friction between all of my applications and make everything a whole lot smoother.

Sending Files to Evernote While Creating Tasks in OmniFocus

As is well documented on this site I:

All of my text files are stored in nvALT and most other files are stored in Evernote (larger files live in Dropbox).

Now all of this is well and good, except for one small thing… I wasn’t doing the upfront work on filing. Over time, I’d either:

  • Toss files into a single folder on the desktop;
  • Leave them in my downloads folder.

And active files, well, they would just live on the desktop. For the most part this was an effective system, as it kept most things “out of site, out of mind,” but I’d run into plenty of situations where I had to go looking for something that should have been filed away in Evernote, but wasn’t.

Geek Phase I – Automatically Filing Using Hazel and Evernote

So, as most geeks do, I made a few changes that improved my workflow by:

Now, when a file on my desktop is properly named (i.e. Workx – File Name – 13–01–24), Hazel sees that little “x – ” bit and works its magic. Since making this change, I haven’t tossed a single file into a random folder and no longer store anything in a downloads folder that I never think to check. Everything is where it’s meant to be: still on my desktop, properly stored in Evernote or, best of all, in the trash.

Geek Phase II – Adding These Files to OmniFocus

Much as this change was an improvement, I couldn’t help but notice that the increasing number of files that were building up on the desktop. Traditionally, only files I was actively working on would live there, but since there was no folder in which to throw things, files for future actions/projects started piling up.

As I’ve shared in the past, I’m a bit nuts about keeping my digital desktop neat (this probably has a lot to do with my struggles to keep a physical one tidy). So the answer was obvious, but clunky: throw the files into Evernote, then create a task in OmniFocus with a link to the note. This worked, but required a multi-step process that involved naming the file, opening Evernote, selecting the right note and then using a Keyboard Maestro macro to pull the note into a new task in the OmniFocus clipper. Not bad, but not ideal.

So I did what most geeks who don’t know how to code do: I whined about this to smarter nerds. In this case Brett Kelly, Nick Wynja and Justin Lancy were kind enough to help me figure out how to use AppleScript to get the link to a newly created Evernote note. Once I combined this with some AppleScript that Ken Case provided in a previous post and tweaked my Hazel rule, magic started happening. Any file that has “- of ” (i.e. Workx – File Name – of – 13–01–24) in addition to my naming convention is sent to Evernote and a task is created in the OmniFocus Clipper with a link back to the note. My desktop is clean once more and my files are easily accessible, either for reference or use in a task.

Geek Phase III – The Little Details

I’m not quite done with this. My skills are very limited (and Justin is having fun watching me struggle to finish the job), but I’d like to get it so the additional “- of ” is removed from the file name before it gets saved into Evernote and added to my task. That said, I figure this is at a stage where you might benefit from it as well (even though you’ll probably need to make some changes to suit your own needs).

While I’m sure this will be updated periodically, here’s the code (or you can just download it here):

set myNote to {}
set noteLink to missing value
set AppleScript's text item delimiters to {" - "}

tell application "Evernote"


--CREATE THE NOTE set myNote to create note from file theFile


set myName to (filename of attachment 1 of myNote)


--PAUSE UNTIL THERE IS A VALUE FOR NOTE LINK repeat while noteLink is missing value --GET THE NOTE LINK FOR THE CURRENT NOTE set noteLink to (note link of myNote) end repeat

end tell

— These are the parameters you might want to tweak set TaskName to second text item of myName set TaskNote to noteLink

— Here is the script code itself tell application “OmniFocus” tell quick entry — open the quick entry window open — Create a new inbox item set NewInboxItem to (make new inbox task with properties {name:TaskName, note:TaskNote}) — Expand the note so it’s visible in the Quick Entry window set note expanded of last leaf to true — Start editing the task name select last leaf — Select the new item activate — Make the app active so it gets our scripted keystrokes delay 0.25 — Give it a chance to activate tell application “System Events” if UI elements enabled is true then tell process “OmniFocus” keystroke “e” — Starts editing the current row keystroke “a” using command down — Command-A selects the text end tell end if end tell end tell end tell

Geek Phase IV – The Big Workflow

Crazy and excessive as this all may sound, this is actually one of those “life hacks” that will save me time and headache on a daily basis. It’s also a great reminder that it’s not about one application, but one workflow. The process involves triggering a snippet in TextExpander, which triggers a rule in Hazel, which creates a note with my file in Evernote, which adds a task with a link to my note in OmniFocus, but to me it’s all one fairly seamless step (there is a bit of lag, as the note synchronizes). It’s amazing what the right apps can accomplish (especially when you know the right nerds).

Thanks to Ken and Katie for the head start as well as Brett, Nick and Justin for putting up with me on this.

A Workflow vs. A Life Hack

Having arrived late to the “productivity” party, I wasn’t there at the inception of the “life hack” movement that seems responsible for both launching several luminaries as well as simultaneously turning them off entirely to the space. After spending the last two years writing on the subject, I can see why those who helped create the space struggle to enjoy it over the long haul.

Many, such as myself, start writing to help ourselves improve with the hope of also helping others who deal with similar challenges. We rarely write because we’re great at this; we write because we struggle. As we figure things out, we share what we learn. But as we grow a bit of a following, something becomes clear: the posts about tips and tricks tend to do a hell of a lot better than the more meaningful, and likely more necessary, posts.

At one point or another, you start to feel the pressure to be clever rather than purposeful. You feel like all people really want are fast-and-easy life hacks rather than sound advice on finding a better way to work. In an attempt to give people what they want, you often unconsciously gravitate towards creating posts that are popular, but not essential. Or at least not as important as other things that you may want to say, but will likely appeal to a far smaller audience.

Quick, clever fixes are great. They have their place and used well, they can have a very real impact on your ability to get things done, but only when they are incorporated into a sound workflow. Life hacks have their place, but only when used to enhance the way you work. We often think of the two as one and the same, that a workflow is just several life hacks strung together. In truth, they are very different.

What’s the difference?

Your workflow is the very foundation upon which you do your work. Life hacks are the little tricks that make using that workflow easier and more enjoyable. And to some point, these two very different things became one and the same to those of us who write about them. And since people tend to prefer things that make work more enjoyable (rather than better) it’s easy to see why the “wrong” cream often rises to the top.

No matter what people write or share, those who shine in this space have a way that they go about doing their work that is enhanced by tricks and tips, not several life hacks strung together into some sort of Rube Goldberg machine that that defies logic and produces improbable results. We share the tricks and tips because they can help, but I assure you, without the workflow, the life hacks will never get you where you want to go.

Having a place to write things down that is easy to access and simple to recall is not a life hack, it’s a best practice. Using TextExpander to name those files for consistency is a life hack that, when paired with the best practice of writing things down, can significantly enhance that best practice. Both are useful, only one is necessary.

This may be a distinction without a difference to some, but for me distinguishing between a necessary workflow and a life hack that is merely useful has had a tremendous impact on the way I’ve improved my own work and overcome my many, many shortcomings. It also plays a significant role in the type of posts I strive to write here. That may mean they are less popular, but hopefully it will make them a little more useful to those who continue to stick around.

The Problem with iOS

Note: This post should probably be titled My Problem with iOS, I just couldn’t help the hyperbole.

I’m a diehard Apple fanboy (or whatever it is you’re calling me these days). I live a significant portion of my life in their ecosystem. Moving away from their hardware is something I have no desire or intention of doing, but there’s a problem I continually find myself running into. While I love Apple’s hardware and their operating system, I don’t love their apps. There are few instances where their default offering is my preference.

Now Apple attempts to solve this problem with the App Store. It has brought me solutions like Camera+, Fantastical, Due, Notesy, Instapaper, Check The Weather, Instacast, Spotify, Google Maps and TextExpander, which all enhance standard functionality and have improved upon my iOS experience. What it hasn’t offered is a way to best align these tools with the device.

The ability to align my workflow is a big part of the reason that I still prefer my Mac to iOS. In OS X a well-thought-out workflow can make it difficult to tell where one app ends and another begins. This is a benefit that lets me focus less on the tools and more on my work. The same hasn’t proven to be true on iOS where I’m consistently running into small points of friction that come from wanting to use better alternatives to the default software while reaping all of the benefits that my iPhone and iPad have to offer.

Recently, James Gowans made the shift to almost entirely Apple apps on his iPhone and iPad. I knew several of the benefits individually, but it wasn’t until he put them in perspective that I fully realized how much I was missing by not using Apple’s default offerings. I can’t use Siri with many of my favorite apps, I can’t swipe up on the home screen to my camera of choice, I can’t click on an email address and have it open into a different program, I can’t get the most out of notification center, I can’t use TextExpander in emails (JUST LET ME USE TEXTEXPANDER ALREADY). These are all minor gripes, but collectively they diminish the experience. I still believe I’m better off with the kind of fractured, yet powerful experience than comes from third-party apps, but James helped me realize why I still struggle to make the most out of my iOS devices.

Apple’s apps offer insight into what their platform is capable of, the work of third-party developers show just how great each aspect of that experience can be, but the limitations that are being imposed on these third-party apps keeps iOS from ever reaching its true potential. Or at least it does for me.

I crave something that won’t be permitted to exist: an Apple-caliber experience with third-party applications. I want the best possible platform with the best possible application to create the best possible experience. I know I’m a power user, I get that most people don’t care about these kinds of things and that this clearly isn’t affecting sales, but it’s disappointing that Apple seems determined to limit other applications rather than doing what’s needed to prove that their way is best.

I’ve always paid Apple a premium for a better experience, but as they look to hold on to control, I can’t help but feel like the premium is beginning to come at the expense of my experience. When I moved to the Mac, the driving desire was to get away from Microsoft’s vision of how I do my best work in order to find my own. I just really hope that, as a fan and a customer, the day never comes where Apple’s desire for control drives me to a similar crossroad.

How To Pitch With TextExpander

Over the next month, I’m going to be writing less here on the site. I have a larger project that I want to focus in on and need to free up some attention in order to actually get it done. Rather than letting the site sit idle, I’ve asked several very special guests to share their thoughts and expertise on how they actually get big things done.

Pitching a guest series, or anything for that matter, takes time. Especially if you want to do it right. While many of the people I asked are friends and good acquaintances, I didn’t want to send a mass email. I’m asking them to spend their valuable time to help, so a more personal approach seemed like the least I could do. That said, much of the information was the same and much as I wanted to reach out to everyone personally, time would not allow for 30+ entirely unique emails. This is where TextExpander comes in.

I was able to speed things up significantly by creating a TextExpander snippet that included a few key aspects:

  1. A fill-in field to put the person’s name – Basic as this sounds, you’d be shocked by how few people do this.
  2. A paragraph that went to everyone explaining that I needed to take some time off from writing and that I could use their help.
  3. Another paragraph that went to everyone explaining the “Actually Getting Big Things Done” series and what I was hoping to accomplish with it.
  4. A fill-in area to add a personalized message including why I thought they made sense for the series and a possible idea for a piece (while making it clear that I’d welcome anything that resonated on the topic).
  5. An optional fill-in section that briefly explained my site for those who may not be regular readers.
  6. A outro that provided an idea of timeframe and next steps.

After naming my snippet and giving it an easy-to-remember abbreviation, I was able to type it into a new email message which prompted me to fill in the name, write a personal paragraph and decide if I wanted to add my optional paragraph explaining the site. Upon completion, the initial abbreviation was replaced with a fully written, personalized pitch.

TextExpander let me move through my list at a brisk pace, but made it possible for me to do so in a way that I was proud of. Better yet, when I received some early feedback that my pitch was a little long, I was able to jump into TextExpander, tweak my snippet to offer a more streamlined version and get back to asking for help.

The response has been overwhelmingly positive, so over the next month or so there will be guest posts from Gini Dietrich, Mike Vardy, Aaron Manhke, Erin Feldman, Jason Konopinski, Nick Wynja, Justin Lancy, Dave Caolo, Gabe Weatherhead, Bryan Clark, Robert Agcaoili, Thanh Pham, Jason Rehmus, Sven Fechner, Stephen Hackett, Yuvi Zalkow, Brett Terpstra, C.J. Chilvers, Matt Alexander, Andrew Carroll, Marcelo Somers, Jean MacDonald, David Sparks and more surrounding the topic of “Actually Getting Big Things Done”. I’ll share on my own big thing soon, but in the meantime, I can’t wait to be inspired by so many who know how to make big things happen. I hope you will be too.

Check back tomorrow as we kick of the series with a great post from Aaron Mahnke or better yet, subscribe for free by RSS or Email to receive all of the “Actually Getting Big Things Done” posts and more from A Better Mess.