Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

CloudPages (Smart Capture) に任意の値を渡す方法

公開日: May 19, 2023
説明
実現するためには大きく分けて 2 つの箇所で AMPscript の実装をする必要があります。

1) CloudPages 側
2) メール側

上記それぞれの実装について詳細説明にて解説します。
解決策
今回は SubscriberKey と EmailAddress を CloudPages 側へ渡し、Smart Capture の非表示属性の項目として設定させ、購読者がフォームを Submit した際に自動的に SubscriberKey と EmailAddress が Data Extension へ格納されるよう実装します。


【CloudPages 側】
(1)
対象 CloudPages 全体のコード表示タブ にて以下のような変数を定義します。
%%[
var @SubscriberKey,@EmailAddress
set @SubscriberKey = RequestParameter('SubscriberKey') 
set @EmailAddress = RequestParameter('EmailAddress') 
]%%

(2)
2-1
Smart Capture ブロックをドラッグ&ドロップします。

2-2
Smart Capture を選択した状態で、Data Extension 内 ID 項目 (Subscriberkey にあたります) 及び、
EmailAddress 項目を非表示属性として設定し、表示属性にてその他の表示したい項目を選択します。
(この時点で非表示属性欄に値をいれる必要はありません)

2-3
Smart Capture を選択した状態で HTML エディター タブへ遷移し、コードの最下部まで遷移すると、

<input name="SubscriberKey" type="hidden" value="">
<input name="EmailAddress" type="hidden" value="">

の記載がありますので、以下の通り書き換えます。

<input name="SubscriberKey" type="hidden" value="%%=v(@SubscriberKey)=%%">
<input name="EmailAddress" type="hidden" value="%%=v(@EmailAddress)=%%">
(3)
保存して Publish します。
 

【メール側】

(1)
メール内に以下のような AMPscript を記載します。

ここでメール受信者の Subscriberkey が @SubscriberKey へ、EmailAddress が @EmailAddress へ格納されます。
%%[
var @SubscriberKey,@EmailAddress
set @SubscriberKey=_subscriberkey /*送信 DE 内の Subscriberkey に該当する項目名でも問題ありません*/
set @EmailAddress=emailaddr /*送信 DE 内のEmailAddress に該当する項目名でも問題ありません*/
]%%

<br> <a href="%%=RedirectTo(CloudPagesURL(CloudPagesID,'SubscriberKey',@SubscriberKey,'EmailAddress',@EmailAddress))=%%">Click Here</a> <br>

※上記 CloudPagesURL() 内の第1引数の CloudPagesID は、
CloudPages > コレクション > 各 アイテムの歯車アイコン > ページ ID より確認可能です。

※上記 CloudPagesURL() 内の第2引数(‘SubscriberKey’)、第3 引数(‘EmailAddress’)は 【CloudPages 側】1. で必要な
パラメータを取得する際に設定するものです。ここでは @SubscriberKey, @EmailAddress 内に定義された値が、【CloudPages 側】1. の RequestParameter('SubscriberKey')、 RequestParameter('EmailAddress')で取得されます。

(2)
上記メールを購読者に対して送信し、メール内のリンクより必要項目を記入後 Submit し、データ格納先 Data Extension 内の SubscriberKey 項目に回答者の Subscriberkey, EmailAddress が格納されていることを確認。

以上で実装は完了です。


上記の方法に加えて、Lookup() 、 LookupRows() や Field() などを組み合わせて任意の値を非表示属性として設定することや、Now() 、SystemDateToLocalDate() を組み合わせることでフォーム Submit 時のローカルタイムゾーンに沿った日時を Data Extension へ格納することもできますので、上記を参考にご要件に沿った実装を行っていただければ幸いです。

【参考】
【注意点】
  • リンクパラメータ経由で CloudPages 側に値を渡す際は、セキュリティの観点より基本的には平文な状態のパラメータは使用せず、CloudPagesURL() などでパラメータを暗号化した上で必要な値を CloudPages 側へ渡すようお願いいたします。
  • エラーハンドリングの実装 (パラメータが付与されていない URL の場合にエラーを表示させる等) についてはここでは触れておりませんので、こちらも必要に応じてお客様にてご検討いただけますと幸いです。
  • この手順は必ずしもお客様のご要件に沿うものではございませんので、あくまで実装の参考例としてご活用ください。
ナレッジ記事番号

000393063

 
読み込み中
Salesforce Help | Article