Archive for May, 2009

Adventures in Internet Marketing

Book Publishing Ain’t What It Used To Be

It’s a lot easier. I just published the Second Edition of my book, Building Workflows in Dynamics CRM 4.0. I used the “self-publishing” site, www.Lulu.com, and although I’m happy to report that the publishing part is a lot easier nowadays, the part about writing good content is as difficult as ever! I think my book turned out well, however, and I recommend you buy it and give me your feedback. In the rest of this article I’ll talk about why I wrote it and what I was going for, as well as a few tidbits about lulu.com I thought you might find interesting.

But if you want to go straight to the checkout counter, here you go:

Support independent publishing: buy this book on Lulu.

 

Why I Wrote a Book on Dynamics CRM Workflows

It wouldn’t take more than a visit or two to my blog to realize I’m very interested in Dynamics CRM 4.0 workflows. I’ve been using, consulting and training on CRM 4 since before it came out, on CRM 3 before that, and I think the improvements to workflows are the single biggest area of improvement from the previous release to the current one.

As I was learning how to do workflows in CRM 4.0 I had to rely on a mish-mash of learning materials: blog posts, msdn articles, the CRM 4 SDK…and most of all, trial by error. There were no good books dedicated to the topic (or even bad ones, for that matter), so I had to take this brute force approach to learning it.

In my experience the brute force approach is often effective, but not very efficient, and my learning of Dynamics CRM 4 workflows was no exception to this rule. That is, I ended up learning the topic (very well, I think!), but it could have been done in a lot less time.

That’s why I wrote a book all about Dynamics CRM workflows: so you can learn more efficiently how to build, maintain and troubleshoot them.

Why I Published on www.Lulu.com

If you want to publish a book, www.Lulu.com is a good place to do it. It’s a self-publishing site, with all of the tools you’d expect to make the publishing process easier: a wizard to walk you through uploading your content, selecting from different printing options, creating your cover, and so forth. But what makes it more interesting is its online marketplace — not only can you publish your book there but you can market and sell it as well.

I published a first edition of my Building Workflows in Dynamics CRM 4.0 in October 2008, and just released a brand new and improved Second Edition.    

If you need to learn about Dynamics CRM 4.0 workflows, I recommend you purchase my book. Along with a book purchase, you get a free subscription to the online version of the book, which contains the downloadable (and frequently updated) content, plus all of the workflows so you can download them, import them into your CRM organization and modify them to suit your business requirements.   

How to Find it and Buy it

Here’s my “storefront” on lulu.com: http://stores.lulu.com/richardknudson

If you visit the storefront you’ll notice the book is even available in an “ebook” format! So in case you’re an avid Kindle reader, you can at long last curl up with a good digital workflow read.

Leave a Comment

Do your Marketing Lists Grow over Time?

Use a Custom Audit Entity and a Simple Workflow to Find Out

I’ve always liked lists: shopping lists, birthday gift lists, to-do lists, top ten American League hitters by different categories, you name it. One of my current favorite list types is the Dynamics CRM Marketing List. (I’m sure you wondered where I was going with that list thing!).

It took me a while to appreciate the value of marketing lists and to develop some good intuition about their strengths (and their limitations!). In this article I’ll provide some tips and tricks on how to get the most out of marketing lists, and show you how to use a custom entity and an audit workflow to keep track of how your lists change over time.

Marketing List Fact #1

Marketing lists have “members”, and those members are restricted to Account, Contact, and Lead records only. This is one of the primary limitations of marketing lists. From a practical standpoint, it means that if you want to take advantage of marketing lists you might have to “shoehorn” something that you might not regularly think of as one of these entities…into one of these entities.

Now unless you know the trick I’ll describe later, it might never occur to you to do this, but you can decide for yourself later on.

Marketing List Fact #2

Marketing lists are static. The way they work is, you build a query to select the list’s members from the underlying records in your account, contact or lead tables. After you add the members to your list you get a convenient “members count” value that tells you how many members there are. This is nice, by the way, since it’s not that easy to tell how many records you have. (Navigate to the standard contacts grid, and see if you can tell how many contacts you have. If you’ve got more than 250, there’s nothing built in to the standard UI to tell you!)

But the point is, once you add members to a marketing list, no matter what happens to the underlying data, the members count stays the same until you manually update it. For example, on a monthly basis I send out an email newsletter, and I use a marketing list of Contact records for the purpose. Every month before sending out the newsletter, I need to update the members of the marketing list to make sure I do things like this:

  • Add new contacts who want to receive the email
  • Delete contacts who may have opted out, or may no longer be active

Once you get used to the fact that marketing lists are static you appreciate why they’re that way…but first you need to realize it and make refreshing them part of your regular routine.

Marketing List Fact #3

As I mentioned previously, marketing lists have a “members count” field that tells you how many current members are in the list. If you’re interested in building your marketing lists over time, this is obviously an important number, and if you’re a marketing manager who is partly compensated by growing marketing lists, it’s a really important number. As you may know, there are no built-in audit capabilities for any Dynamics CRM records. There are some well-known techniques you can use to add auditing for records like accounts, opportunities, and so forth; here’s a link to an article I wrote on the topic.

What I’ll describe here is a way you can adapt that technique to the current challenge: how do you keep track of how your marketing lists change (hopefully, grow!) over time.

Once you understand the general approach to creating audit records, this version is simple:

1. Create a custom entity (I call mine “Marketing List Audit”) with a custom integer attribute called something like “Members Count”.

2. Create a 1:N relationship from Marketing List to the Marketing List Audit entity.

3. Create a workflow on the Marketing List entity that adds a related record to the Marketing List Audit entity. Update the audit record’s “Members Count” attribute with the current value of “Members Count” from the Marketing List.

That’s the basic technique. Here are a couple examples of how it can look when you’ve got this kind of auditing in place.

Here’s the view from the Marketing List, of all the associated audit records, the count and the date the audit record was created:

 marketinglistaudit1

Here’s a part of a report, written using the CRM 4.0 Report Wizard – this is a good example of how a time series of data can look. You can see that the data points map to the audit records shown in the previous screen shot.

 marketinglistaudit2

Implementing the Marketing List Audit Functionality

Just for fun, I’ll explain this functionality using screenshots of the workflow itself, starting off with one of the Administration tab.  Consider using the description field to make your workflows more self-documenting, like I show here:

 marketinglistaudit5

The workflow is written against the Marketing List entity, and you can see in this example I expose it for On Demand use, and have it run automatically when attributes (members count) change:

marketinglistaudit3    

It only does one thing: creates a new record for the Marketing List Audit entity. I use Dynamic Values to populate the name, relate it to the parent record, and fill in the value of the Member Count field:

 marketinglistaudit4

That’s pretty much it!

One little security caveat

One thing to keep in mind: if you make a workflow like this available for On Demand use, another user might be able to run it. If they do, they need to have Write privilege on the Marketing List Audit entity. This is a common gotcha in these situations, since if you have it run automatically that is not the case. This can be a confusing issue, so here’s a quick summary:

  • Workflows run On Demand run in the security context of the User who ran the workflow.
  • Workflows run automatically run in the security context of the Owner of the workflow.

Since it tends to be System Administrator types who create automatic workflows, those workflows generally won’t have any problems running. In this example, since System Administrators have Write privilege on all entities (including custom ones), it will work. But if it’s exposed On Demand and the User running it doesn’t have Write privilege on the custom entity, it will fail with an ugly error message.  

Let me know if you have any questions, and I hope you find this useful! If you do, check out the brand new Second Edition of my workflows book, cleverly titled Building Dynamics CRM 4.0 Workflows, Second Edition. It’s got 150 pages of workflows like this one, and lots of others. If you purchase it, you also get a subscription to the online version of the book, where you can download all of the workflows from the book, plus more as I add them.

Comments (2)

The Emergence of Dynamics CRM as the XRM Platform

Summary

The “CRM” in Dynamics CRM stands for customer relationship management, and indeed the 4.0 release is an excellent application for CRM. It comes pre-configured with excellent “out of the box” support for four important functional areas: sales, marketing, service management and service scheduling. It’s a web-based platform based on the .NET 3.0 Framework, sports tight integration with Outlook and the other Microsoft Office applications, and gives customers a choice of an on-premise or a hosted CRM solution.

For a variety of reasons, however, Dynamics CRM is evolving past its CRM-only roots and emerging as a platform for the development of web-based applications in any number of functional areas. These might include obvious extensions of the CRM legacy, but they might be in totally different areas. In recognition of this trend, many have begun to use the term XRM, with the “X” standing for “anything”, driving home the point that it’s no longer just customer relationships we can use the platform to manage.

In this article I will sketch out why I believe this is happening, and why I think it’s useful to think of Dynamics CRM as an XRM platform. If you’re considering creating or upgrading some applications and haven’t had much recent experience with Dynamics CRM, I’ll provide some background on its application development toolset and why you should consider using it. Also, I will include an informal survey of some of the non-CRM functional areas I’ve seen it extended to.

Why Dynamics CRM for Application Development?

Here I will summarize the main reasons for Dynamics CRM’s emergence as a general-purpose application development platform.

1.     It’s the Database, Stupid!

To poorly paraphrase James Carville, the most important reason Dynamics CRM is good for a wide range of business applications its tight integration with and transparent reliance upon the SQL Server database platform. A result of this is that a power-user or a business analyst can use it to create a solid custom database application without writing a single line of code. Web-delivered DBMS applications are important for a wide range of organizations in a wide range of functional areas…and traditionally they’ve been a bear to write! It’s difficult to take an inherently difficult process and turn it into something relatively easy, but that’s what Microsoft’s investment in the Dynamics CRM platform has done.

There’s a bit of jargon to learn, but pretty quickly you get comfortable using the term “entity” for what in another environment you might call a “table” or an “object”; and using the term “attribute” instead of “column” or “property”.

The platform comes with existing entities that collectively define its core CRM functions. For example, “Account” and “Contact” are the so-called customer entities. Opportunity, Quote, Order and Invoice are entities that can be used for an out-of-the-box sales pipeline. The “Case” entity is central to the service management function; “Service Activity” is central to service scheduling, and so forth. Out of the box, Dynamics CRM comes with 54 entities, which can all be customized to varying degrees.

These entities include a well-defined set of “Activities” (phone calls, emails, appointments…) we can use to record our interaction with Accounts, Contacts, and so forth.

You can customize these “out of the box” entities, using the simple, no-code required toolset, in ways like these:

  • Customize their forms
  • Change their names
  • Modify existing attributes (e.g., change display names or picklist values)
  • Add custom attributes
  • Modify their relationships to each other (e.g., when an account is reassigned do not “cascade down” reassignments to child records)

You can create entirely custom entities with the same toolset. This is where much of the fun begins, since you can design custom entities to accommodate pretty much any functional requirements you can think of. Custom entities are even more “customizable” than the out of the box entities, but since they are still “full-fledged” entities they are just as manageable. You can create and as necessary modify database relationships between your various custom entities and between custom entities and built-in entities. I’ll discuss some examples later in the article.     

2.      Web-Delivered Development Environment

I know that Visual Studio developers scoff at the simplistic “development environment” provided by Dynamics CRM. In fact, with the exception of the workflow design environment, the overall development toolset was virtually unchanged from 3.0 to 4.0. I admit at first I didn’t like the restrictions imposed by this approach: no drag and drop, a single application form for each “entity”, a limited form event model, and so forth. But I got used to it, and I’ve since come to see it as one of the primary strengths of the platform. Here’s why:

  • For a wide class of customizations, there is literally no required toolset, since IE is essentially the development environment. This means less configuration and support, and it also lessens the learning investment on the part of the customizers.
  • Precisely because the development is limiting, supported customizations all have a similar UI. You don’t get the ransom-note user experience of many of the Access or VB forms out there… because you can’t do that with the supported tools!
  • 3. Customizations are Stored in the Database (see #1!)

All of the customizations I’ve described so far are very conveniently stored – as so-called “meta-data” – in the same SQL Server database that stores all of the rows and columns of what we traditionally think of as our application’s data: contacts, accounts, opportunities, projects, etc. This is another of those factors it’s easy not to appreciate the importance of at first. Here are some of the primary advantages:

  • Most of your customizations are backed up by and restorable from your normal SQL Server backup/restore routines.
  • Customizations are portable in the form of XML files that can be exported from one Dynamics CRM “organization” and imported to another.
  • All customizations performed in this “supported” fashion will upgrade from the current version of Dynamics CRM to the next. This importance of this point is easy to miss. What it means is there is a well-defined approach to customizing the platform. At first, it seems a little like nagging, all this insistence on taking a “supported approach to your customizations”! But once you realize it really means that Microsoft tech support is on the hook for making sure your customizations still work when you upgrade to the next version, it pretty much makes the “nagging” worth putting up with.
  • The Dynamics CRM platform exposes the UI of all of these customizations through the browser experience. This means that you only need to create a customization once and the platform guarantees its proper functioning wherever and however it’s exposed: CRM on-premise or CRM Online; the web client or the Outlook client.

XRM Examples

This is the easy part, since virtually any application you might tackle with a traditional dbms environment is fair game for Dynamics CRM. I’ll tick off just a few of the more interesting applications I’ve seen, been involved with, or imagined.

  • Teacher recruiting and retention: http://www.microsoft.com/dynamics/crm/product/education.mspx
  • XRM for government and constituency management: http://www.microsoft.com/australia/dynamics/crm/product/government.mspx
  • Event management: http://www.codeplex.com/crmaccelerators/Release/ProjectReleases.aspx?ReleaseId=19077 (this is one of my personal favorites, having been the proprietor of a training firm for the better part of the last 20 or so years)
  • Girl’s softball team management. My daughter’s 3rd & 4th grade girls’ softball season just ended, and although I didn’t have time (this year!) to work up an application to manage everything, next year I will for sure. Dynamics CRM – XRM, that is – would be ideal for this. I’d create a new organization on my Dynamics CRM 4.0 Enterprise Edition deployment, and customize the Account entity into a “family”. (I normally had one email address per family, and this would give me – finally! – a good reason to send an email to an “account” record.) Contacts would become players, and I’d create a custom entity for “games”. (this would have date & location attributes & so forth, and I’d probably want to track results, even though I know everybody’s really a winner no matter what the score at the end of the game!) I need to think about this a little more, but I’m leaning to a 1:N relationship from “Games” to “At Bats” (another custom entity). Then I need another 1:N, from “Players” to “At Bats”. I think this gives me what I need to keep track of how everybody does, automate the tedious process of sending the emails out to the parents on the schedule…

If you read this far, you might guess I’m as enthusiastic about coaching Bridget’s team as am I about the emerging XRM platform. I think some of the girls actually learned from me why they should tag up on a fly ball with less than 2 outs. Talk about important!

So I’ve got big plans for next year:

  • Roll out the softball team management XRM application
  • Teach Bridget’s teammates about the infield fly rule

Richard

Comments (3)

CRM 4 Certification Practice Tests

Recently I’ve been authoring practice test questions for the three core CRM 4 certification exams. I’ve got LOTS of other articles on the exams and how to prepare for them in the certification category; in this post I wanted to focus on the practice tests only, so they aren’t buried somewhere deep in a post.

Links to all of the practice tests can be found on the new Certification Prep page hosted on www.IMGinc.net

Let me know what you think. I’m interested in feedback about the test content as well as about the presentation and testing engine. The questions on these tests are a subset of the content I’ve developed and I’m toying with various ways of making the rest of the content available — I’d be interested in your feedback on that as well.

Comments (4)

Ten-Minute Tips – Mail Merge and Mailing Labels using the Outlook Client

When it comes to mail merge in Dynamics CRM 4, the Outlook client is your best option.

Here’s a “ten-minute tip” video on the topic I posted on YouTube. I hope you learn something from it, and let me know if you have any questions.

Comments (2)

Use Workflows to Audit Deleted Records

Sometimes What’s NOT there is What’s Important!

In Dynamics CRM it’s possible to delete Opportunity and Case records. (This might sound trivially obvious, but in fact there are many kinds of records that cannot be deleted, such as User, Business Unit, and others.) Even though a well-designed implementation will use security roles to guard against the accidental deletion of important data…well, you know what they say about the best laid plans of mice and men. If you’ve ever been in a situation where a number of important records were deleted, you’ll be glad to know about the technique I discuss in this article!

In Dynamics CRM 4.0, one of the big improvements to workflows was the introduction of the “Record is deleted” trigger. I appreciate from (painful!) experience the value of this trigger, but I also know it can be hard to understand at first.

You might wonder, for example, if a workflow can use this trigger to roll back (”un-delete”) a deleted record. It can’t.

So if you can’t un-delete a record, what good is the delete trigger? Plenty, it turns out, since a workflow instance triggered by a delete event contains all of the values of the deleted record! The trick is to write them out to some kind of “audit” record so you don’t lose all of the data. I’ll show you an example of that here for the Opportunity entity, and you can adapt it to your specific business requirements.  

The approach I will take here is to create a custom entity that can be used to store information about deleted Opportunity records. As you’ll see, most of the work is in creating the custom entity; once the audit entity is created, the workflow is pretty simple!

Part 1: Design and Create the Audit Entity

Start by selecting from the 36 attributes available in the un-customized CRM Opportunity entity and determining the ones you want to store values of in your audit trail. This will obviously be determined by your business requirements, and will generally be a longer list than the one I propose in this table:

Display Name Type
Potential Customer Lookup against customer
Est. Close Date Date/Time
Est. Revenue Money
Modified by Lookup against user
Owner Lookup against user
Topic Nvarchar (300)

 

To create and configure the custom audit attribute, follow these steps:

  1.  On the Dynamics CRM site map, click Settings, then click the Customization tab. Click Customize Entities, then click New.
  2. Name it “Opportunity Audit”, and (optionally) change the name of the default primary key label to “Topic”, so it matches up to the corresponding attribute in Opportunity.
  3. Specify that the entity is to be organization-owned, that it does need support for Notes and Activities, and that it will only appear in the Settings area. Click Save. After the custom entity is saved, your entity form should look like the following:

 opportunitydelete1

4. After the entity is created, the next step is to add the required custom attributes. Of the six attributes indicated above in, one (Name/Topic) is already created, three (Potential Customer, Modified By, and Owner) will be created by creating custom relationships, and the Estimated Close Date and Estimated Revenue attributes need to be created “by hand”. The next figure shows what a subset of the Opportunity Audit attributes (the ones I created) look like once they’re created.

 opportunitydelete2 

5. Rather than go through a detailed step-by-step recitation of how to create each one, I’ll provide high-level instructions here:

a. To create Est. Close Date and Est. Revenue, simply click New, enter the Display Name and select the appropriate type. Remember what you want to do is have these match up exactly to the corresponding attributes in Opportunity, so if necessary, open it up in another window to make sure!

b. The three lookup attributes (Deleted by, Owned by, and Potential Customer) provide a good example of Dynamics CRM’s custom database features. Both “Deleted by” and “Owned by” should be filled in automatically, respectively, with the user who deleted the record, and the record’s owner at the time it was deleted. In CRM 4, you can create a new relationship between a System entity like User and a custom entity like Opportunity Audit to get this done. Since we will potentially have many audit records for a single user, click N:1 Relationships, and then click New Many-to-1 Relationship. For the “Deleted by” attribute, you want the form to look like the following figure. The “Owned by” will be identical (except for the name of the attribute), and the “Potential Customer” needs to be a lookup against either Account or Contact. I’ll use Contact for this example.

opportunitydelete3 

6. After creating the custom attributes you want to track, you can add the attributes as fields on the entity’s form. This isn’t a real requirement, but it’s helpful to have a form to look at in certain circumstances and it doesn’t take much work, so I generally do it.

7. Finally, save and publish the Audit Entity.

 Part 2: Build the Delete Workflow

In this example, all the hard work’s essentially done. To build the workflow, follow these steps:

1. Create a new workflow with a scope of Organization and automatically triggered on the “Record is deleted” trigger. It only needs one action, which will create an audit record:

 opportunitydelete5

2. To populate the Opportunity Audit record with the values you need, click Set Properties.

3. Use Dynamic Values to configure the values you want. I often use a mix of static text and the audited record’s “Topic” field to construct a sufficiently eye-catching Topic. Remember this is supposed to flag deleted records and make them stand out, so in this example I included some “***” asterisks on the front of the Topic field.

opportunitydelete6

4. Click Save and Close, then Publish the workflow.

Some Closing Thoughts

Test it to make sure it works as expected. The simplicity of a workflow like this one is due to its singleness of purpose, so to speak. An alternative approach is to create a more general audit capability, where you write out audit records not just for deleted records but also for important changes (changes in Status, changes in estimated close dates and revenue, etc.)

If you’re just starting out, I recommend you start with the simpler approach I reviewed here. Here’s an example of a problem you can run into with a more general approach:

Suppose you create your audit entity as a child entity of Opportunity (Opportunity has a 1:N relationship to the audit entity). This works fine if you write out an audit record on an existing Opportunity record. But if you want to keep track of deleted records it won’t work: you can’t create a child record related to a deleted Opportunity record…since the record isn’t there anymore! Not that there isn’t a way to solve this problem…but it is more complex!

If you find this useful…

This example is taken from my book on Dynamics CRM workflows, cleverly titled “Workflows in Microsoft Dynamics CRM 4.0″. It’s available for purchase on Amazon and Lulu.com (cheaper on Lulu). Here’s the link if you’d like to purchase the book:

Support independent publishing: buy this book on Lulu.

Comments (5)

Inside View: The Ultimate CRM Mashup?

Summary

Inside View is an amazingly useful tool. It’s a subscription web site that aggregates up a number of marketing/prospecting databases (jigsaw, hoovers, D&B, zoominfo). They’ve got a great pricing model, the tool can sit inside an IFRAME on your Account or Lead forms, and if you need to prospect, I highly recommend you check it out. (And if you don’t need to prospect, please tell me  how you do it!). In a minute I’ll tell you the funny story about how I learned to use it, but first, why it’s the ultimate CRM mashup.

Here’s how it looks embedded in an IFRAME on an Account form:

insideviewperfect1

It’s got seven tabs. “Analysis” and “Key Info” (showing) provide basic account information, and the other five aggregate information from lots of different databases to show them in context. Inside View has deals with all of those databases (some of which I mentioned above but there are lots more), so as long as you subscribe to Inside View, you don’t have to individually subscribe to all of the other ones.

You can probably guess what the other tabs expose, but I’ll show you the “Buzz” tab since it’s one of my favorites:

insideviewperfect3

It might be a little hard to see, but the Buzz tab is a search on the account name exposed as a Twitter feed. To test it, I loaded up one of my favorite account records, switched to a Twitter session and tweeted something about the account, then switched back to the account form, refreshed, and there it was –  pretty cool! You can even see the account’s web site traffic courtesy of Compete.com. (the numbers are in thousands of unique visitors — www.kraftfoodscompany.com gets a view more visitors than the Trick Bag!) 

Prospecting with Inside View

There’s a free version I’ll tell you about below. I tried it, liked it, and purchased a subscription. A single seat subscription is $99/month, which might sound like a lot until you realize you get unlimited exports from Inside View’s account and contact/lead database. Most of the other prospecting databases I’ve subscribed to have a pay-per-lead model, or an unlimited subscription that’s much more expensive than $99/month.

You can search in lots of different ways to identify prospects; for me the best option has been to identify people with specific job titles (e.g., CRM Project Manager) at specific accounts. After identifying the records, you can export them to a CSV then import into CRM.

I’m jealous of the SalesForce.com integration, since they can do an automagic import, no CSV file required! The Inside View people tell me this is coming soon to the Dynamics CRM version — I hope so!   

How it Works

One of my sales reps received an email from a rep at Inside View a couple weeks ago. I copied and pasted the following text from it:

———————————

 Customize Account Entity 

  • Double-click “Account”
  • Click “Forms and Views”
  • Double-click “Form” (The main application form)
  • Click “Add an IFRAME”
    • Name: INSIDEVIEW_ACCOUNT_CONNECTOR
    • URL: javascript:false
    • Check the box for “Pass record object-type code…”
    • Label: InsideView
    • Check the box for “Display label on the form”
    • Uncheck the box for “Restrict cross-frame scripting”
    • Section: Account Information
    • Click “Formatting” tab
    • Scrolling: Never
    • Uncheck the box for “Display border”
    • Leave all other default values and click “OK”
  • Click “Form Properties”
  • Select “OnLoad” event and click “Edit”
  • Check the box for “Event is enabled”
  • Copy and paste the code provided for the Account connector (I’ll email you the code if you fill out the form I link to at the end of this article)
  • Click “Save and Close”

From the “Customize Entities” view, select “Account” and click “Publish

———————————

In the normal course of events, I’m not able to lift perfectly good blog copy from an email, and I have to admit, seeing these perfectly good instructions on how to customize the Account entity in an email to Kim prompted me to check her security role and make sure she wouldn’t actually be able to DO this. She can’t, and anyway she has the good sense not to try it, but I thought it was interesting that somebody would send a sales rep instructions like that!

Anyway, those are your step-by-step instructions if you want to try the free version out on your own CRM — works with both CRM Online and on-premise. The free version gives you the same sweet integration, but you don’t get to pull contacts & some other things you’d expect to have to pay for. All you need to get it to work is the jscript code that goes into the Load event of your account form. The Inside View people will send it to you, but I checked with them and they said it was OK if I did also.

So, to get the Account form Load Event code for my current pick as the Ultimate CRM Mashup, click here and fill out the form.

Comments (2)

CRM 4.0 Certification Practice Tests

Back in the old good days, Microsoft Learning used to have some practice tests for the Dynamics CRM 4.0 certification exams. For a long time they were a staple of the CRM 4.0 training & certification bootcamps I ran for Microsoft: at the end of one of the classes I’d walk through them, ask the students what the answers were, make it an interactive learning session. It was fun and I think many of the students learned from it. As I always told my students, the exams were not awesome, but they were good. There were some typos and a few bad questions, but all in all a lot better having something than nothing…and there are still no purchasable practice tests!

Recently I started experimenting with a test authoring tool included in an Adobe app called Captivate. Here’s my first public unveiling of some practice test content for the Dynamics CRM certification exams. I’m not very good yet at the test authoring tool, but I think the content is good, in the sense of being close to what the actual test questions are like.

Links to all of the practice tests can be found on the new Certification Prep page hosted on www.IMGinc.net

Let me know what you think!

Comments (2)

Market Share, Tweet Share, and Market Leadership

I’ll admit I’m skeptical about the value of market share. Here are just a few reasons not to put excessive focus on it:

  • Various definitions of ”the market” are essentially arbitrary, and share measures will be highly dependent on these definitions.
  • What are the important metrics? Revenue? Seats? Server licenses? Different vendors have different licensing models, and when you throw open source into the mix, traditional measures might miss important trends. (If you measure blog platform market share by revenue, Microsoft’s probably the leader, but there are a lot more WordPress blogs out there than SharePoint!)
  • Other than as a warning indicator if the vendor you’re using drops to 0% or thereabouts, it probably isn’t a good way to decide on a platform anyway!

Here’s a good article that addresses the “does market share matter?” question in more detail: Chris Selland’s article on market share.  

I think the best reasons to care about market share are that it’s fun and interesting. In that spirit, the numbers in the following table are from the Gartner 2007 CRM market share report. Just for fun, the default sort is alpha by vendor name, but you can click columns 2 or 3 to sort, respectively, by the Gartner estimates of share and revenue growth rate (from 2006 to 2007).

[table id=1 /]

(In column 2, btw, the numbers in parentheses are revenue in thousands of US $, and estimated share.)

To me, these numbers seem reasonable:

  • I’d expect SAP and Oracle to have leading shares, and also to be growing their revenues, but slowly enough to be losing share.
  • When the “Others” category has a 40% share, that’s a market in flux, possibly ripe for consolidation.
  • SalesForce.com and Microsoft are small players overall, but look at those growth rates!  

I’ve never been one to shy about reaching conclusions based on very little evidence, so here’s my impression of the CRM market. In 18 months, Microsoft and SalesForce.com will be contending for share leadership. Apart from both having good platforms, each will get there in its own way:

  • Microsoft will leverage the partner channel the way it always has. I’ve seen it the last couple of years in the investments they’ve made in partner training and certifications, and the enthusiasm with which the partner community is adopting the Dynamics CRM platform.  
  • SalesForce seems to me more like Apple, with its direct sales model, and the vibrant AppExchange being to SalesForce.com what the App Store is to the iPhone.  

But as I said, I’m skeptical about market share. It’s market leadership that matters. And I want to know what you think. So in that spirit, please fill out this simple two question survey, and we’ll come back to this in 18 months and see how we did.

I used my editorial judgment and added Sugar CRM (www.SugarCRM.com ) and Sage. Another one of those arbitrary things, but it seems reasonable to me that they are two of the most important CRMs in Gartners “Others” category.

Tweet Share

Quickly, though, before you take the survey, consider “Tweet Share” as another alternative. I’ve talked about Twitter in some previous posts, and tried to make the point that the value of Twitter lies in search. For example,

http://search.twitter.com/search.atom?q=”salesforce”=&rpp=50=&tude=:-)

returns the most recent 50 Tweets containing “salesforce.com” with positive “tude” (that is, containing a smiley face). The “atom” qualifier turns the results into an RSS feed that a good developer could do some analytics on. Compare the results you get for that search with what you get for this one:

http://search.twitter.com/search.atom?q=microsoft crm=&rpp=50=&tude=:-)

or for this one:

http://search.twitter.com/search.atom?q=crm online=&rpp=50=&tude=:-)

Now this is about as unscientific as you can get, but my observation from looking at those search results is that Microsoft has some work to do to win the “hearts and minds” of people who care about CRM enough to Tweet about it. To me it seems something like the AppExchange really drives the passion and energy in the SalesForce.com community – I’d love to see Microsoft do something like that!

The First Ever Trick Bag Market Leadership Survey 

[SURVEYS 1]

Leave a Comment

Adventures in Cloud Computing, Part 2

A BPOS Story with a Happy Ending

One of the first articles I posted on the re-launched Dynamics CRM Trick Bag was a bit of a rant about the Microsoft product Business Productivity Online Suite (BPOS, for short). This is Microsoft’s “cloud computing” suite of hosted Exchange, SharePoint and Live Meeting. I had a heck of a time getting it configured, and in the previous article I compared BPOS somewhat less than favorably with their other high-profile cloud offering, Dynamics CRM Online.

The day after I posted that article, my phone rang off the hook. I probably received ten calls from three different members of the Microsoft Online Services team. One of them ended up playing the quarterback role for me, and set up a call with the appropriate people from their side, with as it turned out two main goals:

  1. Solve my problems and get my company up and running
  2. Get my feedback about what they could be doing better to improve their service

I must say, I was quite impressed. I didn’t post the article thinking it would get a reaction like that, and I’m still not sure what kind of alerts they must have configured on Twitter to have reacted so quickly. But in any event, after a couple of calls and some changing of MX records and some making of the hosted email server “authoritative” for incoming email, we were up and running. We’ve been up now for a couple of months, it works great, I don’t get any untrapped spam anymore, and we’re a happy camper.
As far as the constructive feedback I offered them, I think it boiled down to:

  • The distinction between the user site and the administrator site was confusing and should be cleaned up.
  • They need better step-by-step instructions overall, and in particular for doing things like changing MX records & making the MS-hosted server authoritative for inbound email.

Based on my experience, I’d say that BPOS will be successful. The team is certainly listening to its customers and trying to fix their problems. I was amazed at how fast they responded to my venting, as well as with how carefully they listened to my input. They still have a little work to do in making it easier to get up and running, which I’ll try to summarize next.

BPOS and Dynamics CRM Online: User Experience Compared

I used the hosted version of Dynamics CRM (“CRM Online”) for about a year. (I used the free partner demo version, and kept our production CRM on the on-premise version – Dynamics CRM 4.0 Enterprise, to be exact.) As I mentioned in my previous article, the CRM Online user experience is better than BPOS, and the BPOS team would do well to take a page or two out of the CRM Online book. With CRM Online, you whip out your proverbial credit card, pay for however many seats you want, and you’re up and running immediately. In my opinion, any user who can use a web browser will be able to get CRM Online up and running; again, this is still not the case with BPOS, which I believe most organizations will not be able to get up and running without the assistance of a consulting shop or BPOS technical support. Not exactly the Gartner Magic Quadrant, but here’s one way to look at it:

Product Who will be able to get it up and running? Who will be able to migrate data/mailboxes
Dynamics CRM Online Anybody can do this Will require assistance
BPOS Will require assistance Will require assistance

 

One of the sweet spots for any hosted SaaS offering has got to be the small-medium business market. I suspect I’m not the only business proprietor who’s downsized in the past few years and simply can’t justify staff and infrastructure to maintain a bunch of servers in my shop. For me, there’s absolutely no strategic value in hosting my own Exchange Server, and very little in hosting my CRM server.

A big part of the costs of being on-premise are the costs of installing, configuring…getting up and running. In my opinion, the current version of Dynamics CRM Online effectively removes those costs, which will help push organizations to the online product.

The BPOS team has a great product and like I said above they seem very committed to improving the customer experience. But to really drive adoption, they need to change the “will require assistance” in the Up and Running column to “anybody can do this”; they have a high bar to shoot for, set by Dynamics CRM Online.

Comments (2)