As a Salesforce Marketing Cloud developer, you have certainly been caught up in this loop: Develop the CloudPage > Save and Publish > Wait 2, 3 or even 5 minutes > Check the results. Moreover, if you are not debugging correctly, you can lose a lot of time between looking for the problem and waiting for your updates to propagate on your CloudPage. I must take this opportunity to invite you to check out Zuzanna’s article about debugging AMPScript in CloudPages, it is very helpful and well explained.
In this article, we will be covering two ways of testing your code on a CloudPage without having to wait for the propagation of changes every time we save and publish our work. These two ways are probably well know by experimented Salesforce Marketing Cloud developers, or by those who were fortunate enough to stumble upon some answers regarding this problem on Salesforce Stack Exchange.
Create an external web page
If you already have a web server, that is great. You can use it to create your web pages. However, if you are on a budget, or you just do not want to spend money on a hosting service, don’t worry, I have done the heavy lifting for you.
We are going to use awardspace.com, an ad-free hosting which offers:
- Free subdomain
- 1GB disk space
- Up to 4 websites (websites and not pages)
Those features are more than enough for our tests. Especially because we can use one or two pages only and overwrite their content every time we need to develop a new CloudPage.
Step 1: Create a freehosting account
Go to awardspace.com and click on FreeHosting on the homepage:
Create an account using one of the available options:
Step 2: Creating a free subdomain
Go to Hosting Tools > Domain Manager. Select “Create a free subdomain”, fill in the subdomain’s name, and click Create:
Step 3: Creating the web page
Go to Hosting Tools > File Manager. Double click on your subdomain’s folder:
Click on Create and check Create file. Give it a name like
sfmc.html for example.
Step 4: add content and access the web page
Congrats, we have successfully created the web page. Double click on it to add the content. Click save when done editing The web page’s URL is as shown below without the
Call the page from within Salesforce Marketing Cloud
We are going to use two AMPScript functions to access our external page from within our CloudPage.
HTTPGet: Returns the content from our external web page. This function will only take our web page URL as a parameter.
TreatAsContent: Treats the content returned by the
HTTPGetfunction as it came from a content area. This way, we make sure the AMPScript code in our web page gets evaluated.
For example, our CloudPage on Marketing Cloud should contain something like: [see code snippet]
Each time we need to update the code, we just have to update it on the external web page. No need to save and publish our CloudPage as its content will remain the same.
This way, we are avoiding the wait time between the publishing and the propagation of our changes on the servers when using a traditional development method.
Content Block By Key / Name / Id
The second method is using one of the three functions above. These functions return the content stored in the specified Content Block.
First, we will start by creating our Content Block. We need to go to Content Builder > Create > Content Blocks > Code Snippet.
I highly suggest using a Code Snippet instead of an HTML Content Block in order to avoid Content Builder’s editor from truncating parts of our HTML code.
Once we have created our Content Block and added our content in it. Time for getting it’s Key, Id or Name depending on which function we are using. We can find it by clicking on the drop-down icon and select Properties.
Now, we can head in to our CloudPage and add the code below: [see code snippet]
It pretty simple and straightforward. The code uses ContentBlockByKey to get our Content Block’s content. This is a onetime operation. Every time we need to update our code, we will only have to update it on the Content Block. This way, the updates are instantly live and we do not have to wait several minutes for the propagation on the servers.
Once we are done testing, we can copy the code on the external page or on the Content Block to our main CloudPage in Marketing Cloud and publish it.