<!--
{
  "availability" : [
    "macCatalyst: 14.0.0 -",
    "macOS: 10.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Automator",
  "identifier" : "/documentation/Automator/AMWorkflowController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Automator"
    ],
    "preciseIdentifier" : "c:objc(cs)AMWorkflowController"
  },
  "title" : "AMWorkflowController"
}
-->

# AMWorkflowController

An object that lets you manage an Automator workflow in your app.

```
class AMWorkflowController
```

## Overview

A controller can run and stop a workflow and obtain information about its state. The controller’s delegate ([`AMWorkflowControllerDelegate`](/documentation/Automator/AMWorkflowControllerDelegate)) receives messages as the workflow is executed and its actions are run.

You can load and run a workflow with minimal overhead by using the [`AMWorkflow`](/documentation/Automator/AMWorkflow) class method [`run(at:withInput:)`](/documentation/Automator/AMWorkflow/run(at:withInput:)). Use [`AMWorkflowController`](/documentation/Automator/AMWorkflowController) where you need greater control, such as the ability to start and stop the workflow. In that case, you must create and initialize both the workflow and the workflow controller objects.

## Topics

### Accessing the Workflow

[`workflow`](/documentation/Automator/AMWorkflowController/workflow)

The controller’s workflow.

### Accessing the Workflow View

[`workflowView`](/documentation/Automator/AMWorkflowController/workflowView-swift.property)

The controller’s workflow view.

### Accessing the Delegate

[`delegate`](/documentation/Automator/AMWorkflowController/delegate)

The controller’s delegate.

[`AMWorkflowControllerDelegate`](/documentation/Automator/AMWorkflowControllerDelegate)

A set of optional methods that a delegate of a workflow controller implements.

### Controlling the Workflow

[`pause(_:)`](/documentation/Automator/AMWorkflowController/pause(_:))

Pauses a workflow that’s running.

[`reset(_:)`](/documentation/Automator/AMWorkflowController/reset(_:))

Stops a workflow, clears any action results, and resets the workflow back to an un-run state.

[`run(_:)`](/documentation/Automator/AMWorkflowController/run(_:))

Runs the associated workflow, after first clearing any results stored by its actions during any previous run.

[`step(_:)`](/documentation/Automator/AMWorkflowController/step(_:))

In a paused workflow, runs the next action in the workflow and then pauses again.

[`stop(_:)`](/documentation/Automator/AMWorkflowController/stop(_:))

Stops the associated workflow.

### Getting Workflow Information

[`canRun`](/documentation/Automator/AMWorkflowController/canRun)

A Boolean value that indicates whether the controller’s workflow is able to run.

[`isPaused`](/documentation/Automator/AMWorkflowController/isPaused)

A Boolean value that indicates whether the controller’s workflow is currently paused.

[`isRunning`](/documentation/Automator/AMWorkflowController/isRunning)

A Boolean value that indicates whether the controller’s workflow is currently running.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)