サービス
  webflow ロゴFaceMFA ロゴ

Blog

事例・ブログ
2024-06-26
Salesforce

[Salesforce]フローで自動取得できる祝日の設定方法

Salesforceのフローで自動取得する祝日の設定方法

Salesforceのフローのみで祝日情報を取得する

Salesforceフローを使用してのお客様や従業員への通知やToDoを作成する際に、休業日に実行したくない場合等あると思います。曜日の判別は数式で簡単にできますが、祝日の判別はデフォルトの情報だけでは難しいです。祝日のデータをインポートして管理する方法は簡単ですが、1年後にインポートを忘れて問題になるかもしれません。ここでは、フローのみで祝日の情報を取得する方法を解説します。

祝日設定でできること

  • 月曜日が祝日の場合、リマインドメールが金曜日に送信されるようにする。
  • 顧客への通知を営業日以外に送信したくない。
  • 祝日を除いた日数で計算をしたい。

使用するAPIについて

祝日のデータを提供するAPIサービスを利用します。ここでは、日本の祝日を提供する「国民の祝日:日本 API」を使用します。このAPIでは今年と翌年分の祝日を取得します。年が変われば、その翌年の祝日を取得します。

フローを使った祝日の設定方法

指定ログイン情報・外部ログイン情報の作成

フローからAPIをコールするには、外部ログイン情報と指定ログイン情報の作成が必要です。以下の手順で設定します。

  1. Salesforceの設定画面から「指定ログイン情報」を開く
    • 上部のタブから「外部ログイン情報」を選択し、「新規」を押下します。
  2. 外部ログイン情報の作成
    • 作成画面には以下の内容を入力します。
      • 表示ラベル:national_holidays_api
      • 名前:national_holidays_api
      • 認証プロトコル:認証なし
    • プリシンバルの「新規」を押下し、以下の情報で作成します。
      • パラメーター名:api
      • 連番:1
  3. 指定ログイン情報の作成
    • 「指定ログイン情報」のタブに戻り、「新規」を押下します。
    • 以下の内容を入力し、「保存」を押下します。
      • 表示ラベル:national_holidays_api
      • 名前:national_holidays_api
      • URL:https://api.national-holidays.jp/recent
      • コールアウトに対応:有効
      • 外部ログイン情報:national_holidays_api
      • 認証ヘッダーを設定:無効
  4. 権限セットの作成
    • Salesforceの設定画面から「権限セット」を開き、「新規」を押下します。
    • 以下の内容を入力し、「保存」を押下します。
      • 表示ラベル:national_holidays_api
      • API参照名:national_holidays_api
    • 「外部ログイン情報プリンシパルアクセス」を押下します。
    • 「編集」を押下し、「有効な外部ログイン情報プリンシパル」に「national_holidays_api - api」を追加して保存を押下します。
    • 権限の設定画面に戻り「割り当ての管理」でフローの実行ユーザーに割り当てます。

祝日を保存するためのオブジェクトの作成

  1. Salesforceの設定画面の上部の「オブジェクトマネージャー」を開きます
    • 「作成」から「カスタムオブジェクト」を押下します。
  2. カスタムオブジェクトの作成
    • 以下の情報を入力し、「保存」を押下してください。
      • 表示ラベル:休日
      • オブジェクト名:Holiday
      • レコード名:祝日名
      • データ型:テキスト
  3. 項目とリレーションの設定
    • サイドバーから「項目とリレーション」を押下し、以下の項目を作成します。
      • データ型:日付
      • 表示ラベル:日付
      • 項目名:Date

これで、祝日を保存するためのカスタムオブジェクトが作成されました。

フローの作成

Salesforceの設定画面から「フロー」を開きます。

「新規フロー」から「最初から開始」⇨「スケジュールトリガーフロー」⇨「作成」を押下します。

1.トリガーの設定,2.休日データの取得,3.取得データでループ,4.休日レコードの作成,5.フローを保存し、有効化

1.トリガーの設定

開始ブロック内のスケジュールを設定から開始日と開始時刻をお好みの時間で設定します。※業務が少ない深夜がおすすめです。
頻度もお好みで設定してください。※「毎週」が推奨です。

2. 休日データの取得

  • アクションを追加し、下部にある「HTTPコールアウトを作成」を押下します。
  • 名前に「GetHolidaysData」を入力し、指定ログイン情報に「national_holidays_api」を選択して「次へ」を押下します。
  • 表示ラベルに「GetHolidaysData」、メゾットに「Get」を入力して「次へ」を押下します。
  • 「次へ」を押下します。
  • 「接続」を押下して、「保存」を押下します。
  • 「表示ラベル」と「API参照名」を入力します。

3. 取得データでループ
 
コレクション変数:[2]で取得したものの出力 > 2XX

4. 休日レコードの作成

  1. レコードの項目値の設定方法:手動
  2. オブジェクト:休日
  3. 項目値>Date__c:ループの現在の項目 > z0date
  4. 項目値>Name__c:ループの現在の項目 > name
  5. 一致レコードを確認:有効
  6. 条件の要件:すべての条件に一致
  7. 項目値>日付 / 次の文字列と一致する / ループの現在の項目 > z0date
  8. 1件の一致レコードが存在する場合:一致レコードをスキップ
  9. 複数の一致レコードが存在する場合:すべての一致レコードをスキップ

5. フローを保存し、有効化してください。

ここまでで、休日の情報をSalesforceに取り込むことができました。

使用方法

フロー内に以下の2つを配置することで、祝日であるかの判別が可能です。

  1. 休日を取得
    オブジェクト:休日
    絞り込み項目は検索したい日付を指定してください。
  2. 休日であるかの分岐
    条件:休日を取得 / null / False or True

Contact

お問い合わせ
Salesforce、HubSpot、システム開発など
まずは何でもお気軽にご相談ください。