Salesforceでマクロが使える、ということは耳にされたことがあるかもしれないですが、具体的にどんなことが出来るのかご存知でしょうか。やや分かりづらい機能ですよね。筆者もこれまであまり使ってこなかったので、本記事でマクロで何が出来て、どう使えそうか、そして設定方法まで詳しくまとめてみました。
Salesforceのマクロでできること
マクロと聞くとまず想起されるのはMicrosoft Excelのマクロです。ExcelのマクロではVBA(Visual Basic for Applications)を使用し、プログラミングによって複雑な処理を記述できます。
一方で、Salesforceのマクロはかなりシンプルで、そこまで複雑な自動化は出来ません。
Salesforceのマクロを一言でいうと、自動でアクションボタンをクリックして、その先の項目に固定テキストやクイックテキストを挿入し、保存やメール送信などの最終アクションまで完結させる機能をユーザー側で作れる機能です。
おそらくSalesforceは、EUC(End-User Computing:ユーザー自身がシステム開発すること)の観点で、ユーザー側に自由に自動化を作成させてもそこまでガバナンス上問題のない機能としてマクロを位置づけているのだと考えられます。
ここからは、画面キャプチャを見ながらマクロの操作感や出来ることを詳しく紹介します。
マクロはユーティリティからクイックに起動する
サンプルとして、メールを送る直前のところまでのマクロを作りました。
マクロは、ユーティリティバーからクイックにアクセスできます。
※赤枠内に「+」ボタンがありますが、ここからユーザー自身がマクロを作ることが出来ます。

ユーティリティバーだけではなく、マクロはナビゲーションにタブとして出すことも可能です。

下図ユーティリティバーの画面に戻ります。マクロを使用するためには、どのマクロを起動するのか選んで、「マクロを実行」をクリックするだけです。

マクロで自動化できる動作
マクロを実行を押すと、ユーティリティのポップアップ内がオーバーレイし、実行完了まで0.5秒程度待つ形になります。待ち時間は処理の長さに比例しますが、ほんの一瞬です。

実行が完了すると下図の画面になり「マクロが適用されました」と表示されます。

確認してみると、メール文面が作成できています。もちろん、このまま送信までマクロで実行してしまうことも可能です。

マクロで操作できる項目とできない項目がある
以下はマクロのビルダー画面です。マクロビルダーでは、操作する箇所を画面上でクリックして、そこに対して何をするのかをメニュー上から設定していくUIになっています。
マクロで操作できる項目は限られており、下図の赤枠内の、さらに点線で囲まれた部分のみがマクロの対象です。

画面フローはマクロでは選択できません。

「フォローする」ボタンや、「承認申請」ボタンは押せません。その右の更新アクションや、レコード作成アクションは押せます。

下図の通り、「詳細」「活動」「Chatter」などのタブは点線で囲まれているので押せます。一方で、レコード詳細画面の項目をマクロビルダー上でクリックして編集することは出来ません。

つまり、マクロとはアクションボタンを起点とした自動化をおこなうためのツールであると捉えられます。
マクロにはクイックアクションを利用できる
マクロビルダーは、左側が点線枠内を直接クリックするキャンバス、右側が制御メニューとなっており、以下のように分割された画面です。ここからは制御メニューの方を詳しく見ていきます。

例となるシナリオとしては、メールの文面を自動で入力する、というものを想定しています。テキストを直打ちすることも可能ですし、クイックテキストを使用することも可能です。クイックテキストには差し込み項目があります。
クイックテキストをうまく使えば、かなり柔軟にメール文面をセットできそうです。
また、メールアクション上ではメールテンプレートを使用したり、添付ファイルを設定することも可能です。

マクロでテキストを挿入する際のアクションは、以下の通り「全上書き」するのかユーザーが書いた文章の前後に差し込むのかを選ぶことも出来ます。かゆいところに手が届きますね。

マクロのロジックは条件分岐できる
マクロビルダーのUI上から条件を設定することが出来ます。

条件式の中ではレコードの項目を条件として指定することが出来ます。AND条件とOR条件のみを設定できます。カスタムの条件ロジックは作成できません。

ただし、条件をグルーピングしてグループ単位で条件を設定することは可能なので、柔軟性は高いです。

また、IF(もし○○だったら)・ELS IF(IFに合致しなくて○○だったら)・ELSE(それ以外)が使えるので、ある程度なんでもできそうです。

以上がマクロで出来ることの全容です。イメージが湧いていただけましたでしょうか。
マクロの作り方は?設定方法を詳しく解説
マクロは、設定画面ではなくユーザーが普段使っているUI上から作ることが出来ますが、ユーザーがマクロにアクセスするためにはユーティリティバーにマクロを出す必要があります。
導線は右記の通り:設定 > アプリケーションマネージャー > ユーティリティを表示するアプリを選ぶ
アプリケーション設定画面(下図)まで行ったら「ユーティリティ項目を追加」を押してマクロを追加しましょう。

次に、これは任意ですが、タブとしてマクロを出すことも出来ます。下図右側の赤枠の鉛筆マークをクリックして、タブを加えます。

次に、マクロを作成していきます。ユーティリティバーを押すと、まだマクロを1個も作っていないと下図の画面になります。「マクロを作成」を押しましょう。
すでにマクロを作っている場合はこの画面になりませんが、「+」ボタンを押して次へ進みます。

マクロの名称や説明を定義します。また、適用先を選択し、マクロを表示するオブジェクトを決めておきます。例えば適用先を商談で作ったマクロは商談を開いているときしか表示されません。

するとマクロビルダーが開きますので、右側の制御メニューから「命令を追加」を押します。

命令を追加するには、マクロビルダー左側の画面から点線で囲まれた領域を開く必要がある、という文章が出てきます。

マクロビルダー左側のキャンバス領域から、何の操作をするのかを選択していきます。例えば、活動を記録するのであればまず活動のタブをクリックします。

すると、マクロビルダー右側の制御メニューに活動の件名とコメントを入力する欄が表示されます。
件名でもクイックテキストが使えるとよいのですが、はマクロだからということではなく使える項目が限られていますので、それは無理です。
※参考記事:クイックテキストの仕様

すこし分かりづらいですが、保存ボタンはもちろん押すことが出来ます。活動やレコードの作成、メールの送信まで実行できるということです。

処理を条件分岐させたい場合には、ロジックを追加を押します。

するとIF文が表示されますので適宜設定します。

「グループを追加」ボタンを押せば、条件をグルーピングしてグルーピング単位でロジックを作ることが可能です。

完成したら、保存を押して完了です。

マクロはService Cloudコンサルタントの試験の出題範囲ですが、ケースだけでなく、商談など他のオブジェクトでも使用することが可能です。
Salesforceにマクロは出来ることが制限されているがゆえに、ユーザーにどんどん渡してしまってもクリティカルな影響が起きづらいと思います。もちろんメール文面を直接お客様に送れるので文面はしっかり作りこむ必要がありますが、それは手で送るときも同じ。ぜひ使いこなしていきましょう!