Salesforceで業務を効率化するために、
オブジェクトのレコード画面にカスタムボタンを置き、ボタンから直接フローを起動する方法を紹介します!
実装例は取引先(Account)オブジェクトをベースにしていますが、他オブジェクトでも応用可能です。
🧠 こういうときに使う
- 画面にボタンを設置して、ユーザーにフローを実行させたい
- オブジェクトのレコード単位でパラメータ(recordIdなど)を渡して起動したい
- できるだけ簡単な方法でやりたい(Apexなしで)
🛠️ 実装ステップ
1. フローを作成する
- 例)取引先レコードを対象に処理するフローを作成
- フローのAPI参照名を確認しておきます(例:
updateaccountflow
) - 変数を渡したい場合、リソースを用意します(例:
accountid
)- 「入力で使用可能」にチェックを入れる
2. カスタムボタンを作成する
- 設定画面 → 対象オブジェクト(例:取引先)→「ボタン、リンク、およびアクション」から新規作成
- 以下のように設定します:
項目 | 内容 |
---|---|
ラベル | フロー起動ボタン |
名前 | launchFlowButton |
表示種別 | 詳細ページボタン |
動作 | 現在のウィンドウにサイドバーなしで表示 |
コンテンツソース | URL |
リンクのエンコード | Unicode(UTF-8) |
3. URLの書き方(ポイント!)
以下のように、フローへのパスとパラメータを組み合わせます。
/flow/updateaccountflow?accountid={!Account.Id}
-
/flow/
のあとにフローのAPI参照名 -
accountid
パラメータに対象レコードのIDを渡す
これにより、ボタンクリック時にそのレコードIDを持った状態でフローが起動されます!
4. ページレイアウトに追加する
- 対象オブジェクト(例:取引先)のLightning ページを編集
- 作成したカスタムボタンを「強調表示パネル」の「アクション」に配置
🚀 動作イメージ
- 取引先の詳細画面に「フロー起動ボタン」が表示される
- 押すと、同タブでフローが起動
- 取引先の情報(recordId)が渡った状態で処理を進められる
🔥 まとめ
- Apex不要でフローを柔軟に起動できる!
- recordIdを渡せば対象レコードに紐づく処理ができる!
- 標準機能だけでできるので管理が楽!
UIカスタマイズでちょっとだけ業務効率を上げたいときに、ぜひ使ってみてください!