Dynamics CRM 2016 Missing Required Components

After upgrading to Microsoft Dynamics CRM 2016 (on-premise) importing a solution caused problems. After enabling tracing on the CRM-server I found that there where a few missing required components.

The Missing Required Components error

The following error was found in the error log file:

CrmException: Cannot add a Root Component 00000000-0000-0000-0000-000000000000 of type 20 because it is not in the target system.

The fix

I opened my solution and browsed to the Security Role component. Guess what? Somehow the “System Customizer” role was added as a record to the solution.

security-role

If you encounter any “Cannot add Root Component”- errors, you might want to look to the specified entity. Here is a list of all the components and their according component number. You can find these components from the solution.xml file, as found on CRMBuilds.

RootComponent type=”1″ is for a Entity
RootComponent type=”2″ is for a Attribute
RootComponent type=”3″ is for a Relationship
RootComponent type=”4″ is for a Attribute Picklist Value
RootComponent type=”5″ is for a Attribute Lookup Value
RootComponent type=”6″ is for a View Attribute
RootComponent type=”7″ is for a Localized Label
RootComponent type=”8″ is for a Relationship Extra Condition
RootComponent type=”9″ is for a Option Set
RootComponent type=”10″ is for a Entity Relationship
RootComponent type=”11″ is for a Entity Relationship Role
RootComponent type=”12″ is for a Entity Relationship Relationships
RootComponent type=”13″ is for a Managed Property
RootComponent type=”20″ is for a Role
RootComponent type=”21″ is for a Role Privilege
RootComponent type=”22″ is for a Display String
RootComponent type=”23″ is for a Display String Map
RootComponent type=”24″ is for a Form
RootComponent type=”25″ is for a Organization
RootComponent type=”26″ is for a Saved Query
RootComponent type=”29″ is for a Workflow
RootComponent type=”31″ is for a Report
RootComponent type=”32″ is for a Report Entity
RootComponent type=”33″ is for a Report Category
RootComponent type=”34″ is for a Report Visibility
RootComponent type=”35″ is for a Attachment
RootComponent type=”36″ is for a Email Template
RootComponent type=”37″ is for a Contract Template
RootComponent type=”38″ is for a KB Article Template
RootComponent type=”39″ is for a Mail Merge Template
RootComponent type=”44″ is for a Duplicate Rule
RootComponent type=”45″ is for a Duplicate Rule Condition
RootComponent type=”46″ is for a Entity Map
RootComponent type=”47″ is for a Attribute Map
RootComponent type=”48″ is for a Ribbon Command
RootComponent type=”49″ is for a Ribbon Context Group
RootComponent type=”50″ is for a Ribbon Customization
RootComponent type=”52″ is for a Ribbon Rule
RootComponent type=”53″ is for a Ribbon Tab To Command Map
RootComponent type=”55″ is for a Ribbon Diff
RootComponent type=”59″ is for a Saved Query Visualization
RootComponent type=”60″ is for a System Form
RootComponent type=”61″ is for a Web Resource
RootComponent type=”62″ is for a Site Map
RootComponent type=”63″ is for a Connection Role
RootComponent type=”70″ is for a Field Security Profile
RootComponent type=”71″ is for a Field Permission
RootComponent type=”90″ is for a Plugin Type
RootComponent type=”91″ is for a Plugin Assembly
RootComponent type=”92″ is for a SDK Message Processing Step
RootComponent type=”93″ is for a SDK Message Processing Step Image
RootComponent type=”95″ is for a Service Endpoint

 

 

clickdimensions-header

ClickDimensions: send e-mail to EmailAdress2 from workflow

I have been ClickDimensions customers for a few months now. The basic functions work great and are really easy to set up (even for a non-programmer). However, if you would like to use more of the sophisticated marketing automation, you need to dig a little deeper. One of the problems I recently encountered, was that I would like to send a ClickDimensions e-mail to the contact’s secondary emailadress from a workflow, known as EmailAdress2 in Dynamics CRM. This is an alternative emailadress for a contact, which is sent an automated email when one of the sales reps win an opportunity.

I asked the ClickDimensions support team for a little help. Although they do great work over there, they are limited to the ClickDimensions core functions and entities. Their response was good, but was not going to help my any further: “Since Workflows and the Opportunity entity are not native to ClickDimensions, we are unable to provide support for them.  If you need assistance in setting up this Email Send via a Workflow or using dynamic content to pull values off of the Contact record, you will need to contact your CRM partner.

So, time to make a work around. We will do this by a combination of workflows, marketing lists and ClickDimensions marketing automation.

Send one-to-many email to EmailAdress2

When creating a regular E-mail Send (Marketing > ClickDimensions > E-mail Send) you are able to pick emailadress 1 through 3, which is great when sending a one-to-many campaign. However, I would like to send a one-to-one campaign, triggered by a field in the opportunity.

clickdimensions-send-emailadress2

ClickDimensions offers the option to create Email Sends for different email adress fields.

Send e-mail to EmailAdress2 from a workflow

First I tried making a custom entity and tried copying the field EmailAdress2 to EmailAdress1. Bummer, since ClickDimensions only allows sending e-mails to contacts, accounts or leads. That is before I stumbled upon the Add to marketing list function in ClickDimensions, a great feature. This wil let you add contacts, leads or accounts to Marketing List from a workflow. Then, by building a Campaign Automation, we should be able to send e-mails to Emailadress2 from a workflow.

Step 1: Make two marketing lists

Create two new marketing lists in CRM. The first will be called Emails to be send to EmailAdress2 from workflow, the other Emails already sent to EmailAdress2 from workflow. We will use the second marketing list to monitor which contacts have already received the emails.

clickdimensions-marketing-list1

clickdimensions-marketing-list2

Step 2: Create the workflow

You will find the function under “Add Step” > “Marketing Lists” > “Update Marketing Lists Members”.

update-marketing-list-members

The workflow will be triggered when the status of the Opportunity changes to “Won”.

email-send-clickdimensions-workflow

Set 3: Set properties for the marketing list

Click on “Set properties”. Use the Dynamic Values to set the linked contact opportunity for the contact. Select the “Emails to be send to EmailAdress2 from workflow” marketing list we created earlier.

clickdimensions-marketing-list-members-input

Step 4: Build the Campaign Automation

Next up is creating the Campaign Automation, that is found under Marketing > Marketing Automation > Campaign Automation. Create your campaign and open the builder. Now, select “Added to List” as trigger and create a new series. Select the marketing list “Emails to be send to EmailAdress2 from workflow” as the trigger list.

member-added-to-list

Inside the series, specify your e-mail template to be send and select two more actions: add to list and remove from list. This way we will have Clickdimensions move list members from one list to the other. Inside the Send Email action you can specify to send to Emailadress2.

clickdimensions-add-and-remove

Step 5: Publish and test!

You should be done by now and have a workaround to send emails to EmailAdress2 from a workflow.

crmkid-trello

Why I use Trello for my projects

I have to admit: I absolutley love Trello. I have been using it for little over a year now and I has not disappointed me ever since. To those not familiar with Trello: it is a website (or an app) in which you create so called ‘boards’ (organized by topic or whatever you like).

Those boards are divided in columns, that you can make, delete or edit. Each column, called a list in Trello, can have multiple ‘cards’: short notes or tasks. Trello allows you to add text or images to cards, give them a color, due date and even checklists within a card, making it perfect for project management purposes.

I personally use Trello to keep track of my CRM development sprints, collect user feedback and organize my ideas. I even have a few personal boards: one for my writing on CRMKid and one to keep track of my personal health and fitness goals.

How to organize Scrum Sprints in Trello

I find Trello a great tool to log my Scrum sprints in. In case you don’t know Scrum, there are a few really good resources to start with. Scrum is used to keep track of our CRM development sprints. In order to make Trello work for our CRM development, I divided the board in a few different lists:

  1. Features  – validated and planned requests from users
  2. Sprint Backlog – the things we are developing during the next sprint
  3. Bugs – bugs that have been found in our current CRM release
  4. In progress – features that are being developed in this sprint
  5. QA (Question & Answer) – unvalidated and unplanned questions and requests from users
  6. Done – everything we did in this sprint

Working like this gives me two huge advantages. First, I share this board with all users, so they are able to see when their requested feature will be released. Second, I keep track of everything that should be done or was already done. By using the archive function in Trello I am able to pull out cards (features) that were done a few sprints back.

How to organize ideas in Trello

I like to organize my work around tasks. Having a number of tasks to do helps me to stay focused, getting the most out of a working day. A number of repeating tasks are automated (inspired by The 4-Hour Workweek), so I can focus on two or three main tasks to do for the day.

By working on my main tasks I should not get distracted, but sometimes I find inspiration out of the blue. So I decided to make an idea board, to keep track of my ideas.

Sometimes the ideas are practical and easy to implement, sometimes a little more abstract. I also believe in sharing knowledge, so we have a “Department Idea Board” which we can all post ideas in. The lists are divided by topic, making it easier to categorize ideas. The lists we have in this board:

  1. Online marketing – about lead generation, ads and conversion optimization
  2. Social Media – ideas to produce content
  3. CRM (not already in roadmap) – to list ideas we do not want to take in consideration right away
  4. eCommerce – to list features and functions we would like to have on our eCommerce platform
  5. Other – everything (and I mean everything) that can not be placed in other categories

How to organize your personal goals in Trello

Health and fitness are important for you, so I like to keep track of my personal goals too. My personal board only has three lists in it and I decided to put it as my Chrome start page so I get confronted with my personal goals everytime. My personal board has the following lists in it:

  1. Motivation – a few inspiring quotes I found that help me keep going
  2. Health Goals  – my personal health goals (from trying a new healthy recipe every week to my long time goal to run a marathon)
  3. Someday – in which I put other long time goals (such as travel plans)

Trello Extensions

Trello can be extended in many ways. They even offer a decent iPhone and Android app, making it easy to move cards from one list. I use my Trello app in meetings, using every card as a meeting topic.

I work with two external extensions to make managing my projects even easier.

  1. Scrum for Trello – a free Chrome extensions that enables you to score, categorize and track the status of Trello cards. This extension will make your Scrum sprints even more productive.
  2. Zapier – Zapier is No.1 in automating tasks between cloud apps. I have a list in Trello that I use to copy card from one board to another (to copy an idea from the idea board to the CRM Scrum sprint, for example) and I use it to schedule certain task every week, month or day.

Trello enables me to see the status of my projects and helps me getting tasks done. If you have any other uses for Trello in project management, let me know! 

Human interactions in a self service economy are important

Human interaction in a self-service environment

Technology enabled customers can help themselves in a self-service environment. Self-service is not something new: it has been a question for marketing researchers since a few decades, where self-service studies were mostly aimed at retail stores. Thinking about self-service right will result in a digital platform were customers take care of their own businesses.

When it comes to customer experience design, a customer self-service environment seems like a great touchpoint: have customers do things themselves.

Giving the customer tools to access his information a lot easier will result in cheaper costs per touch points and eventually higher profits. Sounds like a great deal, right? The real question you should think about is: how can I still deliver a great customer experience in my self service environment? The answer: human interactions.

Continue reading…

Customer churn 101: the basics of churn you need to know

Customer churn 101: an introduction

There are a few numbers that I find extremely important for every CRM strategy to report on. On of them is the customer churn: the number of customers that leave after being a customer for a period of time.

I think customer churn reporting is useful, since you will always be looking for ways to grow your business. Instead of focusing solely on generating new (and often the sexy) business, you should also pay attention to your current customer base. Customer churn gives you an indication of who is leaving the company as a customer (and stops generating revenue), giving valuable feedback to your sales reps and the business as a whole.

What is customer churn?

Customer churn simply put is the number of customers who do not generate revenue in time X, divided by the complete customer base in time X. This period can be put as weeks, months, years of even multiple years. The time is defined by the customer base, your industry and the product(s) you sell.

It makes common sense that a car dealer’s customer churn interval is a lot longer than a restaurant’s. A car dealer will put this time frame at maybe three to five years, where a restaurant should stick to something like one or two weeks. Key is that you can only use customer churn well if your business works with subscriptions or recurring products (like groceries).

Continue reading…

modern-crm-manifesto

Introducing the modern CRM Manifesto

I know that a lot of CRM administrators and project managers are not happy with how CRM is being used within their organizations. I also know that a lot of them are not able to use CRM to the fullest. Implementing, using and refining CRM they will face a lot of issues, problems and challenges.

MANIFESTO. noun.

/ˌmanəˈfestō/
A written statement to publicly declare your intentions, motives, or beliefs. From the Latin manifestus — to manifest, to clearly reveal, to make real.

I believe that CRM can not survive in isolation. The strategy and the tools you need and develop must be consistently used troughout the organization. How will CRM look like when it is fully used? What kind of improvements will that make to way we do business? In a world rapidly changing, it sets new boundaries, opportunities and challenges for everyone involved in a modern business.

Here follows my Modern CRM Manifesto with its suggested six constituents. Its aim is to outline why I believe CRM is more than just a state of the art software system.

Continue reading…

gantt-planner-excel-template-free-download

Free download: long term planning template (Gantt Chart)

If you need to make long term plannings for your projects, you want something to visualize it. I made an Excel-template that I use myself pretty often. This type of template is also known as a Gantt chart.

I would like to share this template with you. Download this free template below (right click and select “Save as”).

Download project planning template (.xlsx)

Continue reading…

5-stages-of-change-and-how-to-cope-with-them

The 5 stages people go through during a change and how to cope with them

Every project has a desired outcome and every change has its own resistance. Successful change management involves changing the way people think. Resistance may come from many levels: co-workers, the management and many others involved. Remarkably, it seems like every person deals with change the same way.

I found a really clear model on the internet (right here), explaining the five phases of change people go through and how to cope with those phases as a project manager. The phases are: unawareness, awareness, understanding, believing and acting.

5-stages-of-change-chart

Continue reading…