Introduction to Automator Services
About Automator Services
I’ve previously written about how to automate your Mac to do almost anything using Automator calendar alarms and how to use Services to clear up your Desktop. Services are workflows accessed from contextual menus.
Contextual menus can be found by Secondary-click > Services on a file, text, or in an application or in the application menu via Application > Services. Services are always available in any relevant application, including Finder; Automator doesn’t have to be running for services to work.
While it’s possible to create workflows, applications, and folder actions to accomplish many of the same tasks, the always on nature of Services makes them convenient for small or repeated tasks without breaking up your workflow.
Services receive input in any or in specific applications. This input can be in the form of text, dates, images, documents, and more. Automator uses actions to execute tasks and act on the selected input. Actions can be stacked and contain numerous variables, creating endless and easily customizable output.
Services are toggled on and off in System Preferences > Keyboard > Shortcuts > Services. There are more than just Automator services to find there, though. All services for all applications can be accessed here. If the services menus are getting cluttered, shut some off. Click the checkbox next to a service to turn it on again.
If an Automator service isn't working or you just don't have a use for it, it can be deleted from the Services folder in Users > [USERNAME] > Library > Services.
1. Create a Service to Rename Files and Folders
In a previous tutorial, I explained how to use Automator to batch rename files and folders with a user-created Automator application. I’ll show you the process of creating an Automator service to perform the same function. The service will be different than the application, in that it will always be available in the Services contextual menu.
Open Applications > Automator and choose Service when prompted to create a new Automator document. In the Actions sidebar, select Files and Folders and then Rename Finder Items.
Tip: You can narrow down the list of actions with the search field in the Actions sidebar.
Drag the Rename Finder Items action to the main workflow pane.
Automator will prompt you to add a Copy Finder Items action before Rename Finder Items. This will preserve the files with their original names and change the names of the copies. While you can choose to add this safety net action to your workflow, it isn’t necessary.
At the top of the workflow, tell Automator what input to look for and where. Because this service will edit filenames, select Files and Folders in Finder. Decide what should be changed about the filename.
I want to add a date to my files, but you can also choose to makes filenames sequential, change the filename from uppercase to lowercase, and more. If any of your changes will create identical filenames, consider adding another Rename Finder Items action to your workflow to number your files.
Customize the action options. In this case, decide which date to add, date created vs. date modified, the date format, and where the date will be added to the filename.
Save the workflow and give it a meaningful name, like Add Date to Filename. The service will be available from the contextual services menus when one or more files are selected in Finder.
2. Create an Automator Service to Resize Images (Without Opening an Image Editor)
This service can really speed up image editing and is useful if you need a lot of images with the same dimensions, for instance in app or web development, or if you just want to shrink your images before uploading them to social media.
Open Automator and choose Service when prompted to create a new Automator document, just as before. In the Actions sidebar, select Photos and then Scale Images.
Drag the Scale Images action to the main workflow pane. Automator will prompt you to add a Copy Finder Items action before Scale Images, as it did when we were renaming files. This will make a copy of your original images before they are resized.
Whether you want to preserve the original images depends on how you’re using your images. If you’d like to keep the originals, click Add.
Check the input and output options at the top of the workflow pane. This service will receive Image Files in Finder.
Next decide how you would like your images scaled and to what size. Automator allows the creation of similar workflows, so you won’t be tied to just one size.For example, if you commonly scale images to three sizes create three separate services.
When you’re satisfied, save the new service. If you are making several services for different image sizes, give the services unique names so you can later tell your scaling services apart. The Scale Image service will be available anytime one or more images are selected in Finder.
3. Create an Automator Service to Take a Screenshot of a Finder or Application Window
This is a service I use a lot, because I often need screenshots of just the active window. I used to rely on third-party applications to get the job done, but Automator can handle this, too.
Open Automator and again choose Service when prompted to create a new Automator document. In the Actions sidebar, select Utilities and then Take Screenshot.
Drag the Take Screenshot action to the main workflow pane. The input options will be a little different for this service. At the top of the workflow pane, set the input to No Input in Any Application. This service doesn’t need you to do anything for it to be triggered in the Services menu.
Set the type of screenshot to Interactive, and select Choose Window under options. Set the destination folder for the new screenshot. If the destination folder isn’t present when the service runs, it will create a new folder in the location you specified.
Save the service when you’re done. The Take Screenshot service will be available in the application menu for any application.
Unlike the two services above, it isn’t necessary to select a file before activating the service. Instead, when the Take Screenshot service runs, you will be prompted to select a window for the screenshot. The cursor will become a small camera, and the selected window will be grayed-out on hover. Click the window to grab a screenshot of just that window.
4. Create an Automator Service to Count Characters, Words, and Paragraphs
This service take a bit more effort than the others, but it’s useful for quickly learning how many characters and words are in a block of text. It will also count paragraphs, but I’ve found that the service has trouble nailing down an exact number of paragraphs for web-formatted text.
Open Automator and choose Service when prompted to create a new Automator document. In the Actions sidebar, select Utilities and then Run AppleScript.
Drag the Run AppleScript action to the main workflow pane. At the top of the workflow pane, tell the service to look for selected Text in Any Application.
Tip: Secondary-click menus may work different in web app text and document editors. If you can’t spot the services menu in your browser when using an online editor, check whether the editor app has a character or word count tool.
In the Run AppleScript action, paste the following into the text field:
1 |
on run {input, parameters} |
2 |
try |
3 |
set TextSelection to input as string |
4 |
set numChars to the number of characters of TextSelection |
5 |
set numWords to the number of words of TextSelection |
6 |
set numPara to the number of paragraphs of TextSelection |
7 |
set theResult to "The text selection contains:" & return |
8 |
set theResult to theResult & numChars & " characters" & return |
9 |
set theResult to theResult & numWords & " words" & return |
10 |
set theResult to theResult & numPara & " paragraphs" |
11 |
display dialog theResult buttons {"OK"} default button 1 with icon note |
12 |
on error errmsg number errnum |
13 |
display dialog errmsg & " [" & errnum & "]" buttons {"OK"} default button 1 with icon stop |
14 |
end try |
15 |
return input |
16 |
end run |
Save the service and give it a name. The character counter service will be available from either the secondary-click contextual menu or in the application menu when text is selected in any application.
Conclusion
Though intimidating at first sight, Automator is a simple tool for automating and customizing small, recurring tasks.
Stacking actions allows you to create general to specific services, and with AppleScript, the sky’s the limit with Automator.