Tuesday, July 8, 2008

Integrating LinkedIn and MS-CRM



A simple example of using a dynamic URL to pull LinkedIn information into a MS-CRM iframe.



For this example we will create a simple integration with LinkedIn from the MS-CRM account record. This integration will allow CRM users to quickly see all contacts from this account that are in their LinkedIn network. This feature is enhanced significantly if you setup a group for your Organization within LinkedIn, because this will ensure you see all of the relationships across your organization.




1) Create the iFrame
As a system administrator, go to the Settings tab and click Customizations. Select Customize Entities and then click the Account record. Click Forms and Views under the details section. Click the form record. Add a Tab and name it LinkedIn. Add a section and name it LinkedIn. Add an Iframe and name it IFRAME_LinkedIn. Uncheck restrict cross-frame scripting box and check the “automatically expand to use available space” box under the row layout section of the formatting tab. Click ok to save the iframe changes.

2) Add Code
Click the form properties under the common tasks section of the account form. Select OnLoad from the Event List and click edit. Enter the following code:



var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
switch (crmForm.FormType)
{
case CRM_FORM_TYPE_UPDATE:
crmForm.all.IFRAME_LinkedIn.src="http://www.linkedin.com/search?search=&company=" + crmForm.all.name.DataValue+ "&currentCompany=currentCompany&searchLocationType=I&countryCode=us&postalCode=" + crmForm.all.address1_postalcode.DataValue+ "&distance=50&sortCriteria=3";
break;
}



Click ok to close Event Detail Properties window. Click ok to close Form Properties window. Click the Save and Close button on the Account form.

3) Publish
Click Publish from the Action menu on the Account Entity form. The change is now available to your application.







Notes
Required Fields
Account Name and Zipcode are required fields for this integration and should be made as required fields in MS-CRM. The Zipcode requirement can be removed by removing the location references in the URL.

Sorting
The lists will be sorted by the default sorting (degrees and Name). This can be changed by changing the sortCriteria value.
1: Number of Connections
2: Degrees and Recommendations
3: Degrees and Name
4: Keyword (CompanyName) relevance

Troubleshooting
If you get a security message when you open the account record or the following message in the LinkedIn iframe “Navigation to the webpage was canceled”, you need to change security settings in Internet Explorer to enable “Display Mixed Content”.

Thursday, July 3, 2008

CRM Email Router Event Log

One of our IT Administrators found out that when the CRM 4.0 Email Router is running it will log an event in the server Application Event log each time an email is filtered. There is a fix for this that can be found at the following URL. I have also copied the specific section text below:

http://support.microsoft.com/kb/907490





Microsoft Dynamics CRM 4.0 E-mail Router
You can update the Microsoft Dynamics CRM E-mail Router to enable tracing. To do this, you must modify the registry and XML service configurations.To enable verbose operations log level, you must manually update the configuration by updating the registry. To do this, follow these steps:
1. Log on to the server where the Microsoft CRM E-mail Router is installed with local administrator privilege.
2. Click Start, click Run, type regedit, and then click OK.
3. Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSCRMEmail
4. Right-click the LogLevel registry entry, click Modify, and then change the value to 3. By default, this value is set to 1.
5. Update the Microsoft.Crm.Tools.EmailAgent.xml configuration file for the E-mail Router Service. To do this, follow these steps:
a. In Windows Explorer, locate the Microsoft.Crm.Tools.EmailAgent.xml file. By default, this file is located in the following folder:
SystemDrive:\Program Files\Microsoft CRM Email\Service
b. Open the file by using Notepad or another text-editing program.
c. In the file, examine the <systemconfiguration> node, and then scroll down the text toward the end of the file to find the following statement:
<loglevel>1</loglevel>
By default, this value is set to 1 (one). Modify this statement so that it reads as follows:
<loglevel>3</loglevel>
d. Save the file.
e. Restart the E-mail Router Service. You will find a new event viewer log view that is named MSCRMEmailLog. It is in this event viewer log view that the events appear.


Tuesday, June 17, 2008

CRM 4.0 Gotchas

After implementing a bunch of CRM 4.0 projects I have compiled a short list of "gotchas" that I always share with people as I am gathering requirements for the project. Some of these were around in v3.0 but were not rectified in v.4.0. If anyone has additional ones that they would like to add in the comments I will update this posting.
  • Service Activities have a max length of 3 days (cannot be changed)
  • Bug in WF/Customization: If you customize an entity, all WFs associated are "soft" unpublished. If you change a WF and re-publish, JS on that entity is disabled.
  • If you restrict Write access to an Account, Opportunities, Contacts, Cases associated to that Account cannot be created. One possible solution is to use Teams.
  • The KB and Queue views cannot be modified (use c360 My Workplace instead)
  • You cannot access related data from the Recipient of a Phone Call activity in workflow.
  • Contacts and Contract Lines cannot be removed from the Case form. They must be hidden with JavaScript.
  • It takes 15mins for a published KB article to be indexed and searchable in the Knowledge Base.
  • You cannot delete a KB template unless all articles using it are deleted.
  • In order for an Opportunity to show in the Pipeline report it must have a revenue value entered.

Wednesday, June 11, 2008

CRM 4.0 Sales Process Workflow

I found a great article today on creating Sales Processes with Workflow in CRM 4.0. Unfortunately in my experience the workflow engine is pretty finicky, especially when it comes to using Stages. A lot of times it hangs on the wait timers.

http://www.bizitpro.com/weblog/entry/microsoft_crm_40_workflow_stage_example_upgraded_from_crm_30/

UPDATE: Microsoft has released a hotfix to fix the wait timer issue:
http://support.microsoft.com/?kbid=951919

Monday, June 2, 2008

Hiding Action Menu items

Well, this is completely unsupported but we had to hide the Activate and Deactivate choices from the Actions menu on a form the other day. I highly suggest downloading the IE Developer Toolbar to accomplish this. It will assist with getting the ids for these two menu choices. Here is the javascript we implemented:

//HIDE DEACTIVATE AND ACTIVATE MENU ITEM if (document.all._MIchangeStatedeactivate100145 != null) { document.all._MIchangeStatedeactivate100145.style.display = "none";} if (document.all._MIchangeStateactivate100146 != null) { document.all._MIchangeStateactivate100146.style.display = "none";}

Wednesday, April 30, 2008

Statera and SmartCatalog partnership

I recently had the pleasure of meeting the guys from SmartCatalog during a co-presentation we did on CRM 4.0. Their product is great and interfaces very nicely with the MS-CRM platform. Read about our partnership from an independent source here:

http://blog.tmcnet.com/telecom-crm/2008/04/18/crm-platform-from-mozes-endeavor-and-statera-amdocs-results-cegedim-de.asp

Thursday, March 20, 2008

Disable all attributes on a form

I found this snippet of code today on a message board to disable all attributes on a form:

for (var i = 0; i <>)
{
crmForm.all[i].Disabled = true;
}

Original post can be found here:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.crm.developer&tid=0ddb6aa6-3d3c-4299-835e-94a8bc9509c1