Archive for February, 2009

Getting the Trick Bag Up and Running: How I Did It

 

For me, Saturday February 28, 2009 was a Big Bang of sorts. I’d spent the better part of the previous two weeks somewhere between the depths of despair and slight glimmers of hope. Mostly the former. My company was at the (long) tail-end of an office move, and the last to go was our collection of servers (email, web, blogs). To put it mildly, the move didn’t go smoothly, and just in case I needed a reminder that hosting isn’t our core competency (which I didn’t), I got one.

I’d resolved many times before to start moving our applications to a real hosted platform, but somehow just never quite got around to it. This time, though, I really had to figure it out if my content was going to see the light of day again (and for many days in a row with no downtime even!). So here’s my story.

I’d read enough about WordPress to know it was the leading blogging platform, and that it was evolving into a content management system with user and roles, a robust market for third-party apps (plug-ins in the vernacular), and other features I needed.

I knew there were lots of hosting options, and read some reviews of some of them that hosted WordPress. One of them in particular — www.dreamhost.com — sounded interesting, so I went with it

 I was very pleasantly surprised how easy it was to get up and running in transitioning to the new environment. here’s what I did:

 

1.       Registered and paid for a year’s worth of hosting on dreamhost.com — $119.95 for one year (they discount down to $5.95 per month, but only if you pay for 10 years!)

2.       Signed in to networksolutions.com, which is where we maintain our domain names. 

3.       Changed the dns settings for dynamicscrmtrickbag.com and dynamicscrmtrickbag.net to point to the dreamhost name servers.

4.       Signed in to dreamhost to get to their “control panel”. Had to create an admin account in the process.

5.       From the control panel, clicked on Goodies, then did the “one-click install”. (they have this one-click install for many of the most popular hosted apps, including wordpress 2.71 – the first one in the list – and joomla, a wiki, and lots of others.)

6.       Did the one-click install for WordPress, using the “advanced” option. Had to specify another admin account – this one for the mysql database – and could NOT use the same one as for the dreamhost control panel.

7.       I had to create one final admin account – this one for my now up and running hosted blog site at www.DynamicsCRMTrickBag.com

I waited 20 minutes and everything was done. Boom. Now I have to write some content people might want to read. That’s the hard part — and it’s what SHOULD be the hard part. Not all this hosting stuff.  

 

Leave a Comment

Welcome to the new Trick Bag

Hi –

If you’re a  reader of the posts I’ve been making on the Dynamics CRM Trick Bag — the old site is here: http://www.imginc.com/blogs/richardk/default.aspx – you might not be surprised that I’ve made a new home for it on a hosted (!) platform. So here it is. I’ll give you some details of the new platform in a forthcoming post (it’s actually an interesting story), but for now, I just wanted to let you know that if you found your way here, you’re in the right place (assuming you meant to be here in the first place…and if you didn’t, you’re quite welcome anyway and I hope you visit often!)

Anyway, it’s me (Richard), and in the near term I’ll continue to post on the old site as well as here, but at some point I’ll probably stop posting on the old one or just redirect to here. I will also move over content from the old site as time permits.

And let me know what you think of the new site! I’m running it on the WordPress platform, which is the leading blog software, and has a lot of cool features I’m looking forward to exercising.

Welcome, and cheers!

Richard Knudson
President, The Information Management Group
Gold Certified Microsoft Partner
mobile: 312-513-9401
corporate: www.IMGinc.com
Dynamics CRM User Group: www.DynamicsCRMUserGroup.com
Richard’s blog: www.DynamicsCRMTrickBag.com

Leave a Comment

Assigning CRM Leads on a Round-Robin Basis

I’ve been asked about this a few times and hadn’t yet found out how to do it. My strategy was to keep looking until I found a good solution, and it finally paid off. In Ben Vollmer’s blog post, he explains a sweet trick that will let you do this, with a custom “counter” entity you increment to keep track of who the most recent Lead was assigned to.
 
It’s a very nice approach, and solves the problem with no code. 
 
Nice article, Ben!
 
The blog this comes from, by the way, is the MS Dynamics CRM Team Blog, and it’s a very good source of information. You can navigate directly to the workflow section of the blog here: http://blogs.msdn.com/crm/archive/tags/Workflow/default.aspx
 
Richard

Leave a Comment

Internet Marketing in Dynamics CRM Online, Backgrounder

In the Dynamics CRM Online September Service Update, Microsoft introduced some new marketing features specifically having to do with Internet marketing. It was an interesting first step, but had a number of important limitations:

·         In order to take advantage of the features, you had to select a campaign type of “Internet Marketing” when you created a marketing campaign. When you did this, it exposed the new functionality, but disabled (for that specific campaign) all of the other marketing features you might be used to using in a “classic” Dynamics CRM marketing campaign. This meant that Internet Marketing could only be done as part of a dedicated campaign, rather than as an integrated part of your overall marketing efforts.

·         More importantly, the only Internet Marketing activity it allowed you to integrate into your Internet Marketing campaign type was a Microsoft Live Search Words campaign! I like Live as much as (heck, probably a lot more than) the next guy, but I don’t know of too many people whose only Internet marketing is limited to Live search.   

In my opinion, these limitations made it more of a pilot than a ready-for-primetime part of your marketing toolkit. But the new enhancements might make it worth another look. To understand them, it might help to clarify what I mean by “Internet marketing”. I’ll define it to mean the activities you undertake to further your sales and marketing goals, in which the Internet is the key enabling technology. This is pretty broad brush, but I think it works well. It would include, for example, activities such as:

·         Search word and other pay-per-click ads

·         Email marketing

·         Traditional media (billboards, TV ads, print) with the goal of driving traffic to a web site

·         Facebook, Linkedin, Twitter and other Web 2.0 and social networking efforts

It would not include activities like:

·         Traditional media without mention of a web site or an email

·         Telesales campaigns without mention of a web site or an email

I realize this defines almost everything we do these days as “Internet marketing”, but I think that’s a measure of how important the Internet has become in our marketing rather than a problem with the definition! And one of the most important reasons Internet technologies have come to play such an important role in marketing is because they are so inherently measurable. Traffic to a web site, page views, form submits, ad clicks…these may or may not be the best ways to further our marketing efforts, but they certainly are something you can quantify! For an example, let’s walk through a classic Internet marketing scenario, which I’ll use to define some terms. Suppose you’ve bid on Google Ad Words, or you’ve purchased a banner ad on a web site.

1.       When a potential customer sees your ad, that’s an “impression”.

2.       If they click it, that’s a “click-through”.

3.       The link they clicked takes them to a “landing page”, often but not necessarily on your web site.

4.       If they fill out a form you’ve got on the landing page, that’s a “conversion”.

Now the form they filled out might be a request for information, or an event registration, or a newsletter subscription, or even an e-commerce transaction. Whatever form it takes, it’s a Good Thing from your standpoint…or at least it better be, since it was the primary goal of the ad you purchased!

In any case, it’s inherently measurable, since you got some data volunteered to you in the form of whatever required fields you placed on the form. 

Which brings me in a roundabout way to the point of this article. The new features in CRM Online allow you to create landing pages of the kind I just described, and to associate them with a marketing campaign. In Dynamics CRM-speak, they let you associate a Landing Page with a Marketing Campaign. When somebody goes to the Landing Page and clicks submit, you can have Dynamics CRM create a Campaign Response record.

Note: I bolded the terms that are “entities”, in Dynamics CRM-speak. If you’re an experienced Dynamics CRM hand, please skip to the next paragraph; if not, here’s some background information: In Dynamics CRM marketing, we talk about executing a Marketing Campaign by “distributing” its Campaign Activities.  These might be emails, phone calls, letters, faxes, but the important thing is that they’re the customer touch-points of a marketing campaign. After you distribute campaign activities, good things can happen in the form of a Campaign Response. For example, a campaign response will be automatically generated by CRM if a campaign email recipient replies directly to the email. Suppose the reply does NOT include “Unsubscribe” in the subject line, and they’re actually interested in what your campaign was pitching. An alert sales rep will see the campaign response, convert it an Opportunity, and if that opportunity results in a sale, it’s a beautiful thing: not only did you sell something, but the generated revenue can be tied to the campaign via the campaign response. I like to think of the Campaign Response entity as being the link between marketing and sales in Dynamics CRM, and it’s important to plan your campaign activities so these responses can be created automatically (or with as little manual effort as possible!)

In the Dynamics CRM 4.0 on-premise software, the only way to create a campaign response record automatically is if the recipient of a campaign activity email replies. What this meant was that the only real “Internet Marketing” supported out of the box was the email variety. But the new features in CRM Online mean you can create a campaign response for any campaign that drives your target audience to a landing page and motivates them to click “submit”. In turn, this opens the door for all kinds of interesting and important Internet Marketing activities to be part of your integrated marketing efforts. I’ll talk about the implementation details in another article, but for now I’ll give you a final high-level example of how you can put this to work.

Part of the new CRM Online functionality is a wizard that walks you through the creation of a landing page. The flexibility is somewhat limited, but the pages look great, and since with this approach no code is required my guess is a lot of marketing managers will be fine with it. Microsoft hosts the landing pages – this is the whole idea of hosted software, so this part isn’t surprising. Once the landing page is created, suppose its URL is something like the following:

 

I can drive traffic to that page from anywhere I want to – an email blast, a Google Ad Words campaign, my Linkedin profile, a Twitter tweet – and if somebody goes there and clicks submit, I’ve got the data they entered in my CRM Online.

That’s how the landing page concept works. It’s simple and elegant, and I’m glad to see it’s along the lines I suggested in my earlier article about the first version of this functionality!

That’s it for now. I’ll sign off so I can concentrate on Kate Winslett hyperventilating. (that’s an Oscar reference, btw)  More information on implementation details soon!    

Leave a Comment

Essential Skills for Dynamics CRM

Coming soon to a city near you!
If you need to learn the essence of Dynamics CRM, then I’ve got the training event for you! I’ve teamed up with United Training to bring a series of 5-day hands-on Dynamics CRM Essentials training classes to a bunch of cities around the US in the April-June timeframe, and I hope you or your colleagues can attend. Here’s the landing page for the program, where you can see the complete outline & schedule. If you’re ready to sign up now, here’s the link to the registration page.
 
You can customize your training by only taking the days you need, but if you do the full 5-day session you’ll get Applications, Workflows and Customization, plus a 3-month subscription to online content and support at our Student Portal.
 
And if you’ve managed to locate yourself somewhere not close enough to any of the delivery locations, you can attend online.

Leave a Comment

How I Sinned Against the Church of Google

And I know not how to repent

Full disclosure: I hesitate to write this. Maybe it’s paranoia or maybe it’s recession-induced crankiness, but I’m afraid as soon as I click “submit” Google will shut down my Analytics account, or my gmail account, or even my AdWords account (the horror!). Here’s why.

Almost a month ago I launched the www.DynamicsCRMUserGroup.com site for the user group of the same name, and I thought I’d try out Google’s AdSense on the site. If you aren’t familiar with it, AdSense is sort of the opposite of AdWords, Google’s pay-per-click advertising service. With AdSense, you sign up for free, give them your bank account information, and get a little chunk of jscript code. Then you take the code and pop it onto one of your web pages, and it reads your content and displays a strip of relevant ads along the bottom of the page. Then when your visitors come, and especially when they click one of the ads, you rack up revenue and Google pays you. With as much focus on Dynamics CRM as the content on the DCRMUG site has, I thought it would be a cinch for Google to serve up CRM ads, and sure enough, it worked great! Within days of putting that chunk of code on the home page (on January 15th, to be exact), we amassed enough page views and click-throughs to earn over $5.00! I was psyched – here was a marketing technique that worked, and during a recession even. At our user group meeting in January I let the members know about it, since I didn’t want anybody to think I was getting all pitchy on the site. I wanted them to know that we’d use the (no doubt humungous) proceeds to help defray the group’s operating costs. In the full disclosure spirit, I even put a note on our site, just above the ads, explaining what they were and encouraging our members to click through and buy something from the advertisers.           

Everything was going great. After our $5.00+ day on January 15, we hit a new high of almost $7.00 on January 22 (what is it about Thursdays?), for a total of nearly thirteen dollars. The sky was the limit!

But it wasn’t to be. Yesterday (February 4), I noticed the ads weren’t showing up at the bottom of the page. I logged in to my AdSense account and got what I thought was a mistaken notification that my account had been suspended for “fraudulent click activity”. After a futile search for a way to email or call somebody at Google, I checked my gmail account and found an email from Google that concluded with, and I quote, “If you have any questions about your account or the actions we’ve taken, please do not reply to this email.”

So, I’ve somehow sinned against the Church of Google (gchurch, I call it), although I’m not sure how. Plus, it turns out that when your AdSense account is disabled you can’t sign in to get your account number, and since you can’t reply to their email (see above), the best you can do is fill out the online “appeal for reinstatement” form (which was a little distasteful since I didn’t know of anything I did that should require appealing). And since the form has your account number as a required field…well, you get the picture. The Big G Machine is apparently quite automated, and very unforgiving when you sin against gchurch!

Now if you know me a little bit, you know my positive sunny self wants to pull a happy ending out of every hat, so here are two morals I take from my run-in with the G-Men:

·         Google seems to be a tightly-run operation. The apparently weren’t happy parting with the $13 all those click-throughs might have garnered us. That kind of shrewd financial management should be applauded in today’s environment.

·         I’d spent almost a month trying to figure out AdSense, and it was high time for another data point in my ongoing Adventures in Internet Marketing. Microsoft Live Search, here I come!

Leave a Comment

Making Mashups with Dynamics CRM

Of Wikipedia’s five definitions of the term “mashup”, my favorite is for what they refer to as a web application hybrid: “a web application that combines data and/or functionality from more than one source”. Here’s the link: http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid).

Dynamics CRM, with its relational database platform and easy customization features, is pretty good for mashups…if what you want to mash up are data stored within Dynamics CRM. In an earlier blog post I discussed how you can integrate Dynamics CRM with SharePoint. There are lots of ways of doing that, but the one I wrote about treated SharePoint content as meta-data associated with a CRM record, and I showed an example of constructing a MOSS search dynamically, and exposing the search results on a CRM Account record’s form using an IFRAME. In a different post I showed a different example of a “CRM mashup”, where you could display, again for a CRM Account record, all of the Linkedin profiles of people associated with that Account.

I wasn’t thinking of those as mashups at the time, but after reading the above definition, they fit the term pretty well! The possibilities are limitless, and since a wide class of them use the same basic CRM customization techniques, you can pound them out pretty quickly after a little practice.

Here’s another CRM mashup, having to do with a web site I’ve been using lately called www.Compete.com. One of the things you can do on Compete.com is enter one or more domain names, and Compete will display a chart with various data about their site traffic. For example, here’s a comparison of live.com and google.com:

 

compete_gvl2 

(It might be hard to tell from the picture, but Live closed the gap a little bit in January, according to these numbers.) You can do this for up to 5 domains at a time, and this is in the free version. They have a professional version you pay for that does more stuff; I haven’t taken the plunge with that one yet.

From the mashup standpoint, the most interesting thing about this is the URL: http://siteanalytics.compete.com/google.com+live.com/?metric=uv

Since you can access the free version of Compete anonymously, as long as you can construct a URL like this, you can display views like this in any web application where you can expose a page. In SharePoint you can use the Page Viewer Web Part to do it, in Dynamics CRM it’s going to be an IFRAME.

At the same time I was figuring this out I was doing a little research into different CRM blogs and web sites. I was interested in comparing some of the top sites, and seeing things like how much traffic they got, which if any were ad supported, and things like that. So of course, as any self-respecting CRM customizer would do, I whipped up a little custom entity in my CRM Online organization, called it CRMBlogsandSites, and added some custom attributes for the data I wanted to track. Here’s a view of the data grid:

 

crmblogsandsites

Since I’ve got the URL, I can do my mashup pretty easily. Here’s what one of the forms looks like – I’ll pick on Sonoma Partners in my example:

 

Notice that I’ve got attributes both for the URL and for the “traffic URL”. I created custom tabs on the form to display the web site, and the traffic chart from compete.com. The Site Traffic tab has an IFRAME on it I called “sitetraffic”. (CRM puts a prefix in front of the name, so in my code I’ll refer to it as “img_sitetraffic”. When a user’s on the form and clicks on the tab, it looks like this:

sonomatraffic

To create this little mashup, here’s what I did:

1.       Created the custom entity I needed, crmblogsandsites, display name “CRM Blogs and Sites”.

2.       Added a custom attribute, img_trafficurl (“img” being the customization prefix, so that will most likely be different in your organization, although feel free to use img if you like), display name “Traffic URL”, type nvarchar, length 250, format URL.

3.       Opened up the entity’s form in customization mode and added a tab, called it Site Traffic, then added a section to the tab with the same name, but don’t display it. Also, you have to add the trafficurl attribute as a field on the form, don’t forget that!

4.       On that section, added an IFRAME. I called it “sitetraffic”, and CRM puts the text IFRAME in front of it, so in code you’ll refer to it as IFRAME_sitetraffic. Notice in the following picture that I’ve unchecked “Restrict cross-frame scripting”. Experiment with it both ways and I believe you’ll find it needs to be unchecked. Also notice the default url I’ve entered. As you’ll see this gets updated in code so it’s not critically important, but using this approach always reminds me of what it’s for, so I’ll often use it.

 

iframeproperties1 

 

5.       Added this little jscript snippet to the change event of the trafficurl field (remember that one from above?). Remember to check in the box that says “Event is enabled”, otherwise nothing will happen.

 

crmForm.all.IFRAME_sitetraffic.src = crmForm.all.img_trafficurl.DataValue;

 

 

6.       Finally, navigate to the Form’s load event (click Form Properties, select OnLoad and click Edit), and add this code:

 

var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var sitetrafficurl="";
   switch (crmForm.FormType)
   {
      case CRM_FORM_TYPE_CREATE:
     
         // don't need to do anything 
         break;
 
      case CRM_FORM_TYPE_UPDATE:
        if (crmForm.all.img_trafficurl.DataValue != null)
          { 
         // if it's filled in, put value of img_trafficurl field into sitetrafficurl variable
         sitetrafficurl = crmForm.all.img_trafficurl.DataValue;
           }
         break;
   }
// Set the IFRAME's URL
crmForm.all.IFRAME_sitetraffic.src = sitetrafficurl;

 

Make sure the Event is Enabled checkbox is checked, save all your changes and publish your entity and see if it works. This fundamental technique comes up in lots of different contexts, so it might look familiar. The key is to figure out what kind of interesting information is out there on the web, related to an entity you have or can create in Dynamics CRM; then all you need to do is figure out how to construct the URL. And just remember: for any entity you have in Dynamics CRM, there’s probably meta-data for it out there somewhere!

And if you’ve created any good CRM mashups or have an idea for one, let me know.

Cheers — Richard

 

Leave a Comment

Dynamics CRM News You Can Use, February 2009

dynamicsrv_ltr

CRM News You Can Use

From Richard Knudson and IMG

 

Dear colleague,

Meeting #2 of the Dynamics CRM User Group (DCRMUG) was well-attended on January 27, and this time both online and in person! We talked about why you might need to integrate Dynamics CRM and SharePoint, and how you can do it. Recorded session links are available in the side-bar.

Our next meeting is set for Thursday, 2/26, from 6:00 to 8:30 PM CST. The featured topic should be an interesting one to many of our members: Internet Marketing with Dynamics CRM. I hope you can attend, and feel free to tell your colleagues. For details on what we’ll discuss, click here.

As always, registration is free but we need a headcount, so please go here if you want to attend in person. Based on the popularity of our online attendance option, we’ll continue to offer it, so please register here if you’d like to attend via Live Meeting and conference call.

Who’s Linkedin?


Here’s an article I posted about using an IFRAME to display all the Linkedin contacts for one of your Account records. It uses a different integration approach (code that runs on your server rather than form script) than we discussed at the January meeting; we’ll talk about this at the February meeting.

Dynamics CRM Essentials Roadshow


I’ve had an idea in my head for a long time about the perfect 5-day training event for Dynamics CRM, and I’m happy to announce that we’ve got the right content (you’ll see), the right delivery vehicle (United Training), and the right instructor (me!). Starting March 30 in Seattle, and continuing through April and May in L.A., Atlanta, Chicago, Tampa, and New York, I’ll teach you the essential things you need to know to successfully use, customize, and build workflows on the platform. Here’s the United Training schedule page — I hope to see you in one of these events!

Regards,

 

Richard Knudson

President, IMG — www.IMGinc.com

Proud founder of www.DynamicsCRMUserGroup.com

 

 

 

 

 

CRM Miscellany

 

Lead Notes, Rescued!
At the January DCRMUG meeting, Paul Velgos raised an issue that seemed to resonate with lots of our members. To paraphrase, “My customers don’t like it that when they convert leads, they lose notes and attachments. Can I do anything about it?” In the Ken Phelps stepped up and offered this solution. Nice work, Ken — thanks!

 

Getting in Gtrouble!
I mentioned at the January meeting that I’d added Google AdSense to the bottom of the DCRMUG site. I even joked that I might be in violation of SEO rules by encouraging you to click through on the ads. As it turns out, the Google Police take these things pretty seriously, and the $13 (that’s thirteen dollars) your page views and click throughs generated got us shut down. Here’s the rest of the story.

“Audit Trails” for CRM Records
Recently I posted a fairly detailed article on how to create an “audit trail” for CRM Lead records. It’s a general technique that you can use for any record you need a history of. I also recorded the Office Hours session where I reviewed it.

 

Leave a Comment