[SalesForce] Preserve content block CSS for non-technical end-user? (Marketing Cloud)

I've set up templates in Marketing Cloud with content blocks and they all work fine. The problem is that we have a lot of end-users (that will do customisations and sending) who are non-marketing and non-technical.

From what I can tell, "Free Form" seems to be the only option for them to NOT see HTML when they are to edit.

If one of them deletes all the content (or first line) in a Content Area the HTML attribute along with the CSS will usually also be deleted. Without this inline CSS the compatibility and this branding is lost.

I've also discovered adding a Content Area will add 2 nested tables to the final output so putting the styling outside of it doesn't work.

Is there any way to overcome this? Such as removing the 2 nested tables? It would ideally be like how the Campaign Monitor template system works in that it is quite "fool proof" for any person to use once the template is set up. All branding guidelines are adhered to since they can't edit it or break it.

Thanks

Best Answer

Welcome to SFSE, Wade.

The best solution I've seen for separating/protecting email code and CSS leverages Content Areas that contain AMPScript variables.

Workflow

  1. Create a new email based on the template
  2. Retrieve a Content Content Area, modify the AMPScript parameters to suit
  3. Send Preview

Here are the simplified components:

Template (contains base header, content areas and footer)

<html>
<head>
 <style>
   body {margin:0; padding:0;}
 </style>
</head>
<body style="font-family:sans-serif">
<table cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="640" align="center">

            <table cellspacing="0" cellpadding="0">
                <tr>
                    <td>
                        <img src="http://placehold.it/640x75/&text=Banner" width="640" alt="Banner"/>
                    </td>
                </tr>
                <tr>
                    <td>
                      <custom type="content" name="contentarea1">
                    </td>
                </tr>
                <tr>
                    <td>
                      <custom type="content" name="contentarea2">
                    </td>
                </tr>                
            </table>
        </td>
    </tr>
</table>
<p>This email was sent by:
<b>%%Member_Busname%%</b>
<br>%%Member_Addr%%
<br>%%Member_City%%, %%Member_State%%, %%Member_PostalCode%%, %%Member_Country%%</p>
<custom name="opencounter" type="tracking">
</body>
</html>

Content Content Areas (edited in workflow)

%%[
var @ca1_image, @ca1_alt, @ca1_copyColor, @ca1_copy, @ca1_copySize, @ca1_url

/* edit these values */
set @ca1_background = "#d72a47"
set @ca1_image = "http://placehold.it/200x200/&text=Placeholder"
set @ca1_alt = "ALT TEXT"
set @ca1_copyColor = "#ffffff;"
set @ca1_copy = "COPY GOES HERE"
set @ca1_copySize = "18px"
set @ca1_url = "#"
/* do not edit anything below here */

]%%
%%=ContentAreaByName("Shared Items\Shared Contents\Template\Designs\ca1")=%%

Design Content Areas (hidden from normal workflow)

<table cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="640" align="center" style="background: %%=redirectto(@ca1_background)=%%;">
            <a href="%%=redirectto(@ca1_url)=%%" alias="ca1">
                <img src="%%=v(@ca1_image)=%%" width="210" alt="%%=v(@ca1_alt)=%%" />
            </a>
            <table cellspacing="0" cellpadding="0">
                <tr>
                    <td style="color:%%=v(@ca1_copyColor)=%%; font-size:%%=v(@ca1_copySize)=%%;">
                        %%=v(@ca1_copy)=%%
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

While this will protect the code, I wouldn't shy away from taking the opportunity to invest in some HTML & CSS education with your marketing folks. There's not a simple, out-of-the-box way to lock down an email like you're describing. Even some basic HTML/CSS knowledge goes along way.

And, stay away from the WYSIWYG editor completely. Repeated updates to code with the WYSYWYG editor eventually result in Microsoft Word-like HTML, which is never good -- especially in an email.

If you need a good starter template, I'd recommend the Responsive Email Patterns by Brian Graves.

Related Topic