Introduction to Automator Programming Guide
Automator is an application from Apple that automates repetitive procedures performed on a computer. With Automator users can construct arbitrarily complex workflows from modular units called actions. An action performs a discrete task, such as opening a file, cropping an image, or sending a message. A workflow is a number of actions in a particular sequence; when the workflow executes, data is piped from one action to the next until the desired result is achieved.
Apple includes a suite of ready-made actions with Automator, but developers are encouraged to contribute their own actions. You can create actions—which are implemented as loadable bundles—using either AppleScript, Objective-C, or a combination of the two languages. You can also create actions using shell scripts or other scripting languages such as Perl and Python.
Automator was introduced in OS X version 10.4. It does not run on earlier systems. The development features of Automator were introduced with Xcode 2.0. Additional development features have been added in Xcode 2.1. This document notes these newer features when it mentions them.
Who Should Read This Document
Any developer can create actions for Automator, as indeed can system administrators or “power users” who are familiar with AppleScript. But application developers have a particular motivation for developing actions. They can create actions that access the features of their applications, and then install these actions along with their applications. Users of Automator can then become aware of the applications and what they have to offer.
Developers can also contribute to Automator by making their applications scriptable or by providing a programmatic interface (via a framework) that developers use to create their actions.
Organization of This Document
Automator Programming Guide consists of the following articles:
“Automator and the Developer” describes what Automator can do and discusses the characteristics and types of actions,
“How Automator Works” gives an overview of the loadable-bundle architecture of Automator and the Objective-C classes of the Automator framework.
“Design Guidelines for Actions” lists guidelines for action development, including recommendations regarding I/O, naming, and the user interface.
“Developing an Action” guides you through the major steps required to develop an action.
“Show When Run” describes the Show When Run feature of actions and explains how you can customize it.
“Implementing an AppleScript Action” states the requirements for developing an action using AppleScript, suggests approaches you might take, and discusses hybrid actions—that is, actions based on both AppleScript and Objective-C code.
“Implementing an Objective-C Action” explains how to create an action implemented with Objective-C code.
“Creating Shell Script Actions” describes the steps required to create an action using a shell script or a scripting language such as Perl or Python.
“Creating a Conversion Action” describes what is required to create actions whose only purpose is to convert between types of input and output data.
“Defining Your Own Data Types” discusses custom data types and explains when and how you should define them.
“Automator Action Property Reference” defines the types and expected values for the Automator properties specified in an action’s information property list (
Automator Framework Reference provides an overview of the reference material available for developing with Automator, with links to specific class reference and constants documents.
Automator Constants Reference describes Automator programming constants.
Mac Technology Overview presents an overview of the Xcode integrated development environment.
AppleScript Overview introduces the technology for creating and controlling scriptable applications.
The Objective-C Programming Language describes the Objective-C programming language and how you use it to create object-oriented programs.
Cocoa Bindings Programming Topics discusses the Cocoa bindings mechanism and how you can incorporate it in your programs.