Monday, November 23, 2009

Alternative Option to Disabled Field

Disabling fields has been a great way to lock down information within MSCRM. The one issue that I run into with it is that users comment that a disabled field is so "washed out" that it becomes difficult to read.

Another option to use instead of the out of the box disabled, is to make the field read only. It's a very simple script:

crmForm.all.fieldname.readOnly = true;

It leaves the field looking like other fields so that it's not washed out but it cannot be edited from the form. This customization is technically unsupported, but it has been around since the MSCRM 3.0 days and so far Microsoft hasn't locked this script down. We'll find out next version whether or not the script gets carried over or not. But worst case scenario for your scripts would be that they need to be modified to use the disabled option rather than the read only option.

David Fronk
Dynamic Methods Inc.

Friday, November 13, 2009

Easy Emailing from a CRM Contact Record

Has anyone else wanted to be able to click on the email address on a form in CRM and have it email that person/record? Or at least bring up an email message form that can be filled out and sent?



Yes, on the Contact form there is the "Send Email" button, but that sends a CRM email and personally, I'm not a huge fan. They're great for templates but other than that I very much prefer the Outlook experience of emailing.



So, the other day I came up with a good way to get the functionality that I really wanted. I used some script from one of my coworkers that turns the label of a field to a button and then modified the onclick action. Here's what the buttons look like:


And when anyone clicks on the buttons it will take the corresponding email address and use your default mail client (most likely Outlook) and open up an email message for you:


This is all done with script and with only a little fiddling the form is now so much more functional now. And for all you coders out there, here's the part you want, the code:

/********Email Button Creation********/
// Replace the attribute new_button with the button and create a link to the onclick function

function CreateEmailButton() {
var fieldTable = crmForm.all.emailaddress1_c;
var html = "<input onclick='Email_Button_OnClick()' value='Primary' type='button'>";
fieldTable.innerHTML = html;
}
// Function to be triggered onClick
Email_Button_OnClick = function()
{
window.location = "mailto:" + crmForm.all.emailaddress1.DataValue;
}
CreateEmailButton();


It's the little things in life that make us happy, so why not make your CRM users happy by adding some simple solutions to make their jobs easier? I don't necessarily mean this solution, but anything that makes it so that people don't have to do the same function 50 times a day sure brings a big smile to their face :).
David Fronk
Dynamic Methods Inc.

Friday, November 06, 2009

Why should I care whether my data is in a database or not?

This may sound like an obvious question but amazingly enough there are a lot of people who don't always quite get this. When asked how people manage their data and they tell me that they look up their lists in Word, I cringe. Or when people use Excel for all of the note taking needs and then ask for it to me imported into CRM I question the usefulness of such an exercise. Word is great for writing documents and letters. Excel is a mini database and monster of a calculation and reporting tool. CRM, from a data perspective, is a relational database that can track just about anything and relate one set of data to another set.

While I've only seen a handful of people using Word to track data, Excel is used all of the time. And amazingly enough people use Excel like Word. Putting an address of street1 street2 city state zip all in one cell isn't the best use of a cell. Breaking that out into separate data fields, or their own Excel cells makes it so that you sort, query, and group data together. That's the power of relational databases like CRM. With data being broken out and related properly data is able to be queried, grouped, sorted, quantified, calculated, and more properly analyzed. There aren't many limits on what you can do as long as your data is entered and records linked correctly between tables.

There is a huge difference between a CRM system with bad data and a CRM system with good data. One can actually effectively help users to target the proper places to focus their time and the other just misleads and frustrates people.

How do you store your data? Are you tracking everything that is of use to you?

David Fronk
Dynamic Methods Inc.

Tuesday, October 27, 2009

Rollup 7

If you haven't seen it from the numerous other blogs that have already posted this, here's the link to where you can download the rollup. It is cumulative, so be aware of that.

David Fronk
Dynamic Methods Inc.

Tuesday, October 20, 2009

Windows 7 available to all October 22

If you haven't seen all the media that Microsoft is putting out around Windows 7, I'm telling you about it now. I've been using Windows 7 for a little while now and it is great, head and shoulders better than Vista. If you are on a Vista machine, I completely recommend upgrading to Windows 7 ASAP. If you're on XP, I still recommend upgrading, just make sure you have enough time because it esssentially will be like doing a full reinstall.

Check out Windows 7 here. And if you want to see some of the features, here are some videos from Microsoft's website on them.

One other comment regarding any fear people have about upgrading. Vista has taken the brunt of most of the big changes and now Windows 7 just makes all of the difficult stuff seem easy. All of the driver incompatibilities, Vista went through it, Windows 7 will use the same drivers for the most part so it's set for most/all software and hardware. Most of the complaints I had about Vista were virtually gone immediately after the upgrade to Windows 7.

Oh, and CRM totally works on Windows 7, since IE8 works with CRM Windows 7 just had to be able to run IE8.

Anyway, if you haven't had a chance to play with it, get yourself ready for Oct 22.

David Fronk
Dynamic Methods Inc.

Friday, October 09, 2009

Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP 10.0

This week Microsoft released their integration adapter for Dynamics CRM and GP. This is now Microsoft's third attempt at integrating their own applications.

For anyone who used their first integration solution with BizTalk server in CRM v1.2, my hat goes off to you. It was a bear to set up, even worse to troubleshoot, and once everything was in place you never breathed on that thing again for fear of it breaking it was so delicate.

The integration with CRM 3.0 and GP 9.0 was much better but still had a lot of limitations. And since the previous attempt was so ugly I think most people avoided it.

And now, we have been introduced to the integration between CRM 4.0 (Rollup 5) and GP 10.0 (SP4) (yes those are the minimum software requirements for the integration). At first glance the tool looks like a lot more time, effort and thought was put into this integration than the other previous attempts. Well, a lot of thought and effort was put into the BizTalk integration I'm sure, it just didn't work.

The integration runs on a service and the console has been built on WFP. In it's current version 1.0 status it links up very well between anything that comes out of the box. Without some customization there is no way to get custom attributes or entities. I'm not surprised by this because that's typically how Microsoft CRM additions start out. They make sure they can get the base entities handled, then they grow out to the custom entities. Case and point, look at CRM v1.2, no custom entities and limited custom attributes, CRM v3.0, custom entities and free reign of custom attributes; out of the box imports, only to out of the box entities in CRM 3.0 and CRM 4.0 allows for imports to custom entitites; etc). What this integration package will include however is it's own SDK so that partners, developers, customers, etc can write their own integration templates, integration links between fields, and integration connections (to other applications).

This integration doesn't provide any upgrade path from previous integrations but it was mentioned how there are plans to include integration templates/connections to other Dynamics applications (Nav, AX, SL, CRM Online etc). But with the release of the SDK coming before the end of the year anyone will be able to work on their own integrations utilizing this tool. That's right, the SDK is going to allow for developers to create connections/adapters to whatever you can connect to, whether it be a Microsoft product or not. Now, here's the catch. They said that this was a "lightly extensible tool" so I'm not sure light they are talking about until I'm able to get a hold of the SDK. If you integrate any Dynamics product with another Dynamics product (CRM, GP, AX, NAV, SL) then the integration is 100% FREE (assuming that you have a current Enhancement/Support plan). However if you integrate with another system then you must purchase a Dynamics Client for Office (DCO) license. From the presentation slide they state:

"...for every person who sends data to Microsoft Dynamics GP or receives data from Microsoft Dynamics GP must have a DCO license."

Couple of high points, things that I liked:

1. The Log/Error catching looked really good. The messages appeared to be detailed, read the problem fix it and then you could retry a given error again and have that push. You could stop a retry (default is to retry an error 7 times) and (again) retry the error after you stopped it.
2. Scheduling when a given adapter would run. Anywhere from Continuously (3 times a second) to Once. Very flexible and easy to set up.
3. SDK promises. Developers will be able to create their own mapping functions (if there were no SUM function you could create it with the SDK) and ability to add custom fields and connect to other systems.

Couple things that I didn't like (personally):

1. A lot of wizards. Wizards are great because they help guide you in a step by step process but it just seemed to me that there were wizards in places that didn't need to have them. For instance there is a wizard for mapping one field to another. If I map them, shouldn't it just map field to field and then if I want to do something more complex I would then edit the connection? Having wizards may be something that a lot of people like and makes this integration tool appealing to them, so don't let me get you down if you like them. I just set up a lot of data migration/integrations and thinking about the time I would have to spend mapping field to field for something that's not in a template already just seemed tedious.
2. I didn't get to see what really goes into writing a script on a mapping. I saw some scripts but thye were always cut of. The script looked like it was similar to VBScript but it definitely wasn't. It also appeared to be similar to Scribe's scripting language that is used between mappings though. So, I'm sure it will be some mesh of the two but at the same time it will be it's own beast to learn. It could be good, I just didn't get to see much of it.
3. Out of the box you can only use the templates that Microsoft provides, which is only between GP and CRM. It's version 1, but it's definitely limited in what it can do out of the box. A lot of development time will need to be spent if someone wants to integrate Vendors for instance. Hopefully a wizard will be built to build templates for GP records and any CRM entity.

All in all, I'm actually excited to see where this integration goes. Integration packages from companies like Scribe and Nolan still have a leg up on this integration solution. But Microsoft is offering to allow it to customize it as necessary for any given solution. Scribe provides adapters that do a catch all and those adapters typically are pretty solid. But if you come across any issues with an adapter it has to go through development modifications within Scribe to get a fix. Again, Scribe is pretty good about getting those fixes out but your integration suddenly becomes subject to another company's timeline, and that timeline may or may not match your timeline for the integration being set up. On the other hand, no coding is required from products like Scribe to connect up to other applications, whereas Microsoft's solution will require A LOT of development.

So, how do you get the adapter you ask? Well, you must place an order through Microsoft via PartnerSource. And you must be a Registered Dynamics GP Partner. They want to know who is using it so that they can release any updates/fixes to people who have it installed. Hey, if I had an out of the box integration and 2 months after release I realized that if under a certain condition my tool wiped out all customer numbers, or credit terms, or something very scary that could happen to an accounting system, I would want to push those out as fast as I could as well so that I wasn't sued for screwing up an entire business.

My jury is still out on where this integration will fall within the integration competition market but it's peaked my interest and is definitely worth checking out. Free is free, and even though only out of the box fields can be used out of the box, most people who want to integrate these systems use the name field, the address fields, credit hold, terms, etc.

Currently this version only supports US English language installations. Just be aware of that.

For some more information on this you can check out Microsoft's Sales and Marketing collateral on PartnerSource or CustomerSource at the following locations:

PartnerSource:
https://mbs.microsoft.com/partnersource/partneressentials/partnerreadiness/resourcing/MDCRMGPAdapter

CustomerSource:
https://mbs.microsoft.com/customersource/worldwide/us/productinformation/factsheets/MDCRMGPAdapter

David Fronk
Dynamic Methods Inc.

Monday, October 05, 2009

Sure, anyone can Install MSCRM but...

I've come across a number of, let's call them, not so stellar implementations and helped turn them around for the better. Some of the more interesting implementations I've come across are when no outside help is sought, even though everyone in the company knows full well that no one knows the first thing about Microsoft CRM.

The IT guys install it (usually rather well) and then tell whatever department that demanded it to just run with it because IT installed it and they're done with it.

The requesting department typically doesn't have much technical expertise so they try to rely on the IT department to help them out and there are varying degrees in which IT responds to that request.

Worst case, some remote sales rep is given the task of setting up the system...but still hit his/her numbers, so it gets done "in his/her spare time."

Better case, someone in IT helps to champion the initiative and drives the requirements for the software. One problem that does eventually arise from this is who is the true owner of the application. IT says that it's the given department's application so it's their's. But the department using it says that IT set it up so it should really be their's.

In any case, someone who isn't sure of the full potential or even minimal potential of the software is left to implement this application. There are some implementations like this that go fairly well, but for the most part then end users are not very happy with the end result and fight having to use some crappy system that barely does what they want it to.

This is where the value of a good CRM implementation team/resource makes a world of difference. Whether it be to just train the person or department implementating the application; to bringing someone on to take the implementation by the horns and make it work right. And this is true of any CRM system, not just Microsoft CRM. The challenges that arise include, business processes, the ability to see where processes can be improved upon, streamlined and automated; departmental hand-0ffs, and helping departments know when the ball truly is in their court; technical, translating processes into a program that can actually be used by end users; and training, both administrators and end users. That's just a high level, but in a nut shell, that's what it takes to get a CRM system implemented.

Any CRM system is becoming more and more crucial to businesses these days in order to keep up with customer demand and staying on top of customers in real time. And a bad implementation will leave a bad taste in everyone's mouth, especially for a specific piece of software. So, from an implementor's stand point, please, everyone, do yourself a favor and take the time to implement your CRM system correctly. And for those of us that implement, please take the time necessary to implement your solution correctly because in my mind, the success of the company is directly tied to the success of your implementation.

David Fronk
Dynamic Methods Inc.