見出し画像

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

Salesforce Marketing Cloud には Automation Studio という作業を自動化できるツールがあります

例えば、基幹システムから顧客データなどを取り込むインポートの自動化処理を作ったり、配信リストをリフレッシュして、最新のデータが入った状態にするフィルターや SQL の自動化処理を作ったりすることができます。

そして、それらは下記のようなイメージでステップ化できます。これらの作業を 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 つ目のオートメーションのステップのどこかに配置するだけです。そのスクリプトアクティビティが実行されますと、起動させたいオートメーションが起動するようになります

今回は以上です。


次の記事はこちら

前回の記事はこちら

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

いいなと思ったら応援しよう!