Skip to content

Instantly share code, notes, and snippets.

@camrobert
Created September 7, 2023 09:34
Show Gist options
  • Save camrobert/e7db1dea9c2ad985cd39b6b516e4d38f to your computer and use it in GitHub Desktop.
Save camrobert/e7db1dea9c2ad985cd39b6b516e4d38f to your computer and use it in GitHub Desktop.
%%[
SET @fname = RequestParameter('fname')
SET @lname = RequestParameter('lname')
SET @email = RequestParameter('email')
IF NOT EMPTY(RequestParameter('pref1')) THEN
SET @Cats = "true"
ELSE
SET @Cats = "false"
ENDIF
IF NOT EMPTY(RequestParameter('pref2')) THEN
SET @Dogs = "true"
ELSE
SET @Dogs = "false"
ENDIF
SET @showform = 1
IF NOT EMPTY(@fname) AND NOT EMPTY(@lname) AND NOT EMPTY(@email) THEN
/*success*/
SET @message = "Thanks, you are now subscribed!"
SET @showform = 0
SET @subkey = GUID()
]%%
<script runat="server">
Platform.Load("Core","1");
var payload = {
"grant_type": "client_credentials",
"client_id": "xxxxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxx"
};
var authurl = "https://xxxxxxxxxxxxxxx.auth.marketingcloudapis.com/v2/token";
var result = HTTP.Post(authurl, 'application/json', Stringify(payload));
if (result.StatusCode == 200) {
var responseJson = Platform.Function.ParseJSON(result.Response[0]);
var accessToken = responseJson.access_token;
var restUrl = responseJson.rest_instance_url;
} else {
throw new Error("Error fetching access token");
}
Write(result.Response[0]); //payload response
Write(accessToken); //token
var subkey = Variable.GetValue("@subkey");
var email = Variable.GetValue("@email");
var fname = Variable.GetValue("@fname");
var lname = Variable.GetValue("@lname");
var Cats = Variable.GetValue("@Cats");
var Dogs = Variable.GetValue("@Dogs");
var payloada = {
"ContactKey": subkey,
"EventDefinitionKey":"APIEvent-xxxxxxxxxxxxxxxxxxxxxxxx",
"Data": {
"SubscriberKey":subkey,
"EmailAddress":email,
"FirstName":fname,
"LastName":lname,
"Cats":Cats,
"Dogs":Dogs }
};
var headerNames = ["Authorization"];
var headerValues = ["Bearer "+accessToken];
var results = HTTP.Post(restUrl+'interaction/v1/events', 'application/json', Stringify(payloada), headerNames, headerValues);
Write(results.StatusCode + '<br>');
Write(results.Response);
</script>
%%[
/*
SET @records = UpsertData('Welcome Journey DE',1,'SubscriberKey',GUID(),'EmailAddress',@email,'FirstName',@fname,'LastName',@lname,'Cats',@Cats,'Dogs',@Dogs)
*/
ELSE
/*fail*/
SET @message = "Opps, there was an error!"
ENDIF
]%%
Output Values:<br>
fname = %%=v(@fname)=%%<br>
lname = %%=v(@lname)=%%<br>
email = %%=v(@email)=%%<br>
Cats = %%=v(@Cats)=%%<br>
Dogs = %%=v(@Dogs)=%%<br>
%%[
IF @showform == 1 THEN
]%%
<form method="post">
<label for="fname">First name: </label><input type="text" id="fname" name="fname" value="%%=v(@fname)=%%"><br>
<label for="lname">Last name: </label><input type="text" id="lname" name="lname" value="%%=v(@lname)=%%"><br>
<label for="email">Email: </label><input type="text" id="email" name="email" value="%%=v(@email)=%%"><br>
<input type="checkbox" id="pref1" name="pref1" value="Cats"> <label for="pref1"> I like cats</label><br>
<input type="checkbox" id="pref2" name="pref2" value="Dogs"> <label for="pref2"> I like dogs</label><br>
<input type="submit">
</form>
%%[
ENDIF
]%%
<br><br>
%%=v(@message)=%%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment