Archive for category CRM

Salesforce (Data) Relationships Matter

The ability to maintain data quality is dependent on establishing the right relationships between objects and configuring appropriate controls over data entry.  Too often this only gets the focus it deserves a year or two after Salesforce is implemented when data quality is poor and causing problems with reporting, integration or workflows.

Salesforce Data RelationshipsThere are two types of relationships available to connect objects together (master-detail and lookup) each of which has further options.

Chose the relationship type which best represents the real-world relationship between the business concepts the objects mirror then apply the tightest options possible to control over data quality.

Don’t add relationships to objects until you fully understand the choices available!

Master-detail (parent-child) relationships

This is always a required relationship as detail records don’t have an owning user and access control is managed at the master level.  When a master record is all related detail records are deleted as well.  There can be no more than two master-detail relationship in an object and only one if the object is the master of another relationship.  Standard objects cannot be detail records and Leads/Users cannot be master records.

There is an option to allow users to change the parent (master record) of a detail record.

A master record can have no more than 10,000 detail records.

Lookup (cousin) relationships

This relationship is not automatically required and has no effect on record access.  If the relationship is set to be required a record can’t be deleted if other records are related to it.

If the relationship is not required you can choose whether to prevent a record being deleted if other records are related to it, or to allow deletion by automatically clearing any lookup relationships. 

Setting a lookup to be required has a significant impact when creating a partial copy sandbox which contains objects with more than 10,000 records.  The partial copy sampling process will retain relationships which are required hence the related record will be copied as well.  If the lookup is not required then values can be lost from lookup relationships during the sampling process.

Filtering relationships

Applying an active filter to a relationship means when the user searches for a related record only those which match the criteria will be presented.  An active filter which is required cannot be bypassed.  An active filter which is optional can be bypassed.

An object can have no more than 5 active filtered relationships.

Validating relationships

Applying validation rules to a relationship can be used to check (when the record is saved) that a related record meets specific criteria.  This can be helpful if you hit the limit of 5 active filters as the limits on validation rules are higher (20 per object in Professional Edition and below, and 100 in Enterprise Edition and above).  Validation rules are also more powerful and more flexible that lookup filter criteria.

Active filters provide a better user experience than validation rules as they limit the records able to be selected, rather than allowing records to be selected then blocking the save.

Hints to guide selecting the right relationship type

  • If a record cannot exist by itself and access is controlled by the parent use master-detail.
  • If a record cannot exist by itself but has its own access controls use a required lookup.
  •  Use active filters if it does not make sense to allow connection to any record.
  •  Use validation rules to limit which records be related if there are already 5 active filters.


Limits –

Cheat sheet –

Lookup Filters –


No Comments

Ten ways to avoid common pitfalls when delivering projects

How to make sure your Salesforce implementation does not end up looking like this!

1. Define a Clear Roadmap

  • Not knowing where you want the journey to end guarantees you won’t end in the right place.
  • When you want to arrive is almost as important and where you want to arrive.
  • The end result is usually bigger than “just” CRM (consider all the relationships which need management).
  • Be clear about which business capabilities need to be supported or enhanced with Salesforce.
  • Don’t transfer fractures in organisational structure into Salesforce – share common customer data.
  • Stay abreast of Salesforce’s own roadmap.

2. Define Clear Program and Project Requirements

  • Define strategy (the “why”) and required business outcomes (the “what”) before considering the “how”.
  • The “what” has to be measurable as this defines success.
  • Having key stakeholders including operational managers express and approve requirements is critical.
  • Don’t leave thinking about reporting/analytics until last.
  • Consider security upfront – both who can see what data and who can perform what functions.

3. Don’t do too Much at Once

  • Multiple projects at once are hard to coordinate especially when multiple delivery partners are utilised.
  • Doing two different things at once is three times harder than doing one thing at a time. 
  • Doing two different things fast at the same time is four times harder.
  • Running multiple overlapped software development projects will increase the need for tight governance (processes and tools) to manage requests for change, development, testing and deployment.

4. Choose the Right Delivery Model

  • Waterfall (all requirements up front), Agile (requirements clarified one short iteration at a time) or Fragile (requirements clarified through repeated experimentation).
  • Agile does not mean being continuously vague and discovering requirements by endlessly building the wrong thing then fixing it.
  • If you are not sure what you want or how to build it explore options using discardable prototypes.
  • Use an internal self-managed agile team if your organisation has adequate software delivery maturity and available resources.  Otherwise use an internal partner-managed agile team in preference to using an external remote partner delivering under a waterfall driven statement of work.
  • Consider what the team needs to look like when you are finished and the delivery partners leave.  Work towards that outcome throughout the project so those responsible for operational management have experience with the implementation details.

5. Manage Data Architecture and Data Quality

  • Data quality will degrade without proactive steps to maintain it.  Implement the platform’s tools to minimise duplicate customer data.  Use validation rules to enforce a base level of data quality.  Calculate a data quality score for key objects and use dashboards to drive behaviour.
  • Don’t add data fields to objects unless there is a strategy to populate them.
  • Make sure the relationships added between objects are done by someone capable select optimally between master-detail, required lookups and filtered lookups.
  • Consider reporting and query/report performance early.  Index text/picklist fields which are important for reporting by flagging them as an external ID.  Ask Salesforce to add custom indexes to custom date fields if they are important data selection filters.

6. Know what Success Looks Like

  • Develop a testing strategy and direct delivery partners as to what testing you require them to complete.
  • Testing has to address the outcomes desired as well as the outcomes to be avoided.
  • Recognise Salesforce’s 75% code coverage rule does not necessarily deliver automated tests which usefully determine if the system is working as it should.
  • Software engineers usually make poor testers so resource the testing function appropriately.

7. Maintain Current Documentation

  • Documentation needs to capture how the system works and how it integrates to other systems.
  • Projects should provide documentation which explains what changed (and why) as well as how to reverse a deployment which causes problems.
  • Keep information about system architecture current (what systems different user roles interact with and how systems integrate with each other).

8. Customise with Configuration Not Code

  • There are many ways to achieve the same thing in Salesforce and use a coded solution last.
  • Don’t custom code a user interface until you have tried the auto-generated user interface.

9. Choose the Right Operational Mode

  • The composition of the optimal operational team varies depending on the size and complexity of the implementation.  Include a developer in the team if they are expected to maintain custom code (vs custom configuration).
  • Budget for ongoing training and incentivise team members to achieve and maintain current certifications. 
  • Use Salesforce Trailhead for self-paced learning which is both fun and easily measurable.
  • Leverage operational assistance sourced from Salesforce Premier Support and Salesforce Partners.

10. Measure and Manage Levels of Adoption

  • Define what KPIs matter and measure them.
  • Ask executives to lead by example by being visibly active in Salesforce.
  • Use Salesforce’s Chatter, Ideas, Q&A, and Portal functionality to keep the conversation alive.

No Comments integrations can start well but end up being messy

All Salesforce implementations begin without any system integration.  Simple.  Clean.  Scalable.

Puppies - theory and practice - 800w

Increasingly though businesses want to integrate Salesforce with their digital assets (websites and mobile devices), internal legacy systems and external third party systems.

Salesforce provides a number of ways to achieve integration including:

  1. Web-to-lead and web-to-case HTML form submission

  2. Email handlers processing inbound emails

  3. Outbound emails sent from Salesforce or via third party products like Marketing Cloud

  4. Inbound synchronous calls to the Salesforce REST or SOAP APIs

  5. Inbound synchronous calls to custom Salesforce web service endpoints

  6. Outbound synchronous calls to external web service endpoints

  7. Outbound asynchronous calls using future methods to external web service endpoints

  8. Outbound asynchronous calls using outbound messages

When I saw this photograph I thought it was a great illustration of where I’ve seen Salesforce clients end up with their integration strategy.  When the project starts everything is orderly and under control.  Then over time development teams introduce different integration patterns which depart from the original architectural blueprint (if one existed at all).  Then the project gets deployed and integrations start firing in earnest.

Combining a myriad of different approaches to Salesforce integration with high volume transactional activity and a large active user base can create a messy outcome.  Salesforce currently lacks strong support for multi-threading control so synchronising data access and modification across a matrix of integration patterns can quickly become problematic.

My advice for projects which need to highly integrate Salesforce is to adopt early the best practice approaches for inbound and outbound integrations.  These can handle bi-directional data exchange in a standardised scalable manner.

Otherwise there will be a lot to clean up!

Credit to Alexander Ilyushin (@chronum) for the puppies photograph which originally illustrated similar outcomes with multi-threaded programming theory and practice:

No Comments

When does Social CRM become a form of commercial stalking?

Social connections quickly become overwhelming, if not creepy, once personal links surface too often from unexpected directions.

I was reminded today of the invisible line separating helpful social connection and frustrating personal intrusion when reading this article about the demise of Facebook popularity:

My mother made a similar comment this week, asking why Facebook persisted in asking her to “friend” people she does not know, or knows only remotely through third parties.  She asked why Facebook does not “get” these suggestions are not valued and persists in sending them to her.

My teenage daughter says her friends are also turning away from Facebook for similar reasons.

Facebook has become “in your face” and therefore an annoyance.

Digital consumers are savvy enough to realise the only reason Facebook has any value at all is because they use the site.  In that sense they are working for zero wages.

Users of free platforms like Facebook can leave far more quickly than they arrived.  As the utility of the platform decreases and frustration increases a tipping point will get crossed – after all “delete my account” is only one click away.

Social CRM in a commercial sense worries me in a similar way.  I understand the value in being informed before making a sales call, and in being genuinely interested in a customer beyond their value as a purchaser of products.  However there is a fine line between subtle preparation before a sales call and commercial stalking.

The rule defining this fine line is not written down but it is a under the control of your customers.

Once your customers say “stop stalking me” Social CRM becomes an impediment to success rather than an aid to effective selling.

No Comments

Never turn your back on your public

An Irish musician said this to me once.  It was in the context of Irish folk music performance, but it applies equally to business.

So why is it that business so often fails to foster active engagement with their customers?  I typically get asked to work with clients who want to deploy a CRM system to manage customer relationships.  But so often all this means is they want to a tool to throw to the sales and marketing people to help them keep track of who is talking to who.  Problematical already given most direct and indirect sales teams who are incentivised through commission don't want to share any information. 

Business processes are not purely internal within commercial organisations; they are tightly coupled to the ebb and flow of customer interactions.  Deploying CRM without any attempt to actively engage with customers usually fails to deliver truly valuable business objectives.   The goal should be to deliver a tool to foster a healthy active life cycle that includes the customer as the most important element.  Social CRM helps, but that can just be a tool for a traditional sales team to listen and not to engage.

The musician equivalent of businesses that face inwards and neither listens or engages with their customers is like a pianist who never looks up and never listens.  And whilst listening might help you hear the cheers or the boos, it won't by itself make start a conversation or establish a community.  Before the cheers or boos become audible there is so much to learn through engagement.  Is your audience actively listening and watching?  Have they turned their backs on you and are pretending you are not there?  Arms cross looking dissatisfied?  Or worse, walking out? 

That is why "Salesforce" is such a poor brand for the platform.  It positions the platform as a tool to help the sales team.  Which I guess is where it all started, but the world has moved on.  Certainly customers have.  I prefer to rebrand any CRM installation I work on as a platform for engagement.  Sure there are components to increase demand and better process qualified leads.  Sure there are components to more efficiently process customer service requests.  But you can do all that with your back to your audience and never actively engage eyeball to eyeball.

Allowing customers to directly engage has to more than an initiative to improve efficiency.  I see organisations moving in their understanding of engagement from sales and service support, to the point of "allowing" customers to directly enter data.  The platform is seen as a tool to benefit "us", the busy performers facing the inside.  However the next step is the key one, moving to the point of recognising the need to engage activity in conversation and community.  That is where Salesforce functionality like Ideas and Answers becomes powerful, allowing customers to engage with each other and with the business.  Through online portals that allow users to collaborate together and with the business, CRM moves from relationship management to a tool to foster community.

The good news for organisations that just give CRM to the sales and marketing team for internal use, without listening and without engaging, is the best is yet to come.  The real reward will come when like a musician the organisation faces the audience and engages, and then tailors their offering to what you see and hear!

The Department of Innovation, Industry, Research and Development in the State of Victoria (Australia, see is doing just this.  They are deploying the platform, but the Salesforce brand was fortunately abandoned early.  They refer to the system as GEMS, the Global Engagement Management System, and it is designed to deliver better engagement not just better internal efficiency.  FuseIT Australia ( is pleased to be helping this forward looking government agency move into the world of cloud computing and stakeholder engagement.

Does your organisation need help to face the audience and engage?

No Comments

Which CRM system is most popular? Comparing job demand is an interesting measure.

All software products have fluctuating popularity as user expectations and features change.  So how do you work out which is the best if you want to back a product that has good momentum? 

Evaluating the job market to see which product is most popular within a category is one interesting approach.  Check out with CRM products in mind.

Monitoring the trend in the job market is a good way to spot the ebb and flow of popularity.  Here we can see demand for professionals increasing significantly between March and April.

For those interested in CRM, watch out for the new kid on the block, Nimble will soon be lauched with a fresh take on Social CRM.

No Comments