見出し画像

【第21回】 Automation Studio で別のオートメーションを起動させる方法

Salesforce Marketing Cloud には Automation Studio という、ある作業を自動で定期的に動かすことができるツールが標準装備されています。

この使用例としては、基幹システムから、日次で「顧客データや購買データを取り込むインポート処理」を作ったり、毎次で「配信リストをリフレッシュして、最新のデータが入った状態の配信リストに変更」したり、月次で「離反した顧客宛にリマインドメールを配信」したりすることができます。

このオートメーションは、作業者ベースで考える「ある一連となる固まり」として作成することが多く、それをステップという形で設定し、複数の作業を一纏めにすることがあります。

下記のようなイメージです。これらの作業を Salesforce Marketing Cloud では、簡単にステップ化することができるんですね。

Automation Studio のオートメーションのイメージ
手順①  データをインポートする(Import Activity)
手順②  ①のデータを基に、配信リストをリフレッシュする(Filter Activity)
手順③  ②の配信リストを使って、メール配信する(Send Mail Activity)


但し、残念ながら、あるオートメーションが終わった後に、別のオートメーションを起動させるという機能は、標準では備わっていないんですね。これを言い換えると、オートメーション間のステップのようなものは標準では存在しないと言うことになります。

もちろん、1 つのオートメーション内で、ひたすら何十ステップも繋げて、巨大なオートメーションを作ることもできるのですが、作業上長すぎるから、どこかのステップで切っておきたいという場面もあるかと思います。そして、そのステップを切った時に、前のオートメーションが終わったら、間髪入れずに、次のオートメーションを起動させたいと言うこともあるでしょう。

今回は、それを解決する「別のオートメーションを起動させる方法」をお伝えします。方法は非常に簡単で、以下を Automation Studio のスクリプトアクティビティで構成して下さい。

<script runat="server">
  Platform.Load("core", "1");
  
  var prox = new Script.Util.WSProxy();
  prox.setClientId({ "ID": "xxxxxxxxx" }); // あなたの企業の MID を入力
  
  var cols = ["Name", "ProgramID", "IsActive"];
  
  var filter = {
    Property: "Name",
    SimpleOperator: "equals",
    Value: "○○○○○" // 起動させたいオートメーションの名前を入力
  };
  
  var desc = prox.retrieve("Automation", cols, filter);
  var props = { ObjectID: desc.Results[0].ObjectID };
  var action = "start";
  var opts = {};
  
  var res = prox.performItem("Automation", props, action, opts);
  prox.resetClientIds();
</script>

以下が設定時の注意点となります。

■ オートメーション名は、英語でも日本語でも問題ありません。
■ MID は企業コードで 9 桁の数字になります。
■ 連動させる側のオートメーションの「開始ソース」は「スケジュール」を選択してください。「ファイルドロップ」の場合は、起動しません。
■ 連動させる側のオートメーションの「開始ソース」の構成は不要ですが「スケジュール」を未構成のまま配置して下さい。配置後は、非アクティブのまま、オートメーションを「保存」しておいてください。

スクリプトアクティビティの設定箇所の例を挙げるのであれば、1 つ目のオートメーションの最後のステップに、スクリプトアクティビティで設定します。この 1 つ目のオートメーションがすべて終わった時に、2 つ目のオートメーションが起動するようになります。お試し下さい。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら

この記事が気に入ったらサポートをしてみませんか?