Getting started guide for business users - Story From: Microsoft Dynamics CRM Team Blog
We know that new users of Dynamics CRM often have a lot to contend with when they start trying to get their work done on a daily basis in the software. We think those first few days could be a bit easier to adjust to if more information is available about how to use the product. To that end, we’ve put together a getting started guide for business users. Have a look, and let us know if we’ve helped answer some of your questions: http://rc.crm.dynamics.com/rc/2011/en-us/on-prem/5.0/gettingstarted_resources.aspx
Cheers
Technical writer, Dynamics CRM
Categories: CRM, CRM Basics, Microsoft Dynamics Tags: CRM, CRM Software, dynamics, microsoft dynamics crm
Video: introduction to Activity Feeds - Story From: Microsoft Dynamics CRM Team Blog
We’ve been hearing from customers who would like to know more about Activity Feeds, the new social-based communication tool offered in our fall release. People have told use they’d like to know more about everything from how to customize it down to just getting a basic sense of what we’re offering. We’re pleased to report that we have a video now that should give you a sense of what we have available, how to figure out whether it might be useful for your organization, and where you can get your hands on it. Watch the video: http://rc.crm.dynamics.com/rc/2011/en-us/on-prem/5.0/vid_activity_feeds_intro.aspx.
Cheers
Technical writer, Dynamics CRM
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: CRM, CRM Software, dynamics, microsoft dynamics crm
Getting started for Microsoft Dynamics CRM Online administrators - Story From: Microsoft Dynamics CRM Team Blog
After you've purchased Microsoft Dynamics CRM, but before the business users in your organization start using it, there are some basic tasks that you, as the Microsoft Dynamics CRM administrator, should complete. They’re summarized for you in this article, which details the very basic things you need to complete to get started.
If you’ve purchased Microsoft Dynamics CRM On-Premises, see this article. Or, if you’ve purchased Microsoft Dynamics CRM Online, see this article.
Categories: CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: CRM, CRM Software, dynamics, microsoft dynamics crm
Create Sample Data for your Solution - Story From: Microsoft Dynamics CRM Team Blog
In This Post:
- Problem statement
- How to create and export CRM Data
- How to create DataMap and save it
- How to import sample data using SDK APIs
- Conclusion
- Further reading
You have created a solution using the Microsoft Dynamics CRM 2011 Solutions framework and you want people to download it and try it. But without some sample data it may be difficult for people to understand how it is supposed to work.
This blog describes a way to create a script to install sample data for any Microsoft Dynamics CRM 2011solution.
In order to create the sample data application you need to:
- Create the sample data in the CRM System and export it using existing Data Export functionality.
- Import it back in a new CRM System and create the Data Mappings
- Export the Data Mappings
- Use the Exported Data XML files plus the Data Mappings XML to create a C# application that can import the sample data in any Microsoft Dynamics CRM 2001 system that has our solution deployed.
Note: These steps require that you have some .NET programming experience.
How to create and export CRM Data
Let’s say you have a solution that has 2 entities: a household and a client.
For this example we will create 2 household instances and 2 client instances that we will export using Import/Export Functionality. To access the Export functionality, click Advanced Find and select, in our case, the Clients. Build the query to select the data that we want to export and launch the query as shown in the following screenshot.
Now we are ready the export the results using the Export Clients button from the Ribbon as shown in the following screenshot.
Save the export as an *.xls (Excel) file and repeat the operation for all the entities that you want to create sample data with. For this sample you would repeat it for households.
To be able to import the data using the SDK APIs, we need to transform all the xls files into xml. To do that, open each xls file in Excel, and choose save as XML Spreadsheet 2003 as shown in the following screenshot.
Now, you can compress the 2 xml files into a zip file as shown in the following screenshot.
Then you can import the zip back using the CRM Import feature with the purpose of creating the data map.
How to Create a DataMap and Save it
The next step is to create the DataMap.xml. Data maps show how to map your XML record data to Microsoft CRM entities and attributes.
To create the SampleDataMap, we will import the xml zip file data into CRM, and during that process, capture and save the DataMap created automatically by CRM. The following steps describe how:
1. Navigate to Settings/Data Management/ Imports
2. Click Import Data from the ribbon as shown in the following screenshot.
- In the Import Data Wizard dialog box, browse to the zip file you created earlier.
4. Navigate the screens and by clicking next and fix all the mapping warnings :
5. On the Review Settings and Import Data screen give a name for the Data Map Name. For this exercise we will name it “SampleDataMap”.
6. Click Submit and now you are ready to export the data map xml.
7. Navigate to Settings/Data Management/ Data Maps and click Export to export the xml data map as shown in the following screenshot.
Now with all these xml files (entities XML + data map XML), we are ready to us the SDK to import the data in any system that has our solution deployed.
How to Import Sample Data using SDK APIs
With your Client.xml, Household.xml and SampleDataMap.xml you can write a console application to import the sample data in any organization that has your Microsoft Dynamics CRM 2011 solution.
Using the Microsoft Dynamics CRM 2011 SDK samples as source templates for the initial connection with CRM we can add additional code to import the sample data.
First we create the import request. Note that this creation doesn’t trigger the actual import. The import will be triggered at the end by calling “ImportRecordsImportRequest” SDK message. What we need to do is the following:
- Create an import entity record
- Create DataMap record
- Import each sample data file xml
- Parse
- Transform
- Call Import records that will actually perform the import sample data.
// create import id
Import import = new Import();
import.ModeCode = new OptionSetValue(0);// 0 -Excel
import.Name = "SampleDataImport";
import.SendNotification = false;
Guid importId = _serviceProxy.Create(imp);
Once you have the import id you can create the datamap. The datamap describes what attributes in the source xml files maps to what attributes in the CRM system. You will use the ImportMappingsImportMapRequest message to import the import map.
// create import file map
ImportMappingsImportMapRequest importMapReq = new ImportMappingsImportMapRequest();
importMapReq.MappingsXml = File.ReadAllText(@"C:\SampleDataImportMap.xml");
importMapReq.ReplaceIds = true;
ImportMappingsImportMapResponse importResponse = (ImportMappingsImportMapResponse)_serviceProxy.Execute(importMapReq);
Guid importMapId = importResponse.ImportMapId;
With references to the importId and the importMapId we can now import our sample data xml files. We will do this by using one helper method that can be used for all the sample files that we have.
// Create the import file 1
CreateImportFile(importId, importMapId, @"Account.xml", "account", "account");
The method implementation is shown below:
private void CreateImportFile(Guid importId, Guid importMapId, string filePath, string sourceEntityName, string targetEntityName)
{
ImportFile file = new ImportFile();
file.Content = File.ReadAllText(filePath);
file.Name = sourceEntityName;
file.FileTypeCode = new OptionSetValue(1);// excel
file.IsFirstRowHeader = true;
file.Source = System.IO.Path.GetFileName(filePath);
file.SourceEntityName = sourceEntityName;
file.ImportMapId = new EntityReference(ImportMap.EntityLogicalName, importMapId);
file.ImportId = new EntityReference(Import.EntityLogicalName, importId);
file.TargetEntityName = targetEntityName;
file.Size = file.Content.Length.ToString();
// Note: Process code 1 = "Process"
file.ProcessCode = new OptionSetValue(1);
file.UseSystemMap = true;
_serviceProxy.Create(file);
}
Once we imported all the sample files we are ready to:
- Parse the data
- Transform the data
- Invoke the actual ImportRecords SDK
// Parse the import.
ParseImportRequest parseRequest = new ParseImportRequest();
parseRequest.ImportId = importId;
_serviceProxy.Execute(parseRequest);
// Transform the import.
TransformImportRequest transRequest = new TransformImportRequest();
transRequest.ImportId = importId;
TransformImportResponse transResponse = (TransformImportResponse)_serviceProxy.Execute(transRequest);
// Create an ImportRecordsImport request
ImportRecordsImportRequest request = new ImportRecordsImportRequest();
// Assign the request the id of the import we want to begin
request.ImportId = importId;
// Execute the request.
ImportRecordsImportResponse response = (ImportRecordsImportResponse)_serviceProxy.Execute(request);
Since the import data is an asynchronous operation, it takes some time to complete. We can pull the status of the operation by using something similar with the following code:
// Wait for the operation to complete by polling it's state every few seconds.
ColumnSet cols = new ColumnSet(new string[] { "statecode" });
// We try 50 times for example
for (int i = 0; i < 50; i++)
{
System.Threading.Thread.Sleep(2000);
AsyncOperation op = (AsyncOperation) _serviceProxy.Retrieve(AsyncOperation.EntityLogicalName, response.AsyncOperationId, cols);
if (op.StateCode.Value == AsyncOperationState.Completed)
{
break;
}
}
Conclusion
In this blog post we have shown that creating sample data for our Microsoft Dynamics CRM 2011 solution can be made easier if we create the sample data once, export it, and use SDK APIs to create a simple console application to import the sample data in any system that has our solution deployed.
You have created a solution using the Microsoft Dynamics CRM 2011 Solutions framework and want to include sample data with it, the next step would be to create a Silverlight Web Resource that you expose in the configuration page for your solution which will allow your customers to import a set of sample data that will make it easier for them to understand how your solution works.
Further reading
Creating Custom Sample Data for Microsoft Dynamics CRM 2011
Creating Custom Sample Data for CRM 2011 - Advanced
Categories: Blogging, CRM Basics, CRM Online, Data Import Wizard, Microsoft Dynamics Tags: microsoft dynamics crm
Data management for Activity Feeds entities - Story From: Microsoft Dynamics CRM Team Blog
We just released Activity Feeds for Microsoft Dynamics CRM. With most new features come the additional amount of data introduced with it and this is also true for Activity Feeds.
Every time a user creates a post or a comment, a record is created. Every time an auto post is generated, another record is created. With this in mind, prior to releasing this feature we made sure that you have an easy way to manage the data generated by Activity Feeds.
We enable the Activity Feeds entity, Posts, for Bulk Delete jobs. You can create your own bulk delete jobs from the user interface or from the SDK to clean up the Activity Feeds data based on your criteria.
Here is a quick snapshot on creating bulk delete job from the UI to clean up Posts entities.
1. Under Settings -> Data Management -> Bulk Record Deletion, create a new bulk delete job.
2. The bulk delete wizards will lead you to the look up dialog, where you should select the Posts entity type.
3. You can define your search criteria by Source, ModifiedOn, CreatedBy, CreatedOn. For example, to delete AutoPost that has not been commented for X months, you can specify Source = AutoPost and Modified On Older Than X
4. Just like any bulk delete job, you can specify the frequency of the run. Continue to the wizard and Submit.
5. All running and completed bulk delete jobs are displayed in these Bulk Record Deletion grid, but the master (recurrence) record itself is displayed under System -> System Jobs under the Recurring System Jobs View.
Another way is to create bulk delete job from SDK. Here is a code snippet on triggering one bulk delete request from SDK to clean up Post entities.
QueryExpression query = new QueryExpression(Post.EntityLogicalName);
// create your filter criteria…
BulkDeleteRequest request = new BulkDeleteRequest();
request.QuerySet = new QueryExpression[] { query };
request.JobName = "Activity Feeds Data Management";
request.SendEmailNotification = false;
request.ToRecipients = new Guid[0];
request.CCRecipients = new Guid[0];
request.RecurrencePattern = string.Empty;
request.StartDateTime = DateTime.Now;
BulkDeleteResponse response = (BulkDeleteResponse)_serviceProxy.Execute(request);
So there you go, 2 ways to manage your Activity Feeds data. I hope you find this helpful.
Microsoft Dynamics CRM Tester
Categories: CRM Basics, CRM Online, Data Management, Microsoft Dynamics Tags: microsoft dynamics crm
Configuring & Using “Dynamics CRM” Mobile App - Story From: Microsoft Dynamics CRM Team Blog
Dynamics CRM Mobile App is recently released to the windows phone Marketplace. Here, in this article, I’ll try to explain how to take configure the app against your CRM Online & IFD organizations and its high level capabilities to use from the phone.
Configuring “Dynamics CRM” for your organization:
You can find “Dynamics CRM” app on your windows phone (7.5 Mango or higher) by searching in the Marketplace. It is a free app from Microsoft Corporation.
Once you install and launch the app, it will take you through the first run experience. You need to specify user name and password which you normally use to connect to your CRM Online instance from web client or outlook client.
I have provided the below screenshots to guide you with the step by step process.
You can also use the app to configure against IFD (Internet Facing Domain) environments. If you want to connect to an IFD organization, you need toggle the switch “Microsoft Dynamics CRM Online” (it becomes “Custom” as seen on the below screen) and enter your Server URL & Home realm URL. You can talk to your administrator if you don’t know what to put in for these fields.
Note: If your administrator doesn’t have a Home realm URL, you can leave it as blank.
Also, if you belong to more than one organization, you need to choose the right organization after entering your login details.
Using “Dynamics CRM” App:
You’ll get the full experience of app only when administrator enables Activity Feeds for your organization.
To know more about Activity Feeds, please take a look at recently released Microsoft Dynamics CRM Activity Feeds solution to the Dynamics Marketplace. You need to be running on UR5 or greater update to take advantage of Activity Feeds.
Once you configure the mobile app and activity feeds is enabled for your organization, it will not only help you stay on top of the situation but also helps with several other day to day CRM activities.
Here is a brief list of things you can do from your phone:
- View latest Posts (both auto & user posts)
- Make a Post or Comment
- Delete a Post or Comment (if you have appropriate permissions)
- Refresh a Post
- Navigate between Posts(using left & right arrows appearing on screen)
- Navigate between entities(by tapping blue text on the form)
- View CRM entities (Accounts, Contacts, Opportunities, Users, Leads and Custom entities )
- Pick a View for an entity
- Search for a record
- View a record in the form
- Follow/Un-follow a record
- Launch Email, Phone, Bing Maps tasks from record form
- Ability to look at record wall next to the form itself
- Change saved password (Settings -> change login)
- Reconfigure the app to a different organization(Settings -> forget me)
You can also work with your system administrator or system customizer to do the following tasks.
- Enable specific entities for Mobile
- Choosing right columns to display for each entity view.
Note, by default, primary sort column and first column of the view are shown on the phone. If your first column is already the primary sort column then it will be replaced by second column of the view.
Additionally, you can setup personal views on your web or outlook client which will get downloaded to the phone after 24 hours. The same applies to any metadata changes that happen on the server.
Cheers,
Srikanth Nallamothu
Categories: CRM Basics, CRM Online, Microsoft Dynamics, Mobile, Mobile Express Tags: microsoft dynamics crm
Configuring the List Component in SharePoint Online - Story From: Microsoft Dynamics CRM Team Blog
The Microsoft Dynamics CRM 2011 List Component adds functionality to SharePoint which enables Document Management capabilities in Microsoft Dynamics CRM. In order to deploy the List Component Solution the following modifications to SharePoint are required:
- Run the following command in the SharePoint Management Console for a specific Web application: AllowHtcExtn.ps1 <Web Application URL>.
- Alternatively, set the Browser File Handling to Permissive to allow automatic execution of Web content. Only a farm administrator can change the Browser File Handling settings.
These modifications cannot be made directly to SharePoint Online due to the multi-tenanted nature of the service. The SharePoint team is currently deploying new features to SharePoint Online – included in this update are the necessary modifications to support deploying the List Component.
I have posted a blog to CRM Connection describing the end user experience in Microsoft Dynamics CRM once the List Component has been installed. The purpose of this post is to highlight the steps required to deploy the List Component to SharePoint Online and configure within Microsoft Dynamics CRM.
The following steps highlight how to enable SharePoint Online as the Document Management functionality in Microsoft Dynamics CRM:
Install the Microsoft Dynamics CRM List Component Solution to SharePoint Online
- Navigate to the folder where you downloaded CRM2011-SharePointList-ENU-amd64.exe, and double-click it.
- In the Open File - Security Warning dialog box, click Run.
- To accept the license agreement, click Yes.
- Select a folder to store the extracted files, and click OK.
The following files are extracted:
- AllowHtcExtn.ps1 (NOT required for SharePoint Online)
- crmlistcomponent.wsp
- Open your browser.
- In the address bar, type the URL of the site collection on which you want to install the Microsoft Dynamics CRM List component.
- Click Site Actions, and then click Site Settings.
- Under Galleries, click Solutions.
- On the Solutions tab, in the New group, click Upload Solution.
Click Browse, locate the crmlistcomponent.wsp file, and then click OK. - On the Solutions tab, in the Commands group, click Activate.
Configure Data Management in Microsoft Dynamics CRM Online
- Navigate to Settings and click on Document Management in the left Navigation bar
- Click On Document Management Settings
- Select the CRM entities to enable for Document Management and then enter your SharePoint Online URL, click Next

- Select how you would like the Document Libraries organized in SharePoint Online (Account – B2B or Contact – B2C), click Next

- Document Libraries will now be created in SharePoint Online to support the hierarchy selected in the previous step, click Finish

Document Management with SharePoint Online is now configured within Microsoft Dynamics CRM. When a Microsoft Dynamics CRM user click on Documents on the CRM form, the List Component will look for a corresponding Document Library and if one does not exist create one.
Eric Boocock
Senior Technical Product Manager
Categories: Blogging, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Microsoft Dynamics CRM integration with SharePoint Online is here - Story From: Microsoft Dynamics CRM Team Blog
The SharePoint team is in the process of deploying some new features to the SharePoint Online service. The rollout of these new SharePoint Online features across the data centers is expected to be completed by end of November.
Most notable from a Microsoft Dynamics CRM perspective, is that Microsoft Dynamics CRM customers can now take advantage of the rich SharePoint Online document management functionality directly within the Microsoft Dynamics CRM application. This provides users the ability to create SharePoint Online Document Libraries dynamically within CRM – when and where they are needed. Companies can add Document Management capabilities to entities such as Accounts, Opportunities, Cases or even custom entities in Microsoft Dynamics CRM.
To take advantage of this functionality follow these easy steps:
- Your Microsoft Dynamics CRM System Administrator must install the Microsoft Dynamics CRM 2011 List Component
- Once enabled, the Microsoft Dynamics CRM user can open an Account
- Click on Documents – If the Account does not have a corresponding Document Library in SharePoint Online one is automatically created
- The SharePoint Online Document Library for this Account is rendered directly with CRM
- Users can simply upload content to SharePoint Online while working within Microsoft Dynamics CRM
- Similar to Microsoft Dynamics CRM, SharePoint Online leverages Lync presence to drive individual productivity.
- The corresponding view of the Document Library within SharePoint Online.
For additional technical guidance on how to install the Microsoft Dynamics CRM 2011 List Component see the Microsoft Dynamics CRM Team blog.
Eric Boocock
Senior Technical Product
Manager
Categories: Blogging, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
How to Create a Post with Mentions using Workflow? - Story From: Microsoft Dynamics CRM Team Blog
Microsoft Dynamics CRM Activity Feeds solution is now released in the Dynamics Marketplace and ready to use with the latest Microsoft CRM update. The solution offers better ways to collaborate with in the organization and stay on top of business processes.
In this blog article, I will walk you through new capabilities introduced in Workflows to support Post creation based off business requirements.
Goals:
- Create a Post and Mention other records using Workflow
- Walk through Workflow Designer and Post Url (Dynamic Value) Capability
Pre Requisite
- Upgrade CRM 2011 Organization to UR5
- Install Microsoft Dynamics CRM Activity Feeds solution and Configure Lead entity to have Wall
- Read about How to do Mentions with Activity Feeds
Once Activity Feed Solution is installed, users in CRM can talk about Account, Contact, etc… entities using Posts. You can use Posts to ask questions, announce the updates to an opportunity etc… At the same time others can respond back by commenting. So this is all nice for end users to communicate. Wouldn’t you love having Auto Posts?
CRM does allow ISV’s, Partners, Users extend or tailor the out of the box functionality to your business needs. Once such extensibility is “Creating Post using Workflows!!!”.
Let’s get to the Steps to get the work done.
Scenario: When the Lead rating is changed to Hot, Create a Post on the Lead Record Wall
“<Lead name> is changed to “Hot’ by <UserName>
Steps
- Navigate to Settings -> Processes and Click New Process
- Process name = “Lead Converted to Hot”
- Entity = Lead,
- Category = “Workflow”
- Click ok

- Now let’s configure the process to trigger on “Lead Update” for “Rating Field” only.
- Un check “Record is Created”
- Check Record Fields Changed. Click Select and Select Rating. Click Ok

- In the Process, we want to verify if the “Lead.Rating” is Hot and then only create the post.
- Click –Add step -> Check Condition. Click Specify Condition and select Lead, Rating , Equals and Hot as shown below.

- In the Condition, you would want to Create a Post.
- Click Add Step -> Create Record
- Select Post Entity
- Click “Set Properties”. You will be presented with a form (shown below) to enter Post details
- Create Post Form .. Let’s talk about what the fields mean
- Text: Data in this field is presented to the end users on the wall
- Source : Manual / Auto
- Manual : Icon of the Post would be User (Intended for users entering manually)
- Auto : Icon of the post would be the Regarding Object of Post (Recommended for Posts created by Workflows)
- They show in corresponding Filters in Personal Wall
- Regarding ObjectId: Entity that Post is About. In our case, it is post on Lead Wall. So it is Lead.

- Populate Post.Text
- Finally, this is where it gets interesting. Recalling that we want to post something like
- “<Lead name> is changed to “Hot’ by <UserName>
- To get the Lead Name “Mention Tag”, you need to select Post Url(Dynamic) from the Form assistant for Lead entity. (Shown in Picture below)
- Once Slug is inserted , you can type other text and Slug for Rating{Lead} and Modified User Slug (shown in Picture Below)

- Here is Final screen shot of the Post form

- Once you save the Process. Click Activate as shown below.

- Create a New Lead.
- Update the Lead Rating to “Hot”
- Wait for Workflow to fire and you would see a Post on the Lead Record Wall…

That’s all. Now users can click on hyperlinks for Modified User & Lead directly from the Post and they get to be on top of the situation …
Thanks
Categories: Blogging, CRM Basics, CRM Online, Microsoft Dynamics, Workflow Tags: microsoft dynamics crm
Creating and Deploying XAML Workflows using the CRM Developer Toolkit - Story From: Microsoft Dynamics CRM Team Blog
In July we began shipping the CRM Developer Toolkit as a part of the CRM SDK. The newest release of the Toolkit adds several new features. In this post we’re going to look at how to use one of these new features: creating and deploying workflows using the Developer Toolkit.
In This Post:
- Prerequisites
- Creating a Visual Studio Solution
- Add a CRM Workflow Activity Library
- Add a CRM Workflow Activity
- Creating your Workflow
- Deploying your Workflow
- Activating your Workflow
- Related Links
Prerequisites
To follow the steps listed below you’re first going to need the following
- Visual Studio 2010
- The CRM Developer Toolkit. This is now a part of the Microsoft Dynamics CRM 2011 Software Development Kit (SDK) on the Microsoft Download Center.
- An On-Premise deployment with Declarative Workflows enabled. The ability to use these workflows is not supported in Online deployments. To enable Declarative Workflows, see the SDK topic: Custom XAML Workflows.
For more information see: Install or Uninstall the Developer Toolkit.
Creating a Visual Studio Solution
If you haven’t worked with the Developer Toolkit you may wish to read the following sections to familiarize yourself with it. If you already have a VS Solution ready to work with you can skip to the next section.
- Start Visual Studio, then a new Project.
- In the New Project dialog, under Installed Templates, select Visual C#->Dynamics CRM
- Create a ‘New Visual Studio Solution Template for Dynamics CRM 2011’

Figure 1 Creating a Visual Studio Solution
4. Fill in the information to connect to your CRM deployment
a. First enter the Discovery Server Name, Port and Protocol. Click Connect.
b. Enter the Username, Password and Domain. Click Log On.
c. Select the Organization, then Solution you want to connect to.
d. When you are done, click OK

Figure 2 Connecting to a CRM deployment
For more information see Create a New Developer Toolkit Project.
Add a CRM XAML Workflow Library
The next step is to add a CRM XAML Workflow Library to your Visual Studio Solution.
- From the Solution Explorer, right click the solution node, then click Add->New Project
- Under Installed Templates, select Dynamics CRM
- Create a new Dynamics CRM 2011 XAML Workflow Library

Figure 3 Adding XAML Workflow Library
For more information see: Create and Deploy XAML Workflows Using the Developer Toolkit.
Add a CRM XAML Workflow Activity
Now we just need to add the activity to our project
1. Right click the CRM XAML Workflow Activity Library you just added, then click Add->New Item
2. Under Installed Templates, click Dynamics CRM. Add a XAML Workflow Activity.
3. A window will appear asking for information about your Workflow. Fill out all the information, and when done click ‘Create’.

4. The Visual Studio Workflow Designer will new open your workflow.
Creating your Workflow
You now have all the files setup and can use the Visual Studio Workflow Designer to design your workflow. Inside the Toolbox all the CRM Activities have been added and are available for your use.

Figure 5 Using the Visual Studio Workflow Designer
For an example of a simple XAML Workflow see Create and Deploy a XAML Workflow Library.
Deploying your Workflow
When you are done creating your workflow you can deploy it to your server directly from Visual Studio.
- Right click the CrmPackage project in your solution, then click Deploy.
- Your Workflow, along with any plugins and web resources will be built and deployed to the server you are connected to.
- If you are connected to a CRM Online organization or On-Premise that has Declarative Workflows disabled, you will not be able to deploy the workflow.
See the SDK topic Custom XAML Workflows for more information
For more information see Deploy a Solution Using the Developer Toolkit.
Activating your Workflow
After deploy is complete, your workflow is in a Draft state. You can now activate it right in Visual Studio.
- If it’s not already, open the CRM Explorer window by clicking View->CRM Explorer
- You will now have a view of your deployment. Expand the first node to see a list of components on the server.
- Expand the Processes Node, and then expand the Workflow Node.
- Locate your Workflow and double click it.
- Here you can modify your workflow’s information. Note that you can’t use the CRM Workflow Designer since it was created in Visual Studio.
- When you are ready, click the Activate button at the top of the window.
- Your workflow is now active!

Figure 6 Editing and Activating a Workflow
And that’s a quick run-through on how to create workflow from Visual Studio.
Related Links
Developer Toolkit for Microsoft Dynamics CRM
Generic information about the Visual Studio Workflow Designer
Cheers,
Chris Amert
Chris Amert worked on the CRM developer toolkit as his developer intern project. He added support for Workflows written in Visual Studio, generating the Installer package and made various improvements to the product.
Categories: Blogging, CRM, CRM Basics, Microsoft Dynamics Tags: microsoft dynamics crm
Developer Toolkit for Microsoft Dynamics CRM - Story From: Microsoft Dynamics CRM Team Blog
If you are a developer working on Microsoft Dynamics CRM, you are by now familiar with the game changer in town, Solution Framework, which allows you to extend the capability of Microsoft Dynamics CRM. The Microsoft Dynamics CRM web application has excellent tools for creating the non-code components that are part of your solution, for instance tools to extend the schema or create new forms. However, development of code-based solution components such as Plugins, custom workflows, and UI web resources such as JavaScript, has required developers to continuously update the solution with the latest versions of these components.
The Developer Toolkit for Microsoft Dynamics CRM 2011 represents our integration with Visual Studio and is focused on accelerating the development of custom code solution components for Microsoft Dynamics CRM 2011 solutions. Microsoft Dynamics CRM developers now have the ability to write all of their custom code from within Visual Studio by using native tools and then to automatically deploy that code to the CRM Service in the cloud or in their on-premises environment.
The Developer toolkit for Microsoft Dynamics CRM 2011 was released as part of UR5 SDK release and is available for download here.
So what can you do with the Developer toolkit?
-
If you are familiar with VS and .NET code development, but have not dipped your feet into CRM extensibility, the toolkit would get you started in less than 10 minutes.
- The Toolkit supports the end-to-end create, update, delete and deployment of CRM Plug-ins, Workflows (both XAML and custom workflow activities), Silverlight applications and other Web resources; including Jscript and HTML.
- Easily generate strongly typed proxy classes without having to run CrmSvcUtil.exe.
- Works with Dynamics CRM Online, On-premise AD and IFD deployments.
Enhancements from the CTP version that we released earlier this year include
- Better Authentication support - Integrated Authentication for on-premise, Automatic renewal of token for other deployments.
- Manage all aspects of plugin registration inside the toolkit (CRUD of plugin assemblies, steps)
- Better illustration of the CRM Solution components in the CRM explorer that indicates what I am working on as part of the current VS solution.
- Better support for dependent solutions
- The toolkit comes with an Installer that installs the tool and its dependencies, no more registry keys or manual copy of files required!
The definitive source for all documentation related to the toolkit can be found here.
Key Features
Native Visual Studio Integration

Plug-In Creation in 4 Steps
1. To initiate the process from the CRM Explorer window, right-click on the Entity, and then click Create Plug-in.
2. In the Create Plug-in dialog box, specify the appropriate Plug-in settings.

3. Add custom code.
4. Click on Build->Deploy menu action to build and deploy plug-in on the CRM Server.
5 If you need to edit the plug-in settings, you can do so from inside VS, notice the plugin that is part of the VS solution is highlighted.

Connect to CRM deployments seamlessly

Support for key CRM Web Resources including the Visual Studio Silverlight Application template

Familiar development surface for Dynamics CRM developers
Download and Feedback
The V1 release provides the opportunity for us to gather CRM Community feedback that we will use to provide future enhancements of the Toolkit. We look forward to your feedback and suggestions on the Toolkit and its accompanying documentation. Please provide your feedback via the Microsoft Dynamics CRM 2011 Connect site at: http://connect.microsoft.com/dynamicssuggestions (select Microsoft Dynamics CRM)
More Love for Developers
I would also like to mention two other tools we recently released to enable developer success with our platform:
- Plug-in profiler to troubleshoot plug-ins.
- Entity Metadata Browser, which allows developers to view the entity metadata in the system.
Another great resource that has grabbed the interest of the product team is the “Microsoft Dynamics CRM 2011 Development Resources” wiki page started by George Doubinski where you can find additional tools developed by the community.
What is coming next
- We are looking at additional functionality enhancements for the toolkit that will allow bigger development teams to work together on a single solution.
- Additional functionality enhancements for the toolkit
Categories: Blogging, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Introduction to the Microsoft Dynamics CRM November 2011 service update - Story From: Microsoft Dynamics CRM Team Blog
This release is being delivered to Microsoft Dynamics customers as the November 2011 service update for Online customers and as Update Rollup 5 for On premise customers. These updates are complemented by additional Microsoft Dynamics and Windows Phone Marketplace downloads. The November 2011 service update has been applied to all CRM Online Data Centers as of October 25, 2011. On premises customer will be able to obtain Update Rollup 5 via:
- Microsoft Download Center: October 25, 2011
- Microsoft Update: November 8, 2011
This release marks the first time Microsoft will be releasing additional functionality through online Marketplaces. The Microsoft Dynamics Marketplace has been populated with the Microsoft Dynamics CRM Activity Feeds solution and Microsoft Dynamics CRM Mobile, our first Windows Phone application is available in the Windows Phone Marketplace.
- Existing CRM Online Customers: As of October 25, 2011, Microsoft has deployed the November 2011 service update to all CRM Online datacenters. This will immediately give you access to the new features (some highlighted below). To utilize the new Activity Feeds, your System Administrator must download and install the solution into your CRM Online environment. The Microsoft Dynamics CRM Mobile application must be deployed by each user that wants to leverage this functionality on their Windows Phone 7.5 device.
- New CRM Online Customers: As of October 25, 2011, all new trials and purchases of Microsoft Dynamics CRM Online will be provisioned with all the latest functionality including the Activity Feeds solution – No additional downloads required. The Microsoft Dynamics CRM Mobile application must be deployed by each user that wants to leverage this functionality on their Windows Phone 7.5 device.
- New & Existing CRM On premise Customers: Update Rollup 5 can be downloaded manually via the Microsoft Download Center as of October 25, 2011, or automatically via Microsoft Update on November 8, 2011. This will immediately give you access to the new features (some highlighted below). To utilize the new Activity Feeds, your System Administrator must download and install the solution into your CRM Online environment. The Microsoft Dynamics CRM Mobile application must be deployed by each user that wants to leverage this functionality on their Windows Phone 7.5 device.
Additional Feature Enhancements
With the crux of this release being the great social innovation highlighted by Brad Wilson in his post, there are a number of feature enhancement that are highlighted below.
- Multi-series Chart Support – The chart wizard now supports the ability to specify multiple data series when designing
charts.
- Outlook Client Enhancements – The Reading Pane has been enhanced to include: Sub grids & Notes, clickable links (email, telephone, lookups, party lists) in the form and sub grids, clickable links in sub grids, Lync presence integration and several other miscellaneous enhancements.
![]()
- Dialog Enhancements – Dialogs have been significantly enhanced providing support for hyperlinks in dialogs and workflows, data retention when moving backward/forward, and support for additional CRM data types.
![]()
Enjoy the great new features in this exciting release!
Eric Boocock
Senior Technical Product Manager
Categories: Blogging, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
How to do Mentions with Activity Feeds - Story From: Microsoft Dynamics CRM Team Blog
During a group discussion, sometimes we want to call the attention of a specific person. Social networking discussions are no different. In Microsoft Dynamics CRM Activity Feeds, we call this a “mention”.
This blog covers the following topics:
- Why Mention?
- How we can Mention in the UI
- Entities we can Mention
- Mentions through the SDK
Why Mention?
Posting with a mention would make that post visible in the target record’s wall (if the record’s entity is wall-enabled). For example, Nancy and her team are discussing a sales pitch in the Activity Feeds wall and Nancy realizes that they need Jim’s opinion on something. She wants to call Jim’s attention by mentioning his name in a post, and Nancy’s post would show up in Jim’s personal wall. So the next time Jim views his wall, he will see Nancy’s post and would be able to easily reply and follow-up on the issue. Isn’t that convenient?
How we can Mention in the UI
To do a mention, just type in the ‘@’ symbol and select the record that you want to mention. The MRU (Most Recently Used) dropdown list shows the records that you have just recently accessed or opened with each row having the format of <Record Name> + <Record Entity> (e.g. Jim Wilson ● Contact).

The MRU is like a cache of the most-recently visited pages. The complete list can be viewed by clicking on the
icon in the upper portion the Navigation Pane. The MRU dropdown list in the wall displays selected out of the box entity records and all custom entity records.

There are two ways to access a record to mention: through the MRU dropdown list or through the lookup dialog.
A record will only be listed in the mentions dropdown if it has been previously accessed or opened. The dropdown by default shows only the last 7 most recently accessed records, and by typing in more text when doing a mention, would filter dropdown results specific to the typed string. This would allow you to view and select a record that is in the MRU but was not immediately displayed when typing ‘@’.

If the record that you wanted to mention is not in the dropdown list, select “Look up more records”. This will show the lookup dialog, which allows you to search for your target record. After selecting the record, just click on ‘OK’.

This should add the name of the record to the post box with curly brackets surrounding it. Removing the brackets or any part of the mention will automatically remove the whole mention.


After posting with a mention, the mentioned record will then be added to the MRU, so the next time you start a mention, the dropdown will contain the mentioned record. If that record was already present, it will be pushed to the first row of the list.
Entities we can Mention
All records of different entity types can be displayed in the MRU dropdown list including records of custom entities.
The lookup dialog allows you to search for records of the following entities: Account, Appointment, Case, Contact, Dialog Session, Lead, Opportunity, Phone Call, Queue, Recurring Appointment, Task, Team, User and all custom entities. For a custom entity to show in the list of entities in the lookup dialog, it needs to be added in Post Configurations by going to Settings -> Activity Feeds Configuration (make sure not to forget to publish the customizations). That is what I did to make the custom entity “Custom Entity” show in the lookup list of entities below:

Mentions through the SDK
To do a mention through the SDK, create a Post entity (see Post Entity Metadata) with the Text attribute value including a string with the format @[ObjectTypeCode, Guid, “DisplayName”] .
- The first parameter is the type code of the entity (to know how to find the type code of a record, see How to Find the Entity Type Code).
- Every created record has an ID associated with it (which is the second parameter in the mention format).
- The last parameter is the string that is displayed for the mention. So when we inject the string “@[2,13fb279a-52fe-e011-bedb-00155db58cf4,“Maria”] “ in the Text attribute value of the Post entity, we would be seeing a post containing a link with the text “Maria” that when clicked would open the contact record (Contact entity type code is 2) of the record with GUID = 13fb279a-52fe-e011-bedb-00155db58cf4.
Here is a sample of a generic code to create a post with a mention:
CrmSdk.Post post = new CrmSdk.Post();
post.Text = String.Format("This is a mention: @[{0},{1},\"{2}\"].",
Contact.EntityTypeCode, createdContact.Id, createdContact.FullName);
post.Source = new OptionSetValue((int)PostSource.ManualPost); // manual post
post.RegardingObjectId = createdContact.ToEntityReference();
serviceContext.AddObject(post);
serviceContext.SaveChanges();
For more sample code, see Sample: Collaborate with Activity Feeds.
So to further take socializing in CRM to the next level, we can take advantage of mentions. By knowing how to mention through the UI, we can include other people in our conversations and easily point to existing records in CRM making our conversations more meaningful. Mentions through the SDK would make our applications richer by incorporating this functionality in workflows and plug-ins. To learn more about Activity Feeds, mentions, and posting, feel free to explore the Activity Feeds SDK Documentation.
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Working with Activity Feed using Microsoft CRM SDK - Story From: Microsoft Dynamics CRM Team Blog
Activity Feeds solution is now released in the Dynamics Market Place and ready to use with the latest Microsoft CRM update. You can use our solution out of the box, but if you want to customize or further integrate with your application, you can use the latest CRM SDK to access the new entities and API for Activity Feeds. That’s what I am going to walk you through in this blog.
Creating an Activity Feed post
If you are already familiar with creating CRM entity instances, creating an Activity Feed post is very simple. You just need to create a Post instance and specify where or which object you want to create your post at (RegardingObjectId) and what do you want to say in your post.
1. Creating a post in an account record wall
Code snippets:
// Assume account1 is already created
Post account1Post = new Post
{
RegardingObjectId = account1.ToEntityReference(),
Text = String.Format("My first Activity Feed post.")
};

2. Creating a post in your personal wall (What’s New)
Creating a post in your personal wall is basically creating a post with your user record as the RegardingObjectId.
Code snippets:
WhoAmIRequest whoAmIRequest = new WhoAmIRequest();
WhoAmIResponse whoAmIResponse = (WhoAmIResponse)serviceProxy.Execute(whoAmIRequest);
var currentUserRef = new EntityReference(SystemUser.EntityLogicalName, whoAmIResponse.UserId);
// Assume lead1 is already created
Post post2 = new Post
{
RegardingObjectId = currentUserRef,
Source = new OptionSetValue((int)PostSource.AutoPost),
Text = String.Format("You are now following lead \"{0}\".", lead1.FullName)
};
Notice that the source of this post is defined as an AutoPost. Using the SDK, you can specify the source as AutoPost or ManualPost. If unspecified, source of the post is set to ManualPost. In our Activity Feed solution, the Source attribute is used to specify whether a post is automatically generated by a system (AutoPost) or whether a post is created by a user from the UI.
The difference can be seen on where the posts are shown in the What’s New page. Manual post will be shown under “user posts” section.

Commenting on a post
Creating a comment for a post is very similar to creating a new post. The difference is that you are creating a PostComment instance as opposed to a Post and you are specifying which post you want to comment on (PostId) as opposed to RegardingObjectId
Code snippets:
// Assume account1 is already created
PostComment comment1 = new PostComment
{
PostId = accountPost1.ToEntityReference(),
Text = String.Format("Great progress on this account1!")
};

Following a user or a record in the system
To follow a user or a record in the system, you create a PostFollow instance and you specify the id of the user or record that you want to follow in RegardingObjectId.
Code snippets:
// Assume account1 is already created
PostFollow follow2 = new PostFollow
{
RegardingObjectId = account1.ToEntityReference()
};
Displaying posts and comments in record wall
To display posts and comments in a record wall, you can query them using the regular Retrieve and RetriveMultiple. However, using the new custom SDK messages for Activity Feed, you can retrieve posts and their comments in one single call using RetrieveRecordWall and RetrievePersonalWall request and response.
1. RetrieveRecordWallRequest returns the list of posts in the specified record wall based on the parameters passed. These are the list of parameters you can specify:
- Entity. The record where the posts resided
- PageSize. How many posts do you want to retrieve at a time
- CommentPerPost. How many comments you want to retrieve in each post. This SDK message will give you an entity collection of post. In each post, you will get the list of Post comments. You can always query all the comments using RetrieveMultiple against the PostId.
- <Optional> Source: do you want to retrieve AutoPost or ManualPost or all of them. By default it will retrieve them all.
- <Optional> StartDate: You specify the StartDate and EndDate if you want to retrieve posts from a specific time range.
- <Optional> EndDate
Code snippets:
// assume lead entity and post are already created in the specific lead record
RetrieveRecordWallRequest retrieveRecordWallReq = new RetrieveRecordWallRequest
{
Entity = lead.ToEntityReference(),
CommentsPerPost = 2,
PageSize = 10,
PageNumber = 1,
Source = new OptionSetValue((int)PostSource.ManualPost)
};
RetrieveRecordWallResponse retrieveRecordWallRes = (RetrieveRecordWallResponse)serviceProxy.Execute(retrieveRecordWallReq);
foreach (Post post in retrieveRecordWallRes.EntityCollection.Entities)
{
Console.WriteLine("User {0} created post on {1} record wall: {2}",
post.CreatedBy.Name,
post.RegardingObjectId.Name, post.Text);
}
The Post entities returned in the EntityCollection are sorted from the most recent to oldest time when the post was modified, such as: the post creation time or the time when a comment is added to the post.
2. Getting comment count and comments in each post
In the example above, the CommentsPerPost is set to 2. Therefore, RetrieveRecordWallResponse will only have maximum 2 comments in each post in the entity collection returned. If you want to know the total number of comments in a post, you can check commentcount attribute in each Post.
Code snippets:
// foreach post
AliasedValue commentCountAttr = (AliasedValue)post.Attributes["commentcount"];
int actualCount = (int)commentCountAttr.Value;
Console.WriteLine("\r\n Comment for this post {0}:", actualCount);
if (post.Post_Comments != null)
{
foreach (PostComment comment in post.Post_Comments)
{
Console.WriteLine("Comment: {0}", comment.Text));
}
}
Displaying posts that a user is following
To retrieve posts that a user is following (posts that are displayed in the user What’s New page), you can use RetrievePersonalWall SDK message. This message takes similar parameters to RetrieveRecordWall:
- PageSize. How many posts do you want to retrieve at a time
- CommentPerPost. How many comments you want to retrieve in each post. This SDK message will give you an entity collection of post. In each post, you will get the list of Post comments. You can always query all the comments using RetrieveMultiple against the PostId.
- <Optional> Source: do you want to retrieve AutoPost or ManualPost or all of them. By default it will retrieve them all.
- <Optional> StartDate: You specify the StartDate and EndDate if you want to retrieve posts from a specific time range.
- <Optional> EndDate
Code snippets for getting the list of posts in the personal wall (What’s New) and check if there are more posts in the next page:
bool moreRecords = true;
while (moreRecords)
{
RetrievePersonalWallRequest personalWallPageReq = new RetrievePersonalWallRequest
{
CommentsPerPost = 2,
PageNumber = pageNumber,
PageSize = 5
};
RetrievePersonalWallResponse personalWallPageRes = (RetrievePersonalWallResponse)serviceProxy.Execute(personalWallPageReq);
foreach (Post post in personalWallPageRes.EntityCollection.Entities)
{
Console.WriteLine("{0}. Post is created by {1} at {2}",
post.Text,
post.CreatedBy.Name,
post.FormattedValues["createdon"]);
}
moreRecords = personalWallPageRes.EntityCollection.MoreRecords;
pageNumber++;
}
In both RetrieveRecordWall and RetrievePersonalWall, the Post entities returned are sorted from the most recent to oldest time when the post was modified, such as: the post creation time or the time when a comment is added to the post.
What’s New page vs User record wall
What is the difference between I am calling RetrievePersonalWall and calling RetrieveRecordWall with my User passed as the Entity parameter? From our Activity Feeds solution UI, calling RetrievePersonalWall retrieves all the posts/comments displayed in my What’s New page and RetrieveRecordWall gets all the posts/comments displayed in my User record wall.
You may ask what are the differences between what are being displayed in my What’s New wall and my User record wall.
My User record wall:
- All the posts and comments that have my User record as the RegardingObjectId
- All the posts where I am being mentioned
- All the posts made by me
My What’s New page:
- All the posts and comments that have my User record as the RegardingObjectId
- All the posts where I am being mentioned
- All the posts regarding records I follow
I hope you find this blog useful to help you get started on using the latest SDK to access ActivityFeeds data. Here are the links to the Activity Feed SDK documentation and sample to get you going:
SDK Documentation: Activity Feed Entities
Code sample: Collaborate with Activity Feed
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Following and Unfollowing Records in CRM - Story From: Microsoft Dynamics CRM Team Blog
With the inclusion of Activity Feeds in the latest CRM update, we introduce the concept of “following” records. When you follow a record, you will see updates related to that record appear on your Personal Wall.
Here, we will go through the different ways you can follow records in CRM. Note that in order to follow any record of an entity, that particular entity must be enabled for Activity Feeds.
Following a Record from the Record Wall
Once an entity has been enabled for Activity Feeds, you are able to follow records of that type from the record form.
After opening the record form, navigate to the Record Wall tab where you will see a “Follow” button. All you need to do is click it.
After clicking the Follow button, you can see that you’re following the record and have the option to Unfollow it.

Bulk-Following Records from an Entity Grid or Advanced Find
If you want to follow multiple records of the same type of entity, you can do so from the Entity Grid. Select the records you want to follow and click on the Follow button in the ribbon as shown below.

After clicking the Follow button, a confirmation dialog will pop up where you can continue to confirm that you want to follow the selected records or cancel out of the operation.

Another way to follow multiple records at once is through Advanced Find. The same Follow button can be found in the ribbon on the page that displays the results of your query.

Unfollowing Records from your "Records Being Followed" View
On both your Personal Wall and own User Record Wall, there is a pane on the right-hand side with information about who’s following you and what records you follow. There is a link that shows the total number of records that you’re following. If you click on that link, a view called “Records Being Followed” pops up which shows all the records that you are currently following.

From this view, you can then select certain records and click the Unfollow button on the ribbon to unfollow those records.
Auto-Following an Entity via Workflow
In this example, we will create a workflow that has a user automatically follow accounts that are created. After this workflow is created and activated, you’ll be rest-assured that any newly created accounts will be followed without having to do any extra work.
First of all, go to Settings à Processes à New in order to create a new workflow. Enter a name and choose Entity == Account, Category == Workflow.

The default option is to have the workflow “Start when” the record (the account) is created and that’s what we want so we leave that setting alone. Add a new step that creates a Follow and click Set Properties.

In the properties, you want to set the Owner to be whoever it is you want to automatically follow accounts when they are created.

Since you want yourself to auto-follow accounts that are created, find and pick yourself in the look-up. Save and Close.

Once you save and activate your workflow, you’re all set! And of course, you can modify the conditions of this workflow to suit your particular needs.
There you have it—various ways to follow/unfollow records in CRM. These are not the only ways you can follow records, but they are the most common routes that will be taken.
Happy Following,
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Building Your Business Hub: Using the Power of Social for a More Productive Enterprise - Story From: Microsoft Dynamics CRM Team Blog
Microsoft is entering an exciting new phase for Microsoft Dynamics CRM! Today, we are announcing the general availability of the Microsoft Dynamics CRM November 2011 service update. This release reinforces our commitment to delivering familiar, connected and intelligent experiences to our customers.
technologies to simplify collaboration for your employees or to listen to and engage with customers through external communities, the social CRM capabilities in Microsoft Dynamics CRM aren’t a separate application experience; rather it extends what you’re already doing and provides a new channel of engagement across sales, service and marketing processes. Like all our CRM investments, our social capabilities are tightly integrated with the Microsoft productivity tools you use today, including Microsoft Office, Microsoft Outlook, Microsoft Lync and Microsoft SharePoint.
To learn more about our social CRM vision and strategy you can watch this video or read this product release guide.
http://www.youtube.com/watch?v=LBN-k8umpiw&feature=player_embedded
Microsoft Dynamics CRM partners are already experiencing ROI from the new features in the release. Here is what Jon Petrucelli, CRM Practice Leader, Microsoft Dynamics National Practice, of Hitachi Consulting
had to say; “Customers are very excited about the new features being released in the Microsoft Dynamics CRM November 2011 service update. They report that the new Activity Feeds have been very beneficial to sales teams, enabling increased communication and team collaboration around sales opportunities to get the big deals done. Also, the social capabilities have increased the level of collaboration between internal sales and service teams. Now they are experiencing higher win rates, increased productivity, and are able to provide a greater level of customer service.”
This service update marks the first of several waves of social CRM investments and includes the following:
- Activity Feeds that simplify business insight and collaboration across internal communities through a simple experience. Users can follow important business events and activities in an intelligent and timely manner. The activity feeds capability is available today within our Outlook and Internet Explorer end-user experiences, and will be available on other browsers when Microsoft Dynamics CRM becomes available for Chrome, Firefox and Safari browser users in the first half of 2012.
- Microsoft Dynamics CRM mobile Activity Feeds for Windows Phone enable real-time activity feeds on the mobile device and provide a simple-but-comprehensive timeline of the business events for users no matter where they are. Users can post statuses directly from their phone, access their CRM data, initiate phone calls and find directions through Bing Maps — all through single-touch actions.
So, what’s next? Future releases of Microsoft Dynamics CRM will extend our social CRM capabilities with additional external collaboration, business intelligence and analytics to better understand the impact of social
interactions. Example scenarios include the following:
- Building your “business hub.” Users will have instant awareness of each customer’s profile information, current status and business value by looking across CRM system information and social data. Microsoft Dynamics CRM acts as a “trusted advisor” for salespeople by proactively identifying valuable relationships and suggested actions.
- Providing “looking glass” capabilities. Organizations can listen and respond to external social networks and will blend this new channel seamlessly into your existing marketing, sales and service processes.
When it comes to social technologies, Microsoft's strategy is to help organizations turn social from an interesting phenomenon into a tool for driving more productive and intelligent relationships with customers and partners. With the broad range of social technologies across the Microsoft product family, and with more than 2 million Microsoft Dynamics CRM users across more than 30,000 organizations around the world, we think Microsoft is ideally positioned to deliver on this vision.
Find out more about our November 2011 Service Update here.
Brad Wilson, General Manager, Microsoft Dynamics CRM Product
Management Group
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
CRM 2011 Charts – Charting on Related Records - Story From: Microsoft Dynamics CRM Team Blog
This blog demonstrates how to create a chart from data in the current entity alongside data from related entities.
Let’s take the following scenario:
A Not For Profit Organization is using CRM 2011 to track the pledges and donations made by their donors.
Each pledge a donor makes has a Pledge Amount and will have 1 to * donations associated to it. Each Donation has a Cash-Value and a Status. The Status will have one of the following values: Outstanding, Processing, or Collected.
The CRM user that is responsible to manage the pledges for a given cause needs to be able to quickly see the status of a given pledge i.e. the original amount of the pledge and the amount collected. One possibility is to show the following chart in the Pledge form:


where:
- Pledged is the Pledge Amount. This value is only available in the Pledge entity (e.g. $1000).
- Collected is the sum of all the Cash-Value of the Donations that have been collected. (e.g. three donations @ $200 have been collected)
We will cover how to:
- Display the value of a field (Pledge Amount) from the current entity (Pledge) in the chart. This is not possible out of the box because a chart can only display field values from a related entity (Donation).
- Display the sum of the values (Cash-Value) of related entities (Donation) having a specific Status (collected).
To create this chart and display it in the Pledge form, do the following:
1. Go to Settings > Customizations > Customize the System.
2. Create a Pledge entity with the field ‘Pledge Amount’ and a Donation entity with the fields ‘Cash-Value’ and ‘Status’.

3. Open the Donation entity
4. Create a new bar chart
5. Create a series for the field Cash Value.

6. Open the Pledge main form
7. Add a One Column Section
8. Insert a Sub-Grid. Enter the unique Name and Label. Select the entity (Donations) and the default View. Also check the box ‘Show Chart Only’ in order to hide the sub-grid.

9. In the formatting tab, set the number of rows to 12

10. Save, Close, and Publish all the customizations
11. Open a Pledge form
12. You will see the following chart.

13. Add a Global OptionSet in order to be able to change the legends’ labels
- Go to Settings > Customizations > Customize the System.
- Click on ‘Option Sets’ in the left pane and click on the menu item ‘New’
- Add the 2 Options: Pledged and Collected.

14. Now we have to manually modify the chart.
15. Export the chart.
- Go to Settings > Customizations > Customize the System.
- On the left pane, select Components > Entities > Donations > Charts
- Select the chart ‘Pledge Status By Amount’
- Click on the ‘More Actions’ > Export Chart and save the chart on your hard drive

16. Open in your favorite XML editor or notepad
17. Replace the generated <fetch> with the following:
|
<fetch mapping="logical" aggregate="true"> <entity name="new_donation"> <link-entity name="new_pledge" to="new_pledgeid" from="new_pledgeid" link-type="outer"> <attribute alias="aggregate_pledgeamount" name="new_pledgeamount" aggregate="avg" /> </link-entity> <link-entity name="new_donation" from="new_donationid" to="new_donationid" link-type="outer"> <attribute alias="aggregate_collected" name="new_cashvalue" aggregate="sum" /> <filter> <condition attribute="statuscode" operator="eq" value="100000001" /> </filter> </link-entity> <attribute groupby="true" alias="groupby_column" name="statecode" /> </entity> </fetch> |
- The first <link-entity does an outer-join between Donation and Pledge and computes the average of all the Pledge Amounts. The problem is, to include the pledge amount attribute in the same FetchXML query that contains other aggregated attributes; we need to specify an aggregation on the pledge amount as well.
Since there will be one Pledge Amount per record, we need to compute the average in order to get the original Pledge Amount. - The second <link-entity does an outer-join between Donation and Donation. This is necessary because we want to filter the rows for a given value of the Status. The Filter clause uses the values of the Option Set that is used by Status (Collected)
18. Rename the aliases in <category> to match the ones above
|
<category> <measurecollection> <measure alias="aggregate_pledgeamount" /> </measurecollection> <measurecollection> <measure alias="aggregate_collected" /> </measurecollection> </category> |
19. Replace the generated <Series> with the following: Note the attribute ‘Name’ which is telling to use the Option value of the OptionsSet as labels for the legends.
|
<Series> <Series Name="o:new_pledgestatus,100000000" ChartType="Bar" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40, DrawingStyle=Cylinder"> <SmartLabelStyle Enabled="True" /> </Series> <Series Name="o:new_pledgestatus,100000001" ChartType="Bar" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40, DrawingStyle=Cylinder"> <SmartLabelStyle Enabled="True" /> </Series> </Series>
|
20. Add the <Legends> node manually at the end of the Chart node.
|
<Legends> <Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" /> </Legends> </Chart> |
21. Remove the label ‘Active’ on the Status Axis by adding the Enabled attribute.
|
<AxisX LabelAutoFitMinFontSize="8" TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount"> <MajorTickMark LineColor="165, 172, 181" /> <MajorGrid LineColor="Transparent" /> <LabelStyle Enabled="false" Font="{0}, 10.5px" ForeColor="59, 59, 59" /> </AxisX> |
22. Save the file and import the chart.
- Go to Settings > Customizations > Customize the System.
- On the left pane, select Components > Entities > Donations > Charts.
- Click on the ‘More Actions’ > Import Chart and browse to the modified chart on your hard drive. Click OK.
- Import will find that the chart is a duplicate. When asked, select ‘Replace’.
23. Publish all the customizations.
24. Open a Pledge entity.
Final result

Summary:
We have showed you how to manually modify CRM 2011 charts in order to:
- Display the value of a field from the current form
- Display the filtered value of the field from a related entity
- Rename the legends’ labels
For more information on how to further modify the CRM 2011 charts, see also the blogs
“CRM 2011 Charts – Know the Real Potential”, Part 1 and Part 2.
Here is the full chart XML that we modified in this example:
|
<visualization> <visualizationid>{AB00D3AF-49E9-E011-B89B-00155DA96A01}</visualizationid> <name>Pledge Status by Amount</name> <primaryentitytypecode>new_donation</primaryentitytypecode> <datadescription> <datadefinition> <fetchcollection> <fetch mapping="logical" aggregate="true"> <entity name="new_donation"> <link-entity name="new_pledge" to="new_pledgeid" from="new_pledgeid" link-type="outer"> <attribute alias="aggregate_pledgeamount" name="new_pledgeamount" aggregate="avg" /> </link-entity> <link-entity name="new_donation" from="new_donationid" to="new_donationid" link-type="outer"> <attribute alias="aggregate_collected" name="new_cashvalue" aggregate="sum" /> <filter> <condition attribute="statuscode" operator="eq" value="100000001" /> </filter> </link-entity> <attribute groupby="true" alias="groupby_column" name="statecode" /> </entity> </fetch> </fetchcollection> <categorycollection> <category> <measurecollection> <measure alias="aggregate_pledgeamount" /> </measurecollection> <measurecollection> <measure alias="aggregate_collected" /> </measurecollection> </category> </categorycollection> </datadefinition> </datadescription> <presentationdescription> <Chart Palette="None" PaletteCustomColors="149,189,66; 197,56,52; 55,118,193; 117,82,160; 49,171,204; 255,136,35; 168,203,104; 209,98,96; 97,142,206; 142,116,178; 93,186,215; 255,155,83"> <Series> <Series Name="o:new_pledgestatus,100000000" ChartType="Bar" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40, DrawingStyle=Cylinder"> <SmartLabelStyle Enabled="True" /> </Series> <Series Name="o:new_pledgestatus,100000001" ChartType="Bar" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40, DrawingStyle=Cylinder"> <SmartLabelStyle Enabled="True" /> </Series> </Series> <ChartAreas> <ChartArea BorderColor="White" BorderDashStyle="Solid"> <AxisY LabelAutoFitMinFontSize="8" TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount"> <MajorGrid LineColor="239, 242, 246" /> <MajorTickMark LineColor="165, 172, 181" /> <LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" /> </AxisY> <AxisX LabelAutoFitMinFontSize="8" TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount"> <MajorTickMark LineColor="165, 172, 181" /> <MajorGrid LineColor="Transparent" /> <LabelStyle Enabled="false" Font="{0}, 10.5px" ForeColor="59, 59, 59" /> </AxisX> </ChartArea> </ChartAreas> <Titles> <Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="59, 59, 59"></Title> </Titles> <Legends> <Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" /> </Legends> </Chart> </presentationdescription> <isdefault>false</isdefault> </visualization>
|
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Update Rollup 5 for Microsoft Dynamics CRM 2011 - Story From: Microsoft Dynamics CRM Team Blog
The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 2011 Update Rollup 5 on Tuesday, October 25, 2011.
The links below point to important information about Update Rollup 5:
-
Microsoft Download Center: http://www.microsoft.com/downloads/details.aspx?FamilyID=b9dd0bd7-8b1f-45af-a5ae-ee73a07ec90c
-
Microsoft Knowledge Base Article: http://support.microsoft.com/kb/2567454
-
Microsoft Update: http://catalog.update.microsoft.com/v7/site/Search.aspx?q=2567454
Release Channel Schedule
The resources available at these links will be active according to the following Release Channel Schedule:
-
CRM Online Datacenter: October 18 to October 25, 2011
-
Microsoft Download Center: October 25, 2011
-
Microsoft Update: November 8, 2011
General Details about Update Rollup 5
-
Update Rollup 5 cannot be uninstalled.
-
Client packages installed manually by downloading the packages and running install will require administrative privileges. If the client packages are installed via the Windows Update (Microsoft Update) system, they will not require administrative privileges.
-
For help with installation, please see the Installation Information section in KB2567454.
Dates for Future Update Rollups
Update Rollup 6 is to be delivered on its predefined schedule, 16 weeks after Update Rollup 4, which puts the delivery in January 2012.
Support for Update Rollup 5
For support on Update Rollup 5, please contact Microsoft Product Support.
Note: In special cases, charges ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Support web site at: http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS.
Cheers,
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
New Training Resources Available for Microsoft Dynamics CRM - Story From: Microsoft Dynamics CRM Team Blog
New Course Available: Introduction to Microsoft Dynamics® CRM 2011
This one-day instructor-led course provides an introduction to Microsoft Dynamics CRM 2011. The course focuses on the user interface and working with the application and provides a foundation for other Microsoft Dynamics CRM 2011 courses. The course describes Microsoft Dynamics CRM concepts, the Web interface, the Microsoft Dynamics CRM for Outlook interface, searching, and reporting. Send your partners to the
following resources:
- Click here to visit the Learning Center today.
- Click here to download the Course training materials.
The Dynamics CRM Q4 2011 Service update training is now available for Partners
The content is available to your partners via the Partner Learning Center (PLC) at no cost to them.
- Partner Technical Services Product Release Training: Microsoft Dynamics CRM Q4 2011 Service Update - New Features: Outlook Client, Dialogs, Charts, and Data Management - Description: This course will cover new features in the Microsoft Dynamics ® CRM Q4 2011 Service Update. Topics covered include the Outlook Client, Processes and Dialogs, Data Visualizations and Charts, and Data Management Duplicate Detection.
- Title: Partner Technical Services Product Release Training: Microsoft Dynamics CRM Q4 2011 Service Update - New Features: Activity Feeds and Windows Phone - Description: This course will cover the new features in the Microsoft Dynamics ® CRM Q4 2011 Service Update. Topics covered include the new Activity Feeds Solution as well as the Dynamics CRM Mobile application for Windows Phone.
Lisa Crutchfield, Communications and Analytics Project Manager
Worldwide Dynamics, Partner Readiness
Categories: Blogging, CRM, CRM Basics, CRM Online, Microsoft Dynamics Tags: microsoft dynamics crm
Checklist of Essential Stuff When Building Solutions – A Tester’s Perspective - Story From: Microsoft Dynamics CRM Team Blog
We as developers and CRM customizers always get excited of the thought of releasing a solution packed with wonderful features that would effectively serve the customer’s needs. When the solution gets handed off to the customer, we are comforted by the fact that when we went through the solution, everything was working perfectly.
There are some things that developers might not notice, but customers will when using the solution. We have compiled a list of patterns and best practices that we feel will really help you build consistent and easy-to-use solutions.
This blog will cover best practices:
In Forms
Make sure your entity form has the complete set of fields
- Some important fields show up in the subgrid columns but are absent in the forms. If they were worthy enough to be in the entity’s subgrid, why omit them from the forms? This way, the customer would expect that same subset of data to be in the forms too, and would not keep flipping back to the entity subgrid. Also make sure to remove fields from the views that are not in the forms.
- Ensure that the entity subgrid column headers and fields have the same names, if possible.

There should be a good mapping between entity subgrid columns and form fields
Consider proper positioning and grouping of fields
- Think of which should logically come first. There are some fields that we expect to come right before or after a certain field. Also make sure that the fields have the correct tab order.
- Fields should also be appropriately grouped. There might be a lone field that is out of place and should not be part of that group.
- Consider appropriately grouping your fields using sections or tabs with the correct headers to differentiate them.
Know when to hide, remove or disable fields in the form
- Do not just hide fields with script. Only use scripts only when you want the form to be dynamic or when a field is only relevant for a certain condition.
- If the hiding of fields is very noticeable and confusing to the customer, disable a field rather than hiding it.
Pick list or dropdown values out-of-the-box (OOB) values should be checked for correctness
If you modify an entity to represent something different, it is important to validate that all the out of box fields and option sets are modified accordingly. For example, if you replace Account with Organization, the “Classification” field might be renamed to “Organization Type” and the options modified to include different organization types.
When new fields and images (like profile pictures) are added, they should be included in the tab order.
This helps the accessibility of your solution by allowing users to easily navigate through the different components without using the mouse. If the end user is using a screen reader, and is tabbing through the different form components, no element would be missed out.
Gaps or spaces in forms should be consistent and extra spaces should be removed
Sometimes we don’t notice that some areas in the forms are spaced too far apart. The tendency is customers will be scrolling down a lot to look for data or worse case, they would think there isn’t any more data at the bottom of the form.

Big spaces between areas should be avoided
In Views and Subgrids
Clean up your views
When you click on a specific sub-area to view entity data, do you want to view all Active Records or all records including active and inactive? Which view do you think should the customer see first? Which is more relevant?

In this case, it makes more sense to have “My Top Legal Accounts” view displayed by default (Figure B) rather than displaying all active accounts (Figure A).
Take advantage of entity subgrids
The solution works, the data is available but is not presented. The entity subgrid is an area where the customer can have a bird’s eye view or a summary of all the data for that specific entity. Take advantage of this by exposing the essential data so that the customer doesn’t have to dig for a record and open it, with the image below as an example.

Section headers serve as effective subgrid labels
When subgrids are added in forms, they do not have default or automatic labels. Even if the data is present through a subgrid, it would be more helpful if the customers would also know what that data is for at a glance. This is pretty useful especially when you have a subgrid that has no data. If there was no label, then the customers would have to keep guessing what that subgrid is for.
A section header gives a direct definition on what a subgrid is for
In Charts
Have accurate chart titles.
Similar to labels in subgrids, if a chart would have no data, then the customer or user would have no idea what a specific chart’s purpose is. So make sure to have a chart title, and make sure it is correct.
Remember to correctly label the axes on the charts.
Because labels are set by default, most of the time we overlook this. Customers may use the charts for reports, and it would be a better experience for them if they don’t have to edit the chart labels themselves.
Legends are important.
Some customers may easily distinguish what the different values are for but some cannot. Different colors of the different components are usually not enough.
Legends point out what a specific value in the chart is for
Make sure your available charts’ views contain chart values that are applicable for the current context. Sometimes other charts that are applicable for another context get mixed up, so make sure those are removed.
Charts’ Views options should be up to date
Labels (numeric) for each value in the chart are helpful especially when all values are zero, else the customer will see just a blank chart (an example is the chart below).
Numeric labels in charts are useful
Other Essentials
Consistency of word casings (e.g. Program Manager instead of Program manager)
Removal of unused out-of-the-box areas and sub-areas in the Navigation Pane. The best way to do this is to modify the security roles so people do not have access to areas that do not concern them.
E-mail templates should have bodies. That would really provide a great out of box experience for the customer, so they can just easily customize the text of the email and immediately use it.
Images should have alternative or substitute text. This is especially helpful when images are blocked by the browser or were not downloaded successfully. This way, customers would still be able to understand what the image represents despite its absence. So when you add your image to the form, make sure to fill-in the “Alternative Text” field.
Provide names and descriptions for all applicable fields in the solution to increase usability. The user wouldn’t need to hunt for the solution’s documentation and just instead go to the solution itself to see the entity descriptions.
The “Getting Started Pane” is customizable. You can use it to provide end users with helpful tips on how to use your extension on Microsoft Dynamics CRM. Learn more from Create Custom Get Started Pane Content.
As Vincent Van Gogh said “Great things are done by a series of small things brought together.” As we gain more experience developing solutions, we might discover other little things that could greatly increase the quality of a solution. This checklist may not be complete, so we’d love to have your help in filling it up. Share your thoughts and experiences via the comments below and we’ll add them to this list!
Categories: Blogging, CRM, CRM Basics, Documentation, Microsoft Dynamics Tags: microsoft dynamics crm





























