【第80回】 Salesforce Marketing Cloud の連絡先の削除の自動化の方法
Salesforce Marketing Cloud では 従量課金となるものがいくつかあり、代表的なものは ①送信するメッセージごとのスーパーメッセージ数と、②アカウント内で管理する連絡先数があります。つまり、メールなどを送れば送るだけコストがかかりますし、管理する連絡先数が多くなれば多くなるほどコストがかかります。
例えば、運用開始当初は 100 万人分の連絡先数になると想定していましたが実際に運用を開始してみたら連絡先が 110 万人になってしまった場合は、購入済み連絡先数をオーバーしてしまったことで、新たに 10 万人分の連絡先を購入するか、すでにオーバーしている 10 万人分の連絡先を削除しなければなりません。
Salesforce Marketing Cloud を運用している人であれば、超過した連絡先を手動で削除する方法は知っていると思います。送信可能データエクステンションに削除したい連絡先を格納して、Contact Builder でそのデータエクステンションを選択して削除のボタンを押すだけですね。以前にも連絡先の削除に関しては記事にしました。
方針として連絡先は慎重に削除したい、または削除するのが頻繁でないということであれば、手動でまったく問題ないと思います。ただし、明らかに不要なレコードが頻繁に発生する場合は自動化もオススメします。本日はこの自動化の方法を記事にしてみたいと思います。
※クライアントベースとは、下の図の箇所に表示されている「https://」と「.auth.~」の間のコードになります。
それでは手順です。Automation Studio のスクリプトアクティビティで、以下のスクリプトを構成してください。
<script runat="server">
Platform.Load('core', '1')
var payload, endpoint, response;
var contactDeletionDEKey = '******************'; // コンタクト削除DEの外部キー
var clientID = '******************'; // クライアントID
var clientSecret = '******************'; // クライアントシークレット
var clientBase = '******************'; // クライアントベース
var contentType = 'application/json';
var debugging = false;
function debugValue(description, value) {
Write(description + ': ' + (typeof value == 'object' ? Stringify(value) : value) + '<br><br>');
};
endpoint = 'https://' + clientBase + '.auth.marketingcloudapis.com/v2/token';
payload = {
client_id: clientID,
client_secret: clientSecret,
grant_type: 'client_credentials'
};
if (debugging) debugValue('Payload', payload);
try {
response = HTTP.Post(endpoint, contentType, Stringify(payload));
}
catch (error) {
handleError(error);
}
var accessToken = Platform.Function.ParseJSON(response['Response'][0]).access_token;
if (debugging) debugValue('AccessToken', accessToken);
endpoint = 'https://' + clientBase + '.rest.marketingcloudapis.com/contacts/v1/contacts/actions/delete?type=listReference';
payload = {
deleteOperationType: 'ContactAndAttributes',
targetList: {
listType: {
listTypeID: 3 }
,
listKey: contactDeletionDEKey
}
,
deleteListWhenCompleted: false,
deleteListContentsWhenCompleted: true
};
var headerNames = ['Authorization'];
var headerValues = ['Bearer ' + accessToken];
try {
response = HTTP.Post(endpoint, contentType, Stringify(payload), headerNames, headerValues);
if (debugging) debugValue('Response', response);
}
catch (error) {
handleError(error);
}
</script>
「***」の部分に必要な情報をそれぞれ代入しましたら、このスクリプトアクティビティを Automation Studio のスケジュールで定期実行してください。下の図の通り、削除用 DE の外部キーはプロパティー内にあります。
いかがでしたでしょうか?
一点、注意点があります。手動の削除と異なり、事前に削除される連絡先数を確認することができなくなるため、使用する場合は、削除対象をデータエクステンションに格納する条件について最大限の注意して下さい。
すでに Marketing Cloud を運用されている皆さんは分かっているとは思いますが、一度連絡先情報を削除してしまった場合、いかなる手段を以っても、その削除された連絡先情報を元に戻すことはできません。入念なテストを行い、自己責任で使用の判断をお願いします。
今回は以上です。
次の記事はこちら
前回の記事はこちら
私の note のトップページはこちら
この記事が気に入ったらサポートをしてみませんか?