はじめに
みなさん、Salesforceの見積オブジェクトは使っていますか?
こいつは[設定]から有効化することで、商談にひもづく商品をもとに見積データを作成したり、単体で見積データを作成するのに便利です。
しかし、残念ながら標準で見積データをコピーする機能はないようです。
※img1、img2参照
コピーをする方法がない、たったそれだけですが、新規作成で商談商品をベースにした追加見積データを作ったり、別パターンでの見積を作成するとき見積品目をいちいち変更するため手間になってしまうんですよね、、、
※商談商品をいじって、新規作成で調整でも同様に手間ですよね、、、


てことで、今回は見積をコピーすると一緒に見積品目もコピーして、かつちょっとした変更もできるような機能をフローで作成してみました。
出来上がったもの
今回作成したものはこちらになります。

どうしてこうなった?
できるだけ、見積コピーをするさいに出そうな、手間を省きたくてこうなってます!
今回の場合は、コピーしたいレコードというのは、ユーザが現在見ているであろうレコードページのものであると仮定した上でコピーします。
なので、画面フローとしてボタンをレコードページに載せています。

見積品目名オブジェクトには、フロー上でレコードの名前がテキスト表示できる項目はないため、今回は専用のテキスト項目を作成して、画面要素上の「データテーブル」という機能で表示できるようにしています!
※商談とかはNameがあるけど、見積品目名にはNameがなかったため。
この辺りのカスタムは企業ごとで、許可されるかは変わりますが、可能であれば専用で使用できるカスタム項目として、下記のようなものを作成することをオススメします!
※この記事のような対応をする場合

何ができるの?
先にあげたimg4の通り、「見積コピー」というボタンを、コピーしたいレコードページ上でクリックすると、下記のimg6のようなモーダル が表示されます。
モーダルでは、デフォルト値としてコピー対象の情報をテキストで変更できるように入力欄に表示させています!
※この辺りのカスタムも組織ごとに変わるので、これが正解ではないです。
さらにデータテーブルを使用して、紐づいている見積品目のレコードを一覧として表示しています。
※取得タイミングについては、img3をご確認ください。

データテーブルを使うことで、ユーザが選択したレコードのみを後工程のループ処理にまわして、レコード作成の処理を実行するといったことができます。
※ありがとう、Salesforce!
入力が終わったら、「コピーを開始」をクリックするとimg7のようなモーダル が、選択したレコードの数だけ表示されます。
※今回は2つ選んでいたので、img8のように別のモーダル も表示されます。



選択した見積品目名すべての確認が完了したら、img9のようなモーダルを表示し完了を通知しています!
ついでに、作成されたレコードページにアクセスするリンクも表示する感じにしています!
※作成したレコードはimg10のように、設定した通りに作成されます。

さいごに
今回の機能を作成することで、シンプルに複数パターンを作成するときの心理的負荷はだいぶ下がるので不満は減ると思います。
なしの場合、商談から新規作成する、または直接作成などをした後に商品数を編集するため、特に忙しい営業担当者などはイラッとする可能性はなくはないです、、、
※実際に所属組織ではそういう声を聞いています。。。
見積をコピーするということ自体は、時間が超絶減らせるというより、自分でコピペした際にでるちょっとしたミスを防止できることがミソなのかもしれません。