Skip to content

Instantly share code, notes, and snippets.

@MyCueCards
MyCueCards / CloudPageURL-Parameters
Created April 27, 2024 15:41
For instances where the parameter is not generating correctly, add CONCAT and SUBSTRING to alter.
/*
One use, if your system snippet is directed to a custom cloud page, use the below instead
of [%%=RedirectTo(CloudPagesURL(##))=%%]. Without, there may be an error when using
parameter manager. This will avoid generating two question marks in the URL.
*/
%%=RedirectTo(Concat(CloudPagesURL(##),SUBSTRING('?',1,0)))=%%
@MyCueCards
MyCueCards / Content-Security-Policy header.ssjs
Created July 28, 2023 15:41
Content-Security-Policy (CSP) header examples for Salesforce Marketing Cloud CloudPages.
// SFMC source doc: https://help.salesforce.com/s/articleView?id=sf.mc_cp_cloud_pages_security_best_practices.htm&type=5
// CSP page for other examples: https://content-security-policy.com/
// standard example from doc
<script runat=server>
Platform.Response.SetResponseHeader("Strict-Transport-Security","max-age=200");
Platform.Response.SetResponseHeader("X-XSS-Protection","1; mode=block");
Platform.Response.SetResponseHeader("X-Frame-Options","Deny");
Platform.Response.SetResponseHeader("X-Content-Type-Options","nosniff");
Platform.Response.SetResponseHeader("Referrer-Policy","strict-origin-when-cross-origin");
@MyCueCards
MyCueCards / createdManyDeWithSsjs.ssjs
Created July 18, 2023 23:57
Populate with ampscript then run with ssjs activity. Create many data extensions with SSJS and ampscript
// populate with ampscript
%%[
/* Replace 'thisIsTheSourceDe' with the actual name of your data extension */
var @dataExtensionName
set @dataExtensionName = "thisIsTheSourceDe"
/* Replace 'myCustomerKey' with the actual field name you want to populate */
var @fieldName
set @fieldName = "myCustomerKey"
@MyCueCards
MyCueCards / SSJS Add Fields.ssjs
Created July 18, 2023 05:08
Adds multiple fields to a DE using SSJS. Loops through a DE to get the customer key.
// Name AND customer key of DE are: thisIsTheSourceDe
// Field in the above DE is: myCustomerKey (text)
// https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssjs_dataExtensionFieldsAdd.html
<script runat="server">
Platform.Load("core", "1");
var api = new Script.Util.WSProxy();
try {
@MyCueCards
MyCueCards / debugAmpscript.ssjs
Created August 22, 2022 00:36
Using SSJS to debug AMPscript. Will produce text to attempt to determine 500 error on CloudPage.
// Originally found: https://salesforce.stackexchange.com/questions/271607/createsalesforceobject-ampscript
<script runat="server">
Platform.Load("Core","1.1.1");
try{
</script>
%%[ YOUR AMPSCRIPT CODE ]%%
<script runat="server">
@MyCueCards
MyCueCards / SelectStateAndDisabled.ampscript
Created November 17, 2021 19:57
DE has states listed by postal abbr, but selection list does not. Pre-populate state in selection and disable selection list.
%%[
SET @finalState = deStateValue
]%%
<form id="SubmitRegistration" action="%%=CloudPagesURL('111')=%%" method="post">
<select class="inputBox state" id="" name="formState" title="State" %%=IIF(EMPTY(@finalState),'','disabled')=%%>
<option value="">--</option>
<option value="Alabama" %%=IIF(@finalState == 'AL','Selected','')=%%>Alabama</option>
<option value="Alaska" %%=IIF(@finalState == 'AK','Selected','')=%%>Alaska</option>
@MyCueCards
MyCueCards / UpdateCRMObject.ssjs
Created October 19, 2021 15:29
Update the Salesforce CRM Contact Object with SSJS. Looping through DE with SSJS.
<script runat="server">
Platform.Load("Core","1.1.1");
var records = DataExtension.Init("DeNameToGetValues");
var data = records.Rows.Retrieve({Property:"run",SimpleOperator:"equals",Value:1}); // DE should have a field called 'run' that is boolean to filter.
var datalength = data.length;
for (var i = 0 ; i < data.length ; i ++) {
var sf_fieldUpdateString = [];
sf_fieldUpdateString.push(data[i].SubscriberKey);
@MyCueCards
MyCueCards / AMPScript Encryption (Simple).html
Created August 9, 2021 16:51
Basic example of AMPScript SHA256() function, returning SHA256 hash tag based on the string value
%%[
SET @CheckForEmail = IsEmailAddress(_SubscriberKey)
IF @CheckForEmail == 'false' THEN
SET @FinalSubscriberKey = _SubscriberKey
ELSE
SET @FinalSubscriberKey = SHA256(_SubscriberKey,'UTF-16')
ENDIF
SET @Link = CONCAT('https://[DomainStuffHere]?mcsubkey=', @FinalSubscriberKey)
@MyCueCards
MyCueCards / CheckboxesChangeValue.html
Last active May 23, 2021 01:59
toggles checkboxes on and off with jquery. If one check box changes (mainsub), then the other checkboxes (interest) change.
<!-- toggles checkboxes on and off with jquery. If one check box changes (mainsub), then the other checkboxes (interest) change.
<html>
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<body>
<input type="checkbox" class="interest" />
<input type="checkbox" class="interest" />
<input type="checkbox" class="interest" />
<input type="checkbox" class="mainsub" />
<span id="message">this is a message!</span>
@MyCueCards
MyCueCards / StartAnAutomation.ssjs
Created July 15, 2020 15:48
In Salesforce Marketing Cloud Automation Studio, use a script activity to start another automation.
<script runat="server">
Platform.Load('core', '1');
CustomProgram = {
Init: function(ObjectID,MID) {
var obj = {};
obj.Perform = function() {
try {
var program = Platform.Function.CreateObject("Program");