The Million Dollars Picklist

Several times in my career, I came across situations where my client wanted to take the driving seat of an implementation after a brief introduction to the basics of Salesforce configuration. Maybe they looked over the shoulder of a consultant creating a report or a page layout. “Oh yes, I get it it’s a bit like such and such language” I still hear them shouting…

##The Story
One of my friends, was telling me about this Sales Cloud project originally meant to be declarative-only but the customer was feeling strongly about the implementation of a lookup field which should look like a picklist field enhanced with typeahead capability.

The team didn’t have the exact skills required, but under the customer’s pressure, one consultant was assigned the task to implement a typeahead picklist pulling its data from a custom object. The development was slow. The testing reported quite a few problems which in turn were slow to be fixed. The client was also squeezing in nice-to-have on top of bug-fixes. The project ended-up delayed and way over budget for a picklist which, quite frankly, could have been delivered as a standard lookup at no added cost. For my friend’s company the project was a total disaster.

##Agile Implementations
When implementing Salesforce at a customer you need to make sure that users’ inputs won’t derail the project. It’s one thing to leave the door open to feedbacks and suggestions but it’s another thing to accept everything because it’s coming from the customer.

In consulting, it’s not the vendor working FOR the customer, it’s the vendor AND the customer working FOR the project.

The project is an entity in itself with a budget, a timeline and a scope.

The project triangle

##The Salesforce Police

The vendor and the customer must work together to keep the balance right. Because the vendor is the one bringing project expertise to the table, he is the one expected to agitate a red flag when the client’s changes in requirements are becoming a risk to the project. As a Salesforce expert, you need to make sure that best practices are followed, declarative comes before programmatic, you don’t reinvent the wheel, your solution is compatible with the next releases… You are the Salesforce police!

The Salesforce police

##Avoiding Scope Creep
To avoid your project to go pear shape as in the previous example, you may want to consider the following advices:

End of Sprint Demo

This is the place where most of the scope creep happens. Because there’s still, in theory, plenty of budget in this phase of the project there’s no feeling of financial pressure, and there’s tendency is to accept change requests with the hope that they will be absorbed during the remaining part of the build. Also, be conscious that you are pulling the curtain on unfinished software. The chances are that your audience can’t visualise the solution as you do and potentially ask for useless changes.

  • Be budget conscious from start to finish. Your team has a fixed capacity: More effort will require more resources or more time and anyhow more budget.
  • Avoid demoing half-baked features as this is going to waste everybody’s time and bring low-quality feedback.

User Acceptance Testing

This is another part of the project that can generate an important increase in scope. Key users may be change averse, they may want their brand new system to behave exactely like the old one. The idea of the UAT is to get a feel for adoption before go-live fixing bugs and addressing show-stoppers. It’s not about going back to the drawing board because Joe Blogg doesn’t like your solution.

  • Always clearly state the goal and limits of UAT.
  • Obviously, it’s down to the stakeholders to deal with people issues internally.

User Designed Solution

Some users will find interest in this refreshing new project and drop funky requirements as a way to enlighten their day. They may ask you features that exist in other web applications like Facebook or Instagram. Please remember that ultimately you will be the one with the neck on the table when your Facebook like typeahead doubles the cost of the build phase.

  • Key users involvement in agile projects is about gathering business requirements then validating that the solution delivers the expected business outcome. It’s not about swapping seats.
  • Listen to implementation preferences but make the final decision design based on your experience.

New Features Requests

Accepting new functionality requests up until UAT is totally fine. It’s one of the core benefits of agile methodologies. But this should not lead to scope creep.

*Always position a conversation on new feature requirement in the context of project success and ask what the trade-off is: increase in budget, delayed delivery or dropping another feature.

Never Ending Refinements

To be deployed to production in time your solution must first reach code-freeze. In the picklist story, the customer was asking for numerous non-functional refinements, pixel level cosmetics. Because the work started without a crystal clear description of the requirement, many iterations were required before a satisfactory result.

  • Make sure that any piece of work is clearly described and understood by all parts. Associate each user story to acceptance criteria. Avoid subjective description like “The picklist must look great”. From the list of acceptance criteria, you should be able to write the project’s Definition Of Done. Get an early sign-off.

Hopefully these few advices will help you avoid getting into budget troubles while keeping your customer happy and your project successful.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Mastering Spring ’17

Every time Salesforce ships a new release and however thick are the release notes, I do advocate for in-depth study! This is the only way that a Salesforce professional can stay on top of their game! Today, we’ll review the information available for “Spring ’17”. If you haven’t yet read my old (but maintained) post, Preparing Your Maintenance Exam, I suggest you do it now.

##Training Plan

My recommended approach to is to enjoy the journey first (1 to 4) and then get serious, drilling down into the technical detail (#5).

  1. 📺 Watch some videos
  2. 🐻 Get your Trailhead badge
  3. 🌍 Browse the best blogs
  4. 📘 Read Salesforce’s resources
  5. 🍄 Learn the Release Notes
  6. 🚀 Take the exam

New Release Study: It’s not about the maintenance exam. It’s about using Salesforce’s most suitable features in your next project. Your clients will thank you for that!

##Videos
📺 Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study work.

In a different style, you may also want to have a look at the Release Readiness Live videos. They’re an hour long talk shows discussing the ins and out of each of the Salesforce modules.

##Trailhead
🌲 You can now access one full year worth of release training on Trailhead. Ideally, you shouldn’t need it, as you should always stay up-to-date with your certifications, avoid confusing features availability, turn the page and focus on the current release.
So, go ahead and have fun learning about the new features with the trail Prepare for Salesforce Releases.

The Spring ’17 Trailhead module is seven units long and spans across most Salesforce clouds. It does take some time to go through it especially if you drill down into the resources provided. But, it’s an excellent way to prepare your brain for the Release Notes.

##Blogs
🌍 The posts below are hand-picked from the best bloggers in the Salesforce community. They provide a different perspective and interesting use cases for the new features…

##Salesforce Resources
📘 I strongly recommend you check the Release Readiness & Feature Adoption resources page and maybe join the Success Community Group.
One of the great resources I found there is the Customer Resource page.

The Salesforce Developer evangelism team regularly publishes release centric posts. And you can also find quite a few interesting resources on the Partners site.

##Release Notes
🍄 I guess you know it by now, the Release Notes come in two flavours.

  • PDF file: I use them in the train, downloaded to my iPad to make the best of otherwise wasted time.
  • HTML page: I use them on my laptop when I need advanced search capabilities.

Don’t hesitate to turn on a DE orgs and try out whichever new feature feels important (or confusing) to you.

##Exam
🚀 At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Migrating To Lightning

This year again, I was pleased to be accepted as a speaker at London’s Calling (Europe’s largest community-led event for Salesforce professionals) on February the 10th, 2017.

London's Calling 2016

After last year’s talk on Person Account that many of you still mention to me, I thought I would come back with another return on experience: Lightning migration projects.

A strategic move

We’ve done a few of these projects where Lightning is positioned to address a particular need (mobile roll-out) or is the cherry on the cake of a process re-engineering project. It’s rarely the case (read “never so far”) that a customer would contract us for the sole purpose of migrating to Lightning. Still, there’s a strategic reason why a CIO would do so: it’s a common interest shared between the customer and the vendor which makes it a particularly good deal.

  • For the customer, migrating to Lightning means moving to the fast lane. Yes, you can still progress in the slow lane (Classic) but isn’t it the role of a CIO to provide the best tools to the business (Lightning)?
  • For Salesforce, Lightning simplifies the engineering team’s life when it comes to improving the user experience. As a result, more goodness is coming out of the Lightning garage than the Classic one.

A faster way to configure

Another significant benefit of Lightning is the change in configuration paradigm. Designing a solution used to be the matter of two options: declarative vs. programmatic. Well, there’s now a new kid on the block, it’s called componentization and it’s a revolution. I won’t go too much into the details, but components are these little configuration bricks, features that Salesforce doesn’t provide out-of-the-box and that you purchase from the AppExchange for Components. They bridge the gap between the frustration of declarative only and the risk of technical debt coming with programmatic.

Once you understand the big picture, you see that migrating to Lightning is a key strategic move. So much so, that I could understand an executive decision to switch over.

⚠ Wait! There’s a problem. Although Lightning has been around since Winter ’16, it’s still work in progress and is far from being completed. So, you can’t turn the tap on just because it make sense, as you could, in fact, break things!

Suggestions for your rollout

And that’s where my presentation kicks-in. In the below slides, I share resources to identify when is a good time to move to Lightning and how to do it.

In a nutshell…

  1. 🚀 Don’t underestimate the preparation effort
  2. 🌲 Do the Trailhead module LEX Rollout
  3. ⚡ Identify Lightning feature gaps and benefits
  4. 🎁 Consider migrating apps separately
  5. 👧 Consider migrating user types separately
  6. 🍻 Prefer a like-for-like approach
  7. 💋 Drop in some Lightning sexiness
  8. 💐 Include change management in your project
  9. 🚒 Involve your users in a proper UAT

Managing change

I thought I would highlight one side of the project which is often neglected, point 8 above: change management.
On the same day I was presenting at London’s Calling 2017, I attended a session titled “Tackling the ‘We’ve always done it this way’” by the excellent Louise Lockie. I suggest that you check her presentation since correctly managing change is key in any Lightning migrations.

Have a think about it:

  • Your users are not as passionate about Salesforce as you are.
  • Your users are not (yet) as excited by Lightning as you are.
  • Your users are about to have their habits changed by the new UI.
  • Your users will need to relearn how to do things they’ve done for years on Classic.

A successful Lightning migration project is about 50% technical considerations and 50% change management.

I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Crank Up Security With TLS 1.1

I recently bumped into a few clients who weren’t sure about what was going on with this TLS 1.0 thing. So, I thought I would write a recap and collate the best resource available online, all in one post. Hopefully, this can help you communicate with your customers or stakeholders too.

What’s happening?

Salesforce is about to upgrade its servers and enforce the use of a new encryption protocol. Failure to changing to the same protocol on the client side will lead to service disruption.

📅 When is it happening?

~~Saturday, March the 4th 2017~~
~~Saturday, July the 22nd 2017 (cutover date recently postponed by Salesforce)~~
It’s now done and over…

🔎 Where is this happening?

The risk of using the wrong encryption method exists in all areas of Salesforce making use of a network connection. A Visualforce page pulling some data from a custom object is not in scope. I have segmented these areas of concern into 4 categories:

  1. Access to the application
    Make sure that the browser you are using supports and is configured to use TLS 1.1. Validate that you are using the latest version of Salesforce1 on any mobile OS. Bespoke mobile apps must be adapted.
  2. Installed tools
    If you are using tools that communicate with Salesforce and have required you to use a setup program then, please validate with the vendor that they’re not stuck on TLS 1.0. This includes Salesforce for Outlook, DataLoader, etc…

  3. System integration
    If you are integrating Salesforce with your ERP or any system in your IT landscape, make sure that the data flows are encrypted using TLS 1.1. Integration layers (ESB, EAI) are certainly up-to-date with the latest technology but what about the little Java application that was written 5 years ago by… “someone”?

  4. Non-native AppExchange
    Some AppExchange rely by-design on an external set of servers for various reasons. This is typically happening when an AppExchange requires capabilities not currently available on force.com or needs access to an external source of information. Some code, in Salesforce, is calling a server somewhere and they’re having a chat. This “conversation” has to be encrypted using TLS 1.1.

You’ll get the exact list of endpoints that you should validate in Salesforce’s excellent article: “Salesforce disabling TLS 1.0“. It’s the reference on the topic!

🔨 How do I do it?

  1. First, you should download and run my report (https://login.salesforce.com/packaging/installPackage.apexp?p0=04t0Y000000JwLn) to identify who, in your org, is still connecting with TLS 1.0. This will address point 1, 2 and most of point 3 (ESB using a connector will be spotted) above.
  • For the integration points, you should get a developer to trace the Apex classes making use of web services then reverse engineer them if, as I suspect, you too have lost the documentation.

  • For the AppExchange, list them and go one by to the vendor online specs. If you’re lucky, you should get a nice TLS support statement. Even better, You can have a look at Rupert Barrow‘s list of the AppExchange known offenders (still locked on TLS 1.0).

  • If this is not enough, Salesforce, them again, have put together a great action plan: the “TLS 1.0 Disablement Readiness Checklist “.

  • 📘 How can I learn more?

    Salesforce’s Infrastructure Security team provided information and tips to help ensure your org is ready for TLS 1.0 disablement on a recorded webinar:

    • Explain how this change will impact Salesforce products, services, and developer tools
    • Show you how to identify users still creating TLS 1.0 connections
    • Highlight resources and best practices to help you prepare your Salesforce org and your users for this change
    • Answer questions from the webinar audience

    Below are the links to the recording and resources referenced in the session:

    • Webinar Deck: http://bit.ly/TLSWebinarDeck
    • Full Webinar Recording: http://bit.ly/TLSRecording
    • Login History Demo: http://bit.ly/TLSDemo

    You may also want to read some posts which are more detailed than this one like the ones put together by Meighan Brodkey or Mohith Shrivastava.

    Finally, as I was doing my research for this post I found this old course from the MIT and thought it would be a good idea to share as it’s giving a good background on network encryption.


    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🐸

    Understanding Change Sets Limits

    Several years ago, I was working on a massive Salesforce roll-out for a customer whose deployment policies were constraining the team to use change sets. It was a multi-sandbox, multi-vendor environments and change sets were not ideal, to say the least. As it happens, we ended up, for each version released to production, with several packages and 30+ pages of pre and post-deployment manual steps. A real nightmare, still, it gave me the opportunity to push the method to its maximum and see through it.

    If you’re building a Salesforce solution making good use of standard objects and intend to ship all your configuration from sandbox to sandbox to production, get ready for a lot of manual work! Relying on manual rework generates the risk to build a great app in your Dev sandbox, get it somehow signed-off in the UAT sandbox and then screw-up the migration to Production delivering a non-functional product… Not what you’re after!

    These are the usual issues people find when deploying with change sets:
    Continue reading

    Mastering Winter ’17

    In my series of Salesforce release posts, I’m focusing today on “Winter ’17”. If you haven’t yet read my old (but maintained) post Preparing Your Maintenance Exam I suggest you do it now.

    Training Plan:

    My recommended approach is to get high-level awareness, get a feel for the new release and then drill down into the technical information.

    1. 📺 Watch some videos
    2. 🌲 Get your Trailhead badge
    3. 🔎 Browse some blogs
    4. 📘 Read Salesforce’s resources
    5. 🍄 Learn the Release Notes
    6. 🚀 Take the exam

    Sorry to repeat myself here but, as said in previous posts, I always stress the fact for us Salesforce professionals, it’s important not to see the exam as the primary objective of each new release study. The exam only validates that you’re comfortable with what you learnt.

    Learn more than the minimum required to pass the maintenance exam. Keep your Salesforce skills in top shape, for the benefit of your future projects. Your clients will thank you…

    Videos
    📺 Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study plan.

    In a different style, you may also want to have a look at the Release Readiness Live videos. They’re 15 minutes talk-shows discussing the ins and out of some the new features.

    Trailhead
    🌲 Only the current and last release are available on the trail Prepare for Salesforce Releases. So, you won’t be able to use Trailhead to brush-up on an old release. But it’s fine; you’re always staying up-to-date, right?

    The Winter ’17 Trailhead module is eight units long and spans across most Salesforce clouds. It does take some time to go through especially if you do it well and drill down into the resources provided. But, it’s a great way to prepare your brain for the Release Notes.

    Blogs
    🔎 I picked a few posts from some of the best bloggers in the Salesforce community. It’s great to see what use cases they find for the new features…

    Salesforce Resources
    📘 I mentioned earlier the Release Readiness videos. In fact, there are more to it than just the videos. I suggest you check this great program and maybe join their Success Community Group.
    One of the great resources I found there is the Customer Resource page.

    The Salesforce Developer evangelism team regularly publishes great content and here’s their Winter ’17 post.

    You can also find quite a few interesting resources on the Partners site.

    Release Notes
    🍄 I guess you know it by now, the Release Notes come in two flavours. Each has its advantage.

    • PDF file: I use them in the train, downloaded to my iPad to make the best of otherwise wasted time.
    • HTML page: I use them on my laptop when I need advanced search capabilities.

    Exam
    🚀 At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.

    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🐸

    The Perfect Logo For Your Org

    With Winter ’17, Salesforce added the possibility to display your company’s logo on the top banner of any custom app in the Lightning experience. I thought I would take the opportunity and write a post on how to best handle this logo business for both Lightning and Classic.

    ##Lightning
    You can only add your logo to a Lightning App. That’s right, apps can be of either LEX or Classic type! You can’t reuse an existing Classic app.

    ==Navigate to the App Manager== in the Setup pages, you can either create a new app from scratch (1) or upgrade an existing Classic app (2).

    From the Edit screen, upload your company logo (3).

    The logo file should be of one of the usual formats (jpg, png, bmp or non-animated gif). The size must not exceed 44 x 44 pixels. If you provide a bigger or non-square image Salesforce will make it fit… I suggest you stay in control of the look and feel by respecting these limits. Also, note that the image is positioned quite close to the browser’s edge…

    For Lightning, I recommend to always upload an image sized to 44 x 44, including a 2 pixels top padding.

    Also, don’t set any margin on the left or the logo wouldn’t align properly with the rest of the UI.

    Click Save and Done and this is it. It’s quite simple when you know where to go…

    The good news is that because the Lightning top banner background is white, you don’t need to fiddle with transparency as it’s the case for the Classic UI.

    ##Classic

    In Classic, you’ll need to store the logo somewhere and in a specific way before being able to add it to your app. In this respect, it’s a bit more cumbersome than with Lightning, still not a big deal as you’ll see.

    First of all, you need to locate the Documents tab which, unfortunately, can’t be found in any standard app. Click on the “+” tab (1) and select the Documents tab (2).

    You can either create a new folder for documents which are associated with your app or just use your “Personal Documents” folder. I go with the simple option in this case (3).

    Press Go, then the “New Document” button.

    Give the document record a name to locate it easily and ==make sure that you tick the “Externally Available Image” checkbox== (4). Then load the logo file (5).

    In Classic my recommendation is to keep the image file to its maximum of 55 pixels with a top padding of 5 pixels. You can use any length up to 300 pixels but make sure your file is not bigger than 20KB. Always use a tranparent background.

    In Setup, navigate to “Apps”. Select the custom app which will receive a new logo. Then from the Edit page click on “Insert an Image” (6) and change the logo to the one you just uploaded in Documents.

    And, here’s the result!

    ##Related Post

    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🐸

    Salesforce, The A.I. First Platform

    Sadly I didn’t manage to make the trip to San Francisco last Tuesday and attend Salesforce’s first developer conference ever: TrailheaDX.

    Thankfully though, Salesforce had thought about us all professionals working on their own customers’ orgs, writing code and configuration, deploying from sandbox to sandbox to production, training future users or simply not being able to find a budget to travel to the US… All User Group leaders were sent in advance a TrailheaDX “Viewing Party Kit” pack including all sorts of swags and the secret details for the keynote webcast.
    Viewing Party Kit

    As a co-organiser of the Thames Valley DUG meetup in the UK, I was one of the happy attendees to this remote keynote and haven’t been disappointed…

    The keynote content is, of course, a little different from what you would find at a World Tour event: less sale and more technical information. I particularly appreciated some insight to the Winter and Spring ’17 releases… There was also a mention of the new cloud, the e-Commerce Cloud, just one week after the announcement of the Demandware acquisition. If you want to know more about TrailheaDX in general, I recommend you read Alba Rivas’s recent post on the subject.

    Alex Dayon
    But make no mistake, the big announcement was about Artificial Intelligence. Salesforce has seen quite a lot of innovations along the years: “the social platform”, “mobile first”, “API first”, … now “AI first” as announced by Alex Dayon. Unlike the previous phases though, “AI first” is not just an architectural update, it’s an entire new paradigm. One that I would say is taking componentisation to the next level and is about to blow your consultant mind off!

    “AI first” is not just an architectural update, it’s an entire new paradigm

    With a componentised (Lightning based) solution, implementers don’t write bespoke code any more but reuse well tested components built by niche specialists developers and deliver a solution which is declarative, still highly granular. Componentisation doesn’t mean that we won’t need developers any longer but, typically, developers will build and sell multiple small components to many customers around the World rather than one big custom app to one unique customer. Implementers (IT or SI) will either re-use components or build low code applications. This is very much in line with the evolution of programming languages and the never ending addition of abstraction layers, IDE, libraries and tooling to simplify the developer work, now all packaged in one component.

    So, what’s all about this AI first platform? Well, the AI components that implementers will use in their solutions will bring some capabilities to help on a specific task (like “guess the most realistic probability to close a deal”) but without being directed on how to provide this information. It will works thanks to the clever algorithms (Artificial Intelligence) embedded in the component accessing a huge amount of data and the relevant CPU power to process it. The first attempts may fail (for instance a few 80% opps may not close in the end) but then the system will learn and improve with time… without modifying its code!

    The system will learn and improve with time… without modifying its code!

    As you read more about Salesforce AI-first platform in the coming months, try and figure out use cases for yourself or your customers. What will you do when Salesforce releases the technology to its customers? No doubt Salesforce’s new strategy means that it will develop its A.I. footprint and continue acquiring specialised startups, so, stay tuned!

    [Edit 1]: Salesforce has just released a new Trailhead module about AI basics. It’s a fun way to get a better understanding of AI and how could it help your customers.
    Salesforce Einstein
    [Edit 2]: Salesforce provided more details about it’s AI offering (“Einstein”) at Dreamforce 16. Salesforce’s AI algorithms will do the leg work for you. The big amount of data required to train these algorithms will be provided by Salesforce not by the customer. The Data Scientists who build the AI algorithms will also be working behind the scene, in Salesforce “labs” (Data Scientist as a Service anyone?). This means that in my example of “opportunities with a real chance to close” the solution will be already trained before go-live and not six month later thanks to trends and patterns already known by Einstein.

    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🤖

    Mastering Spring ’16

    In my series of Salesforce release posts, I’m focusing today on “Spring ’16”. If you haven’t yet read my old (but maintained) post Preparing Your Maintenance Exam I suggest you do it now.

    This post brings together all resources available into an organised training plan.

    Spring 2016 release logo

    Training Plan:

    My recommended approach is to get high-level awareness, get a feel for the new release and then drill down into the technical information.

    1. 📺 Watch some videos
    2. 🌲 Get your Trailhead badge
    3. 🔎 Browse some blogs
    4. 📘 Read Salesforce’s resources
    5. 🍄 Learn the Release Notes
    6. 🚀 Take the exam

    Videos
    📺 Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study plan.

    Trailhead
    🌲 The Trailhead teams is introducing a new trail “Prepare for Salesforce release”. It’s a great way to get a feel for the new features spread across Clouds. But, don’t jum to conclusions, this is not enough…

    Consultants need more than an overall understanding, they need to master their art and this means loads of studying for each new release.

    Note that only the current and last release are available on the trail. So, you won’t be able to use Trailhead to brush-up on an old release.

    Trailhead Badge

    Blogs
    🔎 I picked a few posts from some of the best bloggers in the Salesforce community. It’s great to see what use cases they find for the new features…

    Salesforce Resources
    📘 The Salesforce doc team always come up with great presentations and video.
    I would start with the “Release Preview“, a high-level presentation of the new release, which is a quick and easy read.

    If you’re a techie, you can find developer centric release information on the developer site. I suggest you watch the release Webinar recording and review the slides afterwards.

    Release Notes
    🍄 I guess you know it by now, the Release Notes come in two flavours. Each has its advantage.

    • PDF file: I use them in the train, downloaded to my iPad to make the best of otherwise wasted time.
    • HTML page: I use them on my laptop when I need advanced search capabilities.

    Exam
    🚀 At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.

    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🐸

    Implementing Person Account

    I have been lucky enough to be invited to present at the first London’s Calling (Europe’s largest community-led event for Salesforce professionals) on February the 5th, 2016.
    London's Calling 2016
    I chose a topic which meant a lot to me because I’ve done quite a lot of B2C implementations: Salesforce Person Account. Unfortunately, the presentation didn’t exactly go to plan as my PC crashed when I plugged in the projector. As a result, I didn’t cover the whole talk. So, if you were in the audience and felt left out or if you didn’t manage to join us on the day, this post is for you!

    You can refer to the supporting slides that I’m sharing below.

    Person Account issue

    Person Account, or PA, in short, is the way to configure Salesforce to make it work for B2C users. It’s safe to say that PA doesn’t get much love in the community. Many consultants and administrators are full of bad stories explaining why you shouldn’t use it! That’s a bold statement considering that PA is a standard feature of Salesforce. While I was preparing for my talk, I searched for complaints on blogs and forums with the intention to propose workarounds for each of them. Well, I’m pleased to report that I haven’t found many road blocks that are still valid today. Most of the issues discussed online have now been fixed or are on the roadmap.

    Here is the learning:

    Old posts are not updated, and issues from the past can be fixed today. Don’t believe old blogs post and always test for yourself.

    It doesn’t mean that Person Account doesn’t come with annoyances and complexities. I can even see one particular issue which can become a show-stopper at times but as a Salesforce administrator, architect, consultant you shouldn’t base your design choices on rumours, especially for such a critical part of CRM systems as the customer data model. Please, think twice before discarding PA as the way to model consumers.

    So, for instance, one of these rumours is that PA doesn’t support cross-objects formulas. It may have been true several years ago but I can tell you that this is now fully supported…

    In fact, I believe that Person Account real issue is that Salesforce ships new features as early as possible without waiting until they support both Business AND Person Account. It’s a shame as it makes PA look like a second-class citizen whereas it’s in fact a very clever part of Salesforce (see slides 6 to 8 below on backward compatibility).

    PA's often late...

    So, in the end, it’s a waiting game. Some features are released without Person Account support and we know that at one point they will be improved for PA. It can be frustrating but this also applies to any software: you must design with what’s available at one time.

    Mind the fake problems

    One recent example of delayed delivery is Lightning Experience. In Winter ’16 you cannot have both PA and LEX enabled on the same org at the same time. Spring ’16 will fix this albeit with quite a few caveats in the way PA is supported and the following release will improve PA support on LEX. At the end of the day, Lightning Experience is not that critical to any implementation. Is it me or we’ve been designing quite a few powerful solutions in Salesforce Classic up until now? So, I guess we can wait for a few releases before making the most of Lightning.

    Duplicate Management in another capability which doesn’t still support PA. Good news is that there are some (free) AppExchange to fill the gap. The thing is that deduping in a B2C multi-channels world to get a single view of consumers can be quite a difficult exercise depending on how you define duplicates: do you want to match consumers reaching you via phone call with their online identity on social networks? This can be a complicated requirement needing more than what the standard feature would deliver.

    The downside of Person Account

    Still, there are some problems with Person Account…

    The main one, in my opinion, is linked to its architecture (1 pair of Account + Contact record per consumer). Using PA means that you are doubling the data storage required to manage your customers. If your customer base is in the millions, then this can get you to hit the storage limit and is the show-stopper I was referring to earlier. Good news is, this double count is on the roadmap to be removed! The data structure will remain the same, but Salesforce will only charge for 1 record (2 KB) “WHEN IsPersonAccount = TRUE”.

    Person Account alternatives

    There are options on the table to avoid the use of Person Account. Again, I would recommend to stick to the standard and preserve the capability to extend the first version of your solution in the future. But, if after carefully considering your design criteria, you come to the conclusion that PA is not for you then you could use one of my preferred alternatives:

    • Bucket Model: slide 20 below
    • Household Model: slide 21 below
    • Custom Object: slide 23 below

    In the pipe

    Salesforce is always improving PA and here is what they have in mind. Please do not make any purchase decision based on the list below (“safe harbor”):

    • Full Lightning Experience Support
    • Eliminate Double Storage Count
    • Admin Enable/Disable PA
    • Duplicate Management
    • Insight for PA
    • New Data Import Wizard
    • PA as Shared Contacts

    The presentation I’m sharing above includes quite a few links that I suggest you follow to get a deeper insight into Person Account.

    Sitting Duck

    So, to summarise, I think that Person Account is a sitting duck which doesn’t deserve all the complaints I hear here and there. It has evolved quite a lot since Winter ’07 and, hopefully, you’re now willing to give it a second chance.

    I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

    Fab 🐸