見出し画像

[徹底検証]フローでのメール送信でファイル添付が可能に

セール中

〜2月18日 15:00

メール送信先の上限が5件から拡張、CCやBCCが使用できるようになった、などメジャーアップデートの毎に進化しているSalesforceフローでのメール送信アクション。

今回2025年2月リリースのSalesforce Spring25では、ついにファイル添付も可能になりました。



今までフローでのメール送信時にファイル添付したい場合はどうしてた?

今まではフローでのメール送信時はフィイル添付ができませんでした。
Apexで対応するしかありませんでした。

今回のSalesforce Spring’25(APIバージョン63以降)では、従来の[メールを送信]アクション内に
[添付ファイル ID]プロパティが新登場しています。

ここには”ContentバージョンID” or "ドキュメントID”を指定する必要があります。

もちろんオプションなので、従来通りファイル添付せずにメール送信することも可能です。


ファイルは複数のオブジェクトが関連し管理されますが、「ContentバージョンIDとは」については下記をご覧ください。


実際に[添付ファイル ID]プロパティ を使ってみる

実際にフローを下記3パターンで作成してみましょう。

・パターンA:1つの固定ファイルを添付
・パターンB:レコード添付された1つのファイルを添付
・パターンC:レコード添付された複数のファイルをファイル名と拡張子で選別して添付(実運用向け

ファイル関連のオブジェクト構成は複雑なため、下記構成を見ながらフローを作成するとわかりやすいです。


一部引用元:コンテンツのオブジェクト



【パターンA】:固定のファイルをメール添付するフローを作成してみる

まずはシンプルな挙動を確認してみましょう。
添付するファイルはハードコードで指定する方法です。

①メール添付するファイル
ファイルへ「サンプルファイル」という画像をアップしました。
このファイルを添付してメール送信するフローを作成してみます。


②フロー内でコンテンツバージョンIDの取得

①でアップしたファイルのURLはブラウザのURL欄から確認することで「コンテンツドキュメントID」は確認できます。
”069”から始まる18桁の英数字です。

フロー内の[レコードを取得]要素でコンテンツバージョンIDを取得します。
バージョンは1つしかありませんが、一応最新バージョンという条件も付けました。


③メールを送信アクション
最後にメールを送信アクションで②で取得したコンテンツバージョンIDを指定すれば完成です。
最低限埋める必要がある受信者ID、件名、本文も任意の値で埋めておきます。
※下記キャプチャは「Attachment ID」となっていますが、現在は「添付ファイル ID」となっています


④完成形フロー
完成形は下記のフローになりました。
この形で無事サンプルファイルが添付されたメールを送信できました。




【パターンB】レコードへ添付された1ファイルをメール添付するフロー作成してみる

中級編です、次に下記のようなパターンを確認してみます。

やりたいこと
・取引先へ1つだけファイルが添付されている
・取引先レコードへフローボタンを設置
・ボタンを押すとファイルの最新バージョンが添付されたメールが送信される



①ボタンを押した際の取引先レコード
先にフロー内のレコード変数を作成しておきます。


②コンテンツドキュメントリンクの取得
①で取得した取引先にぶら下がるコンテンツドキュメントリンクを取得します。


③コンテンツドキュメントを取得
②で取得したコンテンツドキュメントリンクIDと一致するコンテンツドキュメントを取得します。


④メール送信アクションの作成
③で取得したコンテンツドキュメントの「最新の公開バージョンID」(=コンテンツバージョンID)を指定します。
※下記キャプチャは「Attachment ID」となっていますが、現在は「添付ファイル ID」となっています


⑤メール送信ボタンの配置
取引先オブジェクトへ、作成したフローを呼び出すアクションを作成してページレイアウトへ配置しました。


⑥完成形フロー
結果的に下記のフローとなりました。ボタンを押すことで取引先に添付された1ファイルがメールへ添付されて送信することが出来ました。




【パターンC】レコードへ添付された複数ファイル、かつファイル名や拡張子に合致したファイルのみをメール添付するフロー作成してみる

最後に実践編、上級編です。先ほど試したBの応用編です。

ここからはコンテンツドキュメントリンク、コンテンツドキュメント、コンテンツバージョンの関係性を理解しつつ独自の検証をしていきます。
実運用ではこの形をベースすればあらゆる要望に対応できるかと思います。


下記のパターンで試してみます。

やりたいこと
・取引先へ複数ファイルが添付されている
・ファイル名に「送信用」という文字が含まれる拡張子が「png」のファイルのみが送信対象
・取引先レコードへフローボタンを設置
・ボタンを押すと各該当ファイルの最新バージョンが添付されたメールが送信される


ファイル名、拡張子以外にもコンテンツドキュメントオブジェクトにある
・ファイルタイプ
・サイズ
・ファイル作成日
・作成者などでも対象ファイルを絞ることもできます。
詳しくはリファレンスをご覧ください。
https://developer.salesforce.com/docs/atlas.ja-jp.object_reference.meta/object_reference/sforce_api_objects_contentdocument.htm



①ボタンを押した際の取引先レコード
Bと同様、先にフロー内のレコード変数を作成しておきます。


②コンテンツドキュメントリンクの取得(複数レコード)
取引先にぶら下がる「全コンテンツドキュメントリンク」を取得します。


③コンテンツドキュメントIDをテキストコレクション化
②で取得したコンテンツドキュメントリンクのコンテンツドキュメントIDをテキストコレクション化します。


Salesforceフローの”変換”はとても便利な要素です。別記事で詳しく検証しています。



次にレコードに添付された複数のファイルを取得/判定するため、
コンテンツドキュメントリンク、コンテンツドキュメント、コンテンツバージョンの関係性を意識しながら進めます。

ここから先は

1,074字 / 7画像

セール中
¥300
¥ 150

1月19日 15:00 〜 2月18日 15:00

この記事が気に入ったらチップで応援してみませんか?