We are currently evaluating if we should use the default MC subscription/profile center or develop a custom branded one.

Can anyone share their experience with building it on their own?

What are the pros/cons and how much effort does it imply?


For me, building a basic custom preference/subscription center that replicates the existing functionality generally takes 30-50 hours of development time, depending on how much front-end work needs to be done.

I start with this boilerplate most of the time.

A few tips:

  • Understand the SFMC data model and how subscriber statuses are handled for your account type (global, business unit, publication). Things are handled differently in an Enterprise 1.0 account than they are in an Enterprise 2.0 account.
  • Use Server-Side JavaScript to leverage arrays and functions. The coding can be done entirely in AMPScript, but it's easier to create object-oriented code in SSJS.
  • Utilize the SOAP examples when structuring your API calls
  • Log unsub events instead of changing the status to unsubscribed. You should opt subscribers down instead of out if the sends are associated with a List or Publication.
  • Utilize the micrositeURL() or cloudPagesURL() function to link to new profile center pages in your email footers. If your preference center serves multiple business units, you can use it to pass the MID (and anything else).
  • I normally build preference centers in 3 pages:

    1. Subscription Center Page - subscribers opt-in and out of lists or publications marked as Public.
    2. Profile Center Page - subscribers update their information (email address, name, zip code, etc).
    3. One-Click Unsubscribe Page - subscribers are immediately unsubscribed from the publication used as the send audience in your SFMC account (or globally if it's not specified) and

Each page generally posts to itself and displays a thank you or error message depending on the result of the action.

  • I Looked at the boilerplate JS code and I uploaded it in a html block in cloud pages. The code still shows in the background even after publishing. Am I doing something wrong ? Also does it handle subscriptions or only profile management ? I think we can modify it for preferences too but do you have sample code for subscription management which can be re-purposed ?
    – Girish
    Dec 31 '19 at 22:23

This greatly depends on your needs. If you just want to integrate the profile, preference and subscription center in your own website (as the customization options in the default version are pretty restricted), the main development effort is for the frontend as your backend then just needs to interact with the API and you can use the same data structures as the default PPSC does. In that case you can even implement it using microsites and don't have to write and deploy your own backend, as you can do all the work using AMPscript/SSJS.

However, if you need to add additional functionality such as frequency preferences, hierarchical subscription options that can be configured from within marketing cloud and so on, you will need to also set up the data structures in marketing cloud and build your own logic, etc. This requires quite some time planning and implementing everything.


As I did this in 7 days after that I also post the whole code on GitHub Gist you can take it as guidance from that & the Link is :-


I also suggest to take the guidance from below blog link as well:-

Marketing Cloud : Custom Preference/Profile Center By Vijaya Sankar N

I was used SSJS(Server-Side JavaScript) to update in All Subscriber/My/Publication List & AMPScript to get the value that is used in form on onload of page as pre-populated values.

And I was use CloudPagesUrl(Page Id) in Email-->Content Builder-->Template Based Email Message.

Profile Centre

Subscription Centre

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.