The Unofficial Guide To Fixing A Botched Trailhead Account Merge

We’ve all been there. You belong to many orgs – Developer Edition, your employers, perhaps orgs for a few different clients or projects. You log into trailhead and you’re presented with a screen to merge your Trailhead accounts.

N.B. If you have suffered headaches from Trailhead account merges going wrong, Please be sure to tweet this article directly to @trailhead asking them to fix this process!

The explanation describes a simple and innocent process designed to make your Trailhead experience much easier:

Looks like you already have a Trailhead account linked to that email address. We can merge them together for you.

Account merges can’t be undone, so read the boring but important details before continuing.

– Badges, points, favorites, hands-on orgs, and trailmixes will be merged to one account.

– Duplicates are excluded from the merge.

– All of your connected logins will be merged, so you’ll be able to log in with any of them to access your Trailhead activity.

However the reality is this can create quite a large headache for you. There is no mention that your primary email address may be changed, potentially resulting in the following:

  • Certifications and Superbadges have disappeared;
  • Personalized URL has been reset;
  • Avatar has vanished;
  • Your Followers, Following, Groups, favourite AppExchange packages lists have disappeared

How can we fix this? 😱

The first step is take a deep breath. This information can be recovered! I’m going to walk you through the steps I took to straighten everything out after creating quite a mess in my own Trailhead account.

Consider a scenario with these accounts:

MyPreferredTrailheadEmail@gmail.com,
MyPartnerEmail@partner.com,
MyClientEmail@client.com.

The first thing to understand is the merging process changed your primary email address from MyPreferredTrailheadEmail to one of the others, for example, MyPartnerEmail. Your certifications, avatar, etc are still tied to your MyPreferredTrailheadEmail. However, when you log into Trailhead, your profile is searching for certifications related to your new primary email address, MyPartnerEmail.

To fix this, we need to reset our Primary Email Address to the email associated with our certs, superbadges, etc.

  1. Log into Trailhead with the Email option using your new primary email MyPartnerEmail@partner.com.
  2. Click your profile avatar (top right) and choose Settings. Disconnect Salesforce usernames, Google Identity, Email Identity, LinkedIn Identity… disconnect EVERY identity associated with your email address MyPreferredTrailheadEmail@gmail.com.
  3. Open an Incognito browser tab. Go to Trailhead, and click Sign up. Choose the Email option, and sign up with MyPreferredTrailheadEmail@gmail.com.
  4. In the newly created account, click your profile avatar and choose Settings. In the Social Accounts section, connect your Email identities for MyPartnerEmail and MyClientEmail.

This process will trigger an account merge and all your badges, etc will be returned to your desired email address. Now you’ve restored your full Trailblazer profile, and your primary email address is exactly what it should be: MyPreferredTrailheadEmail@gmail.com.

I think the Account merge feature is a great idea that has been poorly implemented, making it too easy to cause breaking changes to your Trailblazer account.

If this blog helped and you agree that Trailhead needs to reengineer this entire process, please Like and Share this article, Tweet it directly to @trailhead, and be sure to copy me @McGuireTO so I can follow you and make sure your get your Profile restored. Trailhead will not prioritize fixing this broken process if they do not hear directly from us!

And if you feel so inclined, join me on the Trail!

Introducing Salesforce User Experience Designer Certification

Last week, Salesforce surprised us with news of an exciting new certification: Salesforce Certified User Experience (UX) Designer. As part of this announcement we were also introduced to a new Designer career path.

If you’re anything like me, you’ve welcomed this news with open arms, and not because we’re both designers. In fact, I’m the furthest thing from a designer! I can get by, but I am frequently in awe of colleagues who effortlessly create sleek, intuitive user experiences across every project they work on.

Salesforce has many things going for it but the interface has long been a pain-point for users who don’t like it, and developers who want more control over it. A couple of years ago, the introduction of Lightning Web Components gave us the power to harness modern tools and web standards to control Salesforce UI in ways we never could before. This new designation aims to recognize those who command mastery of that UI and the greater User Experience as a whole.

The history of salesforce feature releases is long and storied, however UI changes have been quite underwhelming to say the least and I don’t think this certification can be fully appreciated without knowing the history of the various UI frameworks Salesforce has unveiled.

History of Salesforce UI

Perhaps you’ve been around the ecosystem long enough to remember when Classic UI was new, and developers were eager to diverge away from S-controls and towards Visualforce pages, an XML-like syntactical language used to generate HTML pages. This was a significant development at the time, giving developers the power to fully customize the look and feel of applications utilizing third-party JavaScript libraries such as jQuery. It took quite a while to develop, and reminded me of my old days as a ColdFusion web developer, but we had good control of the UI as long as we had the patience required to build anything.

LWC changed the game by leveraging modern development tools to create powerful UI

In 2015, a new framework was released in beta for building something called Lightning Components on the Aura Framework (later renamed as Aura Components). These components were a step forward but they never felt ready for prime time to me, and I held on to VisualForce and jQuery as my go-to tools for creating sleek interfaces. My biggest pet peeve was these components could not be altered to allow for customized user experiences. I kept an eye on the technology but was never fully sold on leaving VisualForce. Slowly, Aura Components become more and more feature rich and I started to think there might actually be a future for these things after all.

That all changed in December 2018 with the announcement of Lightning Web Components. LWC used standard tools and aligned with modern web standards, using code that natively runs on browsers. This freedom from the Aura framework allowed much faster performance compared to Aura Components. And, LWC are fully customizable which made it possible, finally, to design a user experience.

Why this certification matters

To fully appreciate why this certification matters, we must first understand why User Experience matters (ok, I admit this line sounded better in my head). At the highest level, User Experience is how your users feel when they interact with your application. It attempts to build brand loyalty by fulfilling the user’s needs. I don’t want to stray too far off-topic so I’ll leave it there for now, but for a more in-depth writeup on the subject I’d recommend checking out this article on Workshopper.

If Salesforce created the JavaScript Developer I Certification to set apart developers who are skilled in utilizing modern development tools to customize the Salesforce user interface, then this certification takes it a step further to identify devs who can offer an enriching journey atop that UI. The preparation trail for Javascript Developer I taught the coding skills necessary to develop powerful LWCs but it stopped short of teaching how to maintain a consistent look and experience across your components and the entire Lightning experience.

That is where this new certification comes in. With the second heaviest weighted section dedicated to the mastery of the Salesforce Lightning Design System (SLDS), developers and solution architects will be able to really impress users with their custom LWC components, not just for their functionality but also for their look-and-feel.

To take a personal detour, I recently accepted a contract with Robots & Pencils. There are a few things that really drew me to this company. First, their Salesforce practice is led by none other than Daniel Peter, who needs no introduction as one of the most well-known developers and thought-leaders in the ecosystem. The second reason is the hidden meaning behind their funny name. Robots & Pencils is an effort to blend the most knowledgeable technical experts (the Robots) with the most kick-ass User Interface and User Experience designers in the world (the Pencils). It quickly became clear to me this company embodied the exact formula necessary to secure the most exciting client projects, and I wanted to be a part of that. The new User Experience Designer certification attracts me for the same reasons.

Diving into the details

And that brings me to the section listing for this certification:

  • Discovery: 13%
  • UX Fundamentals: 16%
  • Human-Centered Design: 12%
  • Declarative Design: 27%
  • Testing: 11%
  • Salesforce Lightning Design System (SLDS): 21%

Just as Robots & Pencils blends the technologies with the humanities, this certification strives to do the same while walking participants through the User Experience Design Process illustrated above. In addition to SLDS, I’m particularly excited for the UX Fundamentals and Human-Centered Design sections, although the entire exam looks full of very interesting content.

Who is this certification for?

This certification is not just for Designers! In my opinion, every Career Path in the Salesforce ecosystem will benefit from this new certification. It’s a necessity for the modern Developer, the Architect, and the Administrator. I would highly recommend it to the Consultant. I would even recommend this to off-platform Designers looking to boost their credentials with a designation from a very reputable source.

If you’re as excited as I am for this new certification, or if you’re still not sure if this designation is right for you, check out the official Exam Guide to better understand the target audience and see the objective breakdown for each section you can expect to be tested on.

You will also want to complete the Prepare for your UX Designer Credential Trailmix put together by Salesforce so you can be confident heading into the exam to secure what I believe will soon become be one of the most sought-after certifications on job postings.

Related Resources:

  • Salesforce’s announcement on Medium
  • Don Robin’s Pluralsight course Play by Play: Lightning UX Design Process for Salesforce Developers
  • Trailhead module: Salesforce User Experience Designer Certification Prep
  • Trailblazer Community Design Group

Do you plan to write this exam? Let me know what you think in the comments below.

Orphaned CronJobDetail records breaking Scheduled Jobs in Salesforce Summer ’17

For the second year in a row, we’re lucky to be among the first to discover a problem with the summer release of Salesforce, and have that problem become a known issue. Last year LightningLockerServices Critical Update.

What’s the problem?

I’m witnessing an issue in a sandbox we recently refreshed. We’re running a vendor product on top of Salesforce (this issue will still affect you, even if you’re not running the same app). Within the app’s admin panel, I’m trying to start something called ‘Scheduler’, which corresponds to a Salesforce scheduled apex job. However, this job never starts, and no error is gets displayed.

So, something doesn’t work, and we’ve got no leads to follow. That’s where the fun begins!

Continue reading “Orphaned CronJobDetail records breaking Scheduled Jobs in Salesforce Summer ’17”

Too Clever By Half – In Support Of Paired Programming

If you’re like me – a developer who is sometimes too clever by half – you’ll relate to this story.

I just made some changes to a Javascript file in a static resource and when I deployed this from dev to our QA environment, I couldn’t see the fix.  After confirming the file did in fact update by checking its metadata I did a hard cache refresh and…I still couldn’t see my changes.

This went on for a while, and I deliberately explained every step to my rubber ducky.  Each time, I could see the static resource was updating in the Salesforce environment but I wasn’t able to see my changes when I accessed the page.

This drove me nuts.  I hadn’t seen this issue before, and before long I started requesting sanity checks from my coworkers.

“Am I going crazy and missing something, or do we have gremlins in here?”

Continue reading “Too Clever By Half – In Support Of Paired Programming”

Formatting or Parsing Date & DateTime in Salesforce

Over my career I’ve done a number of things, from ColdFusion then developing printer drivers, to .NET, PHP, Dynamics CRM, and now Salesforce, while playing around with things like python and android development in my spare time.  I’m not sure why, but I’ve never had as much of a problem with Date Formats anywhere else as I have with Salesforce.

Continue reading “Formatting or Parsing Date & DateTime in Salesforce”

A Neat Trick For Deploying Security Settings in Change Sets

Have you ever used a change set to deploy, only to find things like record types, field level security, or object access didn’t carry over to production? I came across a neat trick over the weekend that I wanted to pass on.

Continue reading “A Neat Trick For Deploying Security Settings in Change Sets”

Getting MavensMate, Github, & Salesforce to all play nicely

UPDATE July 2021:  I no longer use MavensMate and have not since shortly after writing this post.  I would hope the tool has improved in the 5 years since I wrote this post but if not, I would definitely recommend checking out IlluminatedCloud or Visual Studio Code as an alternative!

There’s been some confusion lately within my network about how to setup MavensMate, Github, and Salesforce so that they all hold hands together.

What does this look like?  I want a MavensMate project folder that doubles as a local Git project folder.

Continue reading “Getting MavensMate, Github, & Salesforce to all play nicely”

Prepare for Critical Update: Clickjack Protection for Legacy Browsers for Visualforce Pages Without Page Header

In about a weeks time, a Critical Update called Clickjack Protection for Legacy Browsers for Visualforce Pages Without Page Header (Critical Update) will come into effect. This CU extends clickjack protection for legacy version browsers for Visualforce pages that set showHeader=”false”  when those pages are configured on API versions older than 27.0.

Clickjack protection is added to VF pages through several security settings, and two of them are affected by this CU:

  • Setup | Security | Session Settings > “Enable clickjack protection for customer Visualforce pages with headers disabled” enables clickjack protection on an org’s Visualforce pages that set the page’s showHeader attribute to false; and
  • Setup | Develop | Sites > “Clickjack Protection Level” enables clickjack protection for Visualforce pages displayed in Force.com Sites.

While the X-Frame-Options HTTP header protects most browsers from clickjack attacks, older versions of IE, for example, don’t respect that header. Some HTML and JavaScript code are therefore added to the page to extend this clickjack protection to older browsers.

Here’s the problem. When you set the Visualforce page’s showHeader attribute to false, VF pages with API version 26.0 and earlier don’t include the necessary HTML and JavaScript to protect legacy browsers from clickjack attacks. This protection is omitted even when the org or the site is configured to include that clickjack protection!

That’s where the CU comes in – it ensures that the expected html markup and JavaScript code are placed on the Visualforce page regardless of its API version, making all pages compliant with the org’s clickjack protection settings.

Figure out which pages are affected:

Navitage to Settings | Develop | Visualforce Pages. Create a new view to show pages whose API version is ‘less or equal’ to 26.0, save it and run it. If you have no pages listed in here, you’re good!

If you have results, you need to make sure your pages are compliant. Open each Visualforce page. If the page’s contentType attribute is not “text/html”  or “text/xhtml” , the page is fine. Check the next.

Specifically, you’re going to be looking for pages that have showHeader  attribute set to false.

If the page has a hardcoded <head>  attribute, this page is likely to have problems. To resolve, manually hardcode a static <html>  and <body> tag in the page, and set the applyHtmlTag  and applyBodyTag  attributes of <apex:page>  to false.

When you activate the CU on a sandbox you’re going to want to test every page, but pay special attention to those that fall into the last category.