Alfred 4でのWorkflowの作り方とWorkflow Objectのまとめ

Alfred 3のときにもWorkflowに関する記事は書いたのですが、Alfred 4になってUIが変わったり、新しい機能も追加されているので、改めて作り方をまとめておきます。
ちなみにWorkflowはAlfredのPowerpack(有料版)でなければ使用できないので、ご注意ください。
Workflowとは何か?
Alfredの検索ボックスに「キーワード」と「引数」を入力することで、引数をもとに情報を引っ張って、ちょっとした自動化が可能です。
Workflowは他人が作ったものを使用することもできて、公式サイトからもWorkflowのインポートが可能です。
Workflowの基本的な作り方
Workflowファイルの作成
Alfredの[環境設定]→[Workflows]画面を開いて、サイドバーの下の方にある「+」ボタンを押し、[Blank Workflow]を選択します。

Workflowの情報を入力するパネルが表示されるので、必要情報を入力します。

| 項目 | 入力内容 | 備考 |
|---|---|---|
| Name | Workflowの名前を入力 | |
| Description | Workflowの説明文を入力 | |
| Category | Workflowのカテゴリを選択 | 自分のAlfred内だけの設定。エクスポート時にはこの情報は消える |
| Bundle Id | Workflow固有のIDを設定 (入力しておくことでアップデート時にWorkflowを認識する) | 「com.自分の名前.Workflowの名前」というフォーマットがよく使われるらしい |
| Created By | 作成者である自分の名前を入力 | |
| Website | ウェブサイトがある場合はURLを入力 |
入力できたら「Create」ボタンをクリックします。
これで空のWorkflowの作成はできました。
Workflow Objectの設定
作成したWorkflowの中に、Workflow Objectと呼ばれる「細かい指示」を配置し、それらをつなぎ合わせることでWorkflowは動作するようになります。

右半分の背景が黒い場所で、右クリックをして指定のWorkflow Objectを選択します。
このWorkflow Objectには5つのタイプがあり、それぞれ下記の特徴があります。
- Trigger:ホットキーやAlfredの機能からWorkflowを発火する
- Input:アクションを実行するために必要なキーの入力をする
- Action:Workflowで必要な作業を実行する
- Utilities:Workflowをコントロールする特殊なWorkflow Object
- Output:Inputから取得した情報を出力したり、外部の操作を行う
これらをつなぎ合わせる必要があるのですが、たいていの場合、「Trigger」か「Input」で開始し、必要に応じて「Utilities」で間の処理や調整を行い、「Output」か「Action」で出力やアクションを発生するという流れになります。

ここからはカテゴリごとに、どんなWorkflow Objectがあるのかひと通りまとめていきます。
Triggers
ホットキーやAlfredの機能からWorkflowを発火するWorkflow Objectです。
この中ではおそらくHotkeyが1番利用頻度が高いと思います。
| オブジェクト名 | できること |
|---|---|
| Hotkey | コマンドの入力で実行される |
| Remote | Alfred Remoteから実行 |
| Snippet | スニペット一覧から実行 |
| External | 外部のAppleScriptから実行 |
| File Action | Alfredのファイル操作一覧から実行 |
| Contact Action | Alfredの連絡先一覧から実行 |
| Fallback Search | Default Resultsのフォールバック検索で実行 |
Inputs
アクションを実行するために必要なキーの入力をするWorkflow Objectです。
Alfredの強みはやはり検索ボックスに何かしら単語を入力して、それを引数にしてあれこれ処理をすることだと思っているので、これらのWorkflow Objectは非常に魅力的です。
また、Inputは基本的にOutputとセットで使うことが多いです。
| オブジェクト名 | できること | 備考 |
|---|---|---|
| Keyword | キーと引数を設定する | 引数は「必須」「可能」「なし」の中から選択 |
| File Filter | キーと引数を設定し、引数でファイルを検索する | |
| Dictionary Filter | キーの設定と、開きたい辞書の言語設定が可能 | |
| List Filter | 固定のリストを作成可能 | Script Filterほど高度な機能は不要ないときに使用 |
| Script Filter | スクリプトの実行結果を一覧に表示する | コードで書きたい場合は大抵これを使用 |
Actions
ファイルを開いたりアプリを開いたり、何かしらのアクションを行うWorkflow Objectです。
| オブジェクト名 | できること | 備考 |
|---|---|---|
| Open File | 指定ファイルを開く | |
| Launch Apps / Files | 指定したアプリやファイルを開く | |
| Reveal File in Finder | 指定したファイルをFinderで開く | |
| Browse in Terminal | 指定したファイルをターミナルで開く | |
| Browse in Alfred | 指定したファイルをAlfredのFile Navigation Systemで開く | |
| Default Web Search | デフォルトのブラウザで検索する | |
| Open URL | 指定したURLを開く | 単体だとWeb Searchと同じ機能 |
| System Command | Alfredのシステムコマンドを実行する | |
| iTunes Command | iTunesの操作を行う | |
| Run Script | bash / zsh / PHP / Ruby / Python / Perl / OsaScriptを実行する | |
| Run NSAppleScript | NSApple Scriptを実行する | |
| Terminal Command | 入力したスクリプトをターミナルで実行する |
Utilities
Workflowをコントロールする特殊なWorkflow Objectになります。
Workflow Objectの間にかませることで機能します。
| オブジェクト名 | できること | 備考 |
|---|---|---|
| Arg and Vars | 前のアクションで入力された引数を変数に入れる | |
| Split Arg to Vars | 前のアクションで入力された引数を複数の変数に分割する | |
| Junction | Workflowの整理を行うためのオブジェクト | |
| Conditional | 前のアクションで入力された引数に一致する条件に応じて、別のパスをたどるように設定可能 | 簡単なif文(条件分岐)だと思えばいい |
| Filter | Conditionalより複雑な条件分岐が可能 | |
| Delay | 遅延の追加が可能 | |
| Transform | データのフォーマットを整えられる | |
| Replace | 前のアクションで入力された引数を、別のフォーマットに置き換えることが可能 | |
| Random | ランダムに結果を返す | |
| Hide Alfred | Alfredを隠す | |
| Show Alfred | 前のアクションで入力された引数が、Alfredに入力された状態で表示する | |
| JSON Config | JSONを使用して、データを編集することが可能 | |
| Debug | デバッグ用のWorkflow Object |
Outputs
Inputから取得した情報を出力したり、外部の操作を行うWorkflow Objectです。
| オブジェクト名 | できること | 備考 |
|---|---|---|
| Post Notification | 通知を出す | |
| Large Type | 画面中央にテキストを表示するLarge Typeを使う | |
| Copy to Clipboard | クリップボードにコピーする | |
| Write Text File | テキストファイルを作成する | |
| Play Sound | 音を再生する | |
| Dispatch Key Combo | キーストロークの組み合わせを実行する | |
| Call External Trigger | Workflowの外部トリガーを呼び出す |
まとめ
コードを書く必要のあるWorkflow Objectもありますが、コードを書かなくてもいいWorkflow Objectが大半なので、比較的簡単に効率化ができると思います。


Visual Studio CodeのEasy Sassを使って簡単にSassのコンパイルを行う方法
Fantasticalの月間カレンダーは3段にして使うのがオススメ!
Path Finder9.3からラベル・タグ機能の表示を変更できるように!複数のラベルにも対応!
BetterTouchToolのウインドウスナップ機能とBetterSnapToolの細かい違い
macOSのシステム環境設定「Dock」の設定見直し
通知パネルの「閉じる」クリックをショートカットキーで行う方法
weblocファイルを作成してサイトのリンク情報をFinder上に保存しておく方法
Alfredのスニペット機能を便利に使いこなすための管理方法
Googleの「.new」ドメインを徹底的に活用する
CPUの温度が熱すぎるのを防ぐMacのファンコントロールアプリ
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法