【第80回】 Marketing Cloud の連絡先の削除を自動化する方法
Salesforce Marketing Cloud では 従量課金となるものがいくつかあり、代表的なものは ①送信するメッセージごとのスーパーメッセージ数と、②アカウント内で管理する連絡先数があります。つまり、メールなどを送れば送るだけコストがかかりますし、管理する連絡先数が多くなれば多くなるほどコストがかかります。
例えば、運用開始当初は 100 万人分の連絡先数になると想定していましたが実際に運用を開始してみたら連絡先が 120 万人になってしまった場合は、購入済み連絡先数をオーバーしてしまったことで、新たに 20 万人分の連絡先を購入するか、すでにオーバーしている 20 万人分の連絡先を削除しなければなりません。
Salesforce Marketing Cloud をある程度、運用している方であれば、超過した連絡先を手動で削除する方法は知っていると思います。
送信可能データエクステンションに削除したい連絡先を格納して、Contact Builder の削除環境で、送信可能データエクステンションを選択して「削除」のボタンをクリックするだけですね。
以前に、手動による連絡先の削除に関しては記事にしました。
削除の方針として「連絡先を慎重に削除したい」または「削除するのが頻繁でない」ということであれば、手動による削除でまったく問題ないと思います。ただし、明らかに不要なレコードが頻繁に発生する場合は自動化も試してみてはいかがでしょうか。
本日は、この自動化の方法を記事にしてみたいと思います。
※クライアントベースとは、下の図の箇所に表示されている「https://」と「.auth」の間のコードになります。
連絡先の削除を自動化する方法
1. それでは 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>
2. 「*****」の部分に必要な情報をそれぞれ挿入しましたら、このスクリプトアクティビティを Automation Studio で定期的に実行してください。
削除用 DE の外部キーは、下記の通り、プロパティーにあります。
以上です。
いかがでしたでしょうか。
この連絡先の削除については、Trailhead にもコードの提供などがあり、意外と充実していますので、そちらも確認してみて下さい。
また一点、注意点があります。
手動の削除と異なり、事前に削除される連絡先数を確認することができなくなるため、使用する際は、削除対象を取得する条件について最大限の確認をして下さい。
すでに Marketing Cloud を運用されている皆さんは分かっていると思いますが、一度連絡先情報を削除してしまった場合、いかなる手段を以っても、その削除された連絡先情報を元に戻すことはできません。入念なテストを行い、自己責任で使用の判断をお願いします。
今回は以上です。
次の記事はこちら
前回の記事はこちら
私の note のトップページはこちら
この記事が気に入ったらサポートをしてみませんか?