My apologies for the lack of posts in this blog lately. For the past year I got roped into the Ebola outbreak crisis (and then Zika), working at the World Health Organisation in Geneva and moving away from CRM for the duration.
One of the tools I set up over the past year however did strike me as a potential useful little gadget for a CRM administrator, it’s a lightweight method using open-source components for: –
- Interrogating anything held in windows logs.
- Prepare an email detailing the logs of interest.
- Automatically sending that email once day.
The actual business need was to monitor the number of times PDFs were downloaded from a website and send summary statistics to the web site administrator. So although I am querying the Windows IIS (Internet Information System) logs in this example, the principle is the same for any other log types and could therefore be extended to CRM On-Premises server (not online).
There’s details on this post explaining how Log Parser studio is used with CRM: –
But you will need to ensure that CRM is producing the logs you want by configuring it correctly as per: –
The solution using the following open-source components: –
- LogParser 2.2 – an open-source tool that allows SQL-like queries to be run against windows logs and results output to a console window or a CSV file. I believe that this tool started life as a small handy development add-on within Microsoft and proved so useful that it was made generally available.
- LogParserStudio – an open-source tool that provides a graphical user interface for LogParser and is particularly useful for quickly prototyping, testing and validating the queries.
- PowerShell – Windows native command language, used to dispatch an email with the LogParser results file attached.
- Windows Schedules Task – Window’s native scheduler used to run a .BAT file which executes the LogParser command and calls PowerShell to email the results file as an attachment.
And the rest of this article is a walk-through of how to install, set up and use them.
Log Parser Installation
Here’s how to install the two open-source solution components ‘ Log Parser 2.2’ and ‘Log Parser Studio 2.0’: –
- The LogParser 2.2 open-source tool downloaded from https://www.microsoft.com/en-us/download/details.aspx?id=24659 and the installation executable can be double-clicked to run it.
- After installation of LogParser 2.2, it must be added to the %PATH% variable for the machine on which you wish to interrogate logs so that “logparser” becomes a recognised instruction when executed from the command line. The %PATH% variable is modified by going to “My Computer” > “Properties” > “Advanced” > “Environment Variables” > “Path” and editing this variable to add the location to which Log Parser 2.2 has been installed – for example “C:\Program Files (x86)\Log Parser 2.2”
Figure 1: Modifying the Window %PATH% Value
- You can test that the %PATH% variable has been successfully modified by opening a Command Prompt and typing « logparser ». The window should return a description of the tool and options for executing it.
Figure 2: Log Parser Command Line
- Optionally install the LogParserStudio 2.0 graphical tool from http://blogs.technet.com/b/exchange/archive/2013/06/17/log-parser-studio-2-2-is-now-available.aspx to have a graphical interface for working with LogParser.
- Resources for working with Log Parser Studio can be found at http://blogs.technet.com/b/karywa/archive/2013/04/21/getting-started-with-log-parser-studio.aspx.
The tool includes the ability to select which log files the tool will work with, enter and run a SQL-like query against those files to extract any data that is logged into a tabular format and produce a graph/chart of the results.
Results can be output to the tool or exported to a file.
Figure 3: Log Parser Studio
Log Parser Studio is a convenient tool for building and testing your SQL query.
Log Automation and Notification
The full solution that I had to build required that: –
- Once a day, statistics from the event log are to be output to a CSV file.
- That the file is emailed to recipients.
LogParser provides the interrogation of the IIS event log as follows: –
- The logparser command required to query the IIS log and save results to a CSV file is below and this command was placed in a .bat file created on the target machine: –
logparser “SELECT TOP 20 cs-uri-stem, COUNT(*) AS Total, MAX(time-taken) AS MaxTime, AVG(time-taken) AS AvgTime, AVG(sc-bytes) AS BytesSent INTO ‘D:\LogParserStudioLOGS\Top20PDFs.CSV’ FROM D:\LOGS\W3SVC1\*.log WHERE cs-uri-stem LIKE ‘%%pdf’ GROUP BY cs-uri-stem ORDER BY Total DESC” -i:iisw3c -rtp:-1
- This command comprises: –
- The SELECT statement of the data to extract. It works against the IIS log so all the fields listed at https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/676400bc-8969-4aa7-851a-9319490a9bbb.mspx?mfr=true can be interrogated. Note that not all fields are enabled for logging by Windows by default and you may need to use IIS Manager to turn on additional fields if you want to query them.
- An INTO statement specifying the path and file name to be created/overwritten.
- A FROM statement which must point to the directory that IIS uses for logging. IIS writes one log file per calendar day and the path to these is set within IIS Manager.
- The same .bat file contains a command to execute a PowerShell file containing the script to email the CSV file output by LogParser. You will need access to an SMTP server to control the email dispatch. The command to run the PowerShell file is: –
powershell -noexit D:\LogParserStudioLOGS\Top20PDFs.ps1
- The code within the PowerShell file to send an email is as follows: –
$From = “firstname.lastname@example.org”
[string]$to = “email@example.com”, “firstname.lastname@example.org”
$Subject = “Website PDF Request Statistics”
$Body = “Statistics are attached for the top 20 PDFs downloaded from the website.”
$AttachFile = “D:\LogParserStudioLOGS\Top20PDFs.CSV”
$SMTP = “smtpserver.details.com”
Send-MailMessage -From $from -To $to -Subject $Subject -Body $body -Attachments $AttachFile -SMTPServer $SMTP
- This command comprises: –
- Variables for the FROM, TO, SUBJECT and BODY of the email.
- FROM is an array of strings for handling multiple recipients.
- The path and file name to add to the email as an attachment.
- The SMTP server to use for dispatch.
- The Send-MailMessage command which uses the variables to dispatch an email via the given SMTP server.
- Note that values are hard-coded within the current solution but could be read from a configuration file and/or provided to the PowerShell file as parameters for a more flexible and generic solution.
- At this point running the .bat file will execute LogParser, output the results to a file and dispatch an email so the only element missing is automation.
- Automation is achieved by configuring the Windows Scheduled Task to add a new task that, daily at 2am, executes the .bat
Figure 4: Windows Task Scheduler
Putting It All Together
Apologies that this blog entry is a bit of a “brain-dump” of the work performed but I hope it gives you a sense that: –
- You can use Log Parser to write SQL-like queries against the verbose Windows logs to quicly find and extract what you need.
- That Log Parser Studio is the best place to play around with this, prototype and refine your queries.
- That Log Parser outputs what you want CSV format.
- That once ready, you can transfer the instructions for executing the query and outputting CSV to a .bat file and then use some PowerShell to act on that file – for example emailing it out to interested recipients.
- That once the files are set up you can use Windows Scheduled Tasks to kick off the program on a timetable of your choice.
Next week I’ll have the honour of bluffing my way through a talk for the Geneva SharePoint User Group (SUG) about integrating Dynamics CRM and SharePoint and trying to pull off that “look like you know what you’re talking about” vibe. To steer them away from my frightening lack of knowledge about all things SharePoint, I decided to go beyond the “out of the box” CRM integration options (of the SharePoint List Component and configuring Dynamics to use SharePoint as a document repository) and show them something a bit different – Power BI being used to link SharePoint and CRM data and report on it.
This then is a walk-through of doing just that, based around a dummy demo scenario, to give you an idea of how the data modelling of Power Pivot can be used to integrate the two data sources and provide a different take on CRM – SharePoint integration. It assumes a background level of knowledge on how you work with Power Queries in Excel as we’ll be using: –
- Dynamics CRM 2013 (online)
- SharePoint online
- Excel 2013 Power Query / Power Pivot
- Power BI online site
The Kev-tastic scenario for my demo was that we have groups of attendees booking to attend my talk and for each group there has a principal contact who provides some documents that need to be stored on SharePoint (maybe their booking information or travel arrangements). The data modelling is therefore: –
- A custom CRM entity called Attendee Group.
- A link from Attendee Group to the “out of the box” standard CRM Contact entity as the “principal contact” for that group.
- Contacts are enabled to store documents on SharePoint e.g. we have a CRM and SharePoint that are already linked using the default functionality described on hundreds of other blogs.
We want some reporting on how many documents have been submitted per Attendee Group, not an easy question to answer from CRM where we have no entity tracking the actual individual documents on the SharePoint side.
I set up a trial Office 365 Dynamics CRM instance for the demo and added SharePoint to it and Power BI. I input some demo data so that Attendee Group and Contact were populated within the CRM and there were some Contact-linked documents in the SharePoint instance.
The walk-through then will deal with: –
- How do we get the data?
- How do we link it once we have it?
- How do we use it once it is linked?
1 – Getting the CRM Data
The critical thing for all of this to work is that CRM and SharePoint bounce provide web service endpoints that you can connect to from MS Excel to grab their data. Here’s how: –
- From within MS Excel you go to the “Power Query” tab, the “Get External Data” section of the ribbon bar and then use the “From Other Sources” drop-down icon to select the option “From OData Feed”.
- This prompts you for the URL you found at Step 1 and you need to ensure that you specify “Organization” authentication and have entered your Office 365 credentials.
- If all goes well, Excel will query the service and provide you with a list of its tables from which you can multi-select the ones you’re interested in copying in. In my case it was the ContactSet data and my custom AttendeeSet entity (prefixes in the screenshot below by the CRM publisher I used to create this custom entity – avws).
- I then performed a bit of clean up within MS Excel to ensure that I was only retrieving the columns I was interested in and that things like the Contact ID were retrieved rather than the default “Record”. This work is performed from within the Query Editor in Excel, you use the ribbon bar to select the columns you want, click on column headings to resolve data that shows as “Record” into actual IDs and so on.
2 – Getting the SharePoint Data
So great, at this point we have data from CRM loaded in to Excel. The next step is to do the same thing for SharePoint.
- Again, within Excel within the “Power Query” tab, the “Get External Data” section of the ribbon bar and the “From Other Sources” drop-down icon there is a “From SharePoint List” option which should, in theory return the lists that you need.
- In my case this didn’t work however. I saw the default “out of the box” SharePoint lists but not the ones that CRM had automatically created within SharePoint.
- The workaround for this then (if you have the same problem), is not to use “From SharePoint List” but to use “From ORest Feed” again (as we did with CRM) and use the URL https://%5BYOURCHAREPOINTSITE%5D/_vti_bin/listdata.svc to then happily return all the lists which CRM has created within SharePoint for you.
- So at this point I could now bring back the data of the SharePoint site and I can then see the lists that CRM created there including, in my case, the “Contact” list that I am interested in as it will be the location of all documents related to CRM’s Contact entity.
3 – Linking the Data
As a quick demonstration I wanted to link the CRM data to the SharePoint data to show a query that would span information from both sources. The key challenge was to find something to link them therefore.
I believe it was the Spring release of CRM that modified the behaviour in SharePoint so that the GUID of the CRM record now appears in the SharePoint List folder name. If I have a contact called Fred Bloggs then his documents will be stored under Fred-Bloggs_123456789012345612, for example. All I needed to do was to strip out this GUID from the SharePoint data and I could then use that for the link.
- So first I had to go to my Power Queries within Excel and use the “Split” function to split the SharePoint “Path” column in to two columns based on the location of the underscore. This isolated the GUID part.
- This took my original “Path” column and created two that I named Path.TextPart and Path.GUIDPart.
- I then noticed that the GUID I had split from the SharePoint source was a string of numbers only but that in my CRM data source the GUID was separated by dash characters e.g 123456789012345612 in SharePoint and 1234-5678-9012-3456-12 in CRM. I therefore needed to add a Custom Column to the CRM source that took the GUID and stripped out the dashes with a Power Query expression. I did this by editing the Power Query for the CRM Contact data adding a custom column and using the Power Query expression Text.Remove([ContactId], “-“)
- At this point the data sources were in an acceptable shape to begin linking them.
- Within MS Excel I went to the “Power Pivot” tab and the “Manage” icon.
- I switched this in to diagram view and could see my three data sets – the Attendee Group and Contacts from CRM and the Documents from SharePoint.
- I could then wire up these three sources to use the Contact GUID common between them.
- I now had a basic data model spanning CRM and SharePoint data.
4 – Using the Data
All of this would have been pretty pointless unless I had some appealing “eye candy” to show the attendees at next week’s talk. With my data model in place I could then: –
- Create Power View visualisations that, for example, showed me the count of documents in SharePoint per CRM Contact or, going further, a count of documents per country that the contacts were from.
- Power View and Power Map were both used to try to “mash-up” the source information into something attractive that rammed home the point that the reports were pulling together SharePoint and CRM information in a way that would be a bit complicated to do from either CRM or SharePoint alone.
5 – Conclusion
For about two hours of effort (including a fair amount of Googling and restarting Excel when it crashed), it was straightforward to consume SharePoint and CRM data via their ORest service endpoints and then use the GUID encoded within the SharePoint folder name to link document data back to its parent CRM record. As a final twist, I published the Excel report up to a Power BI website and then created a custom CRM dashboard containing an IFrame that pointed at the report URL so that the data on document usage was delivered directly (and seamlessly) within CRM.
The introduction of Microsoft Dynamics Marketing (MDM) in Q2 2014 (code-named the “Mira” release) brings a whole new tool set with which Dynamics professionals must gain familiarity, particularly if they’re considering taking the MB2-720 Functional Application in Microsoft Dynamics Marketing exam as professional recognition of their knowledge.
MDM was created around Microsoft’s acquisition of the Marketing Pilot software in October 2012 and this article is intended as a quick overview of the product if, like me, you are coming from a solid Dynamics CRM background and want to understand where it fits in, how it is priced and technically how it integrates. This is intended as a technical quick start therefore.
In the next few months I will prepare for exam MB2-720 and so will also post my revision notes and observations on that when my own knowledge of the tool has improved.
MDM is quite a different beast from Dynamics CRM and here are the key points to bear in mind if you’re approaching it: –
- It is only available as an online service. You sign up via your Office 365 portal and access it via the browser only. It worked best in IE11 for me and some functions (such as navigating the folder structure for assets) did not render at all in, for example, Chrome.
- The interface is very similar to Dynamics CRM with a top-level primary navigation of tiles that splits to a secondary list of options.
- The security model is very different from CRM with a limited number of user types (Regular User, Media Buyer for instance) and a set of roles that we can add to a user and afterwards modify in a grid of permissions.
- It is centred around a set of powerful campaign management tools that you’ll easily find articles and blog posts about. There’s a campaign workflow designer for automated actions (screenshot below) and an in-built email editor. These are the most popular and well-known features and includes mass mailing of your email shots and tracking of opens, click-throughs, bounces etc. There’s also quick functionality for managing opt-on, opt-off subscription lists, getting email recipients to sign up via a web form and tracking web page visits. Auto-scoring of leads is another crowd pleaser.
FIGURE 1: Campaign Automation flowchart in Dynamics Marketing
- Almost all the material I found online related to these core features but if you scratch the service there is a very rich and complex set of additional functionality with which you’ll need to be familiar for exam MB2-720 and for mastery of the tool. This includes the screens for managing assets, routing marketing material for approval with on-screen mark up and a very complex mini ERP system that tracks your Accounts Receivable, Accounts Payable, expenses, timesheets, media purchasing, purchase orders, inventory valuation etc.
- Personally it was this ERP aspect that I found most difficult to learn since it’s a mini “Dynamics AX” for marketing and I’ve yet to find good training material that starts from the basics for someone without a rudimentary knowledge of accountancy practices!
FIGURE 2: Mini-ERP functionality of Dynamics Marketing
- The integration process to link CRM to MDM is relatively straight-forward and involves an initial request to Microsoft Support to turn “on” the connector. A Service Bus in Azure is used for the exchange of data between the two systems so you’ll need an Azure account to enable your integration.
- Like Dynamics CRM, MDM exposes an ORest service that can be consumed from Excel for the production of Power View, Power Map visualisations that you can then publish back to a Power BI website. There’s even a Power BI “widget” for the home page (an IFrame that points at a Power BI URL) so that you can deliver your report there.
- There’s no concept of Dashboards similar to Dynamics CRM, each user is free to add components to their home page as best suits their needs.
- When viewing a single record, any data in a one-to-many relationship is shown at the bottom of the page in a section that you can modify by selecting the title from a drop-down list. Confusingly some of the training material I have seen refers to this area of the tool as “Dashboards” e.g. the Contacts Dashboard to show the people who work at an Organisation.
FIGURE 3: Power BI visualisations of Dynamics Marketing Data
MDM is available at the Enterprise level of licensing, which also adds the Unified Service Desk and Parature Knowledge management services to CRM. This level of license was announced in June 2014 and is in force at the time of writing (October 2014). My understanding is that you therefore need, at minimum, one user with Enterprise license privilege for MDM to be activated.
You can buy an Enterprise license for a user of your existing CRM and this will cost US$200 (EUR153) per user per month or, if you are not a Dynamics CRM customer then you can also purchase MDM “stand-alone” for US$125 (EUR96) per user per month. This underlines the important fact that MDM can be happily used without any integration to CRM whatsoever.
After these licensing costs the only additional costs you might incur are for increasing the ceiling on how many mass emails you can send per month (an extra 10,000 mailings will cost you US$50 / EUR41 per month). By default you get 50,000 mailings per month included in your licensing. Also, if you need to purchase extra GB for the storage needs of your solution you will pay US$9.99 / EUR8.20 per GB per month.
If you want to link your MDM and CRM instances then the high level steps are: –
- Have active CRM and MDM instances of course!
- File a request through the Office 365 Service portal that Integration Services be enabled for you. I recommend doing this first since although Microsoft turn the requests around pretty quickly, this can take a few days.
- Download and run the Connector installer .msi file which will extract a CRM solution file.
- Install the CRM solution file in to your CRM Instance via Solutions.
- Set up a user with appropriate rights to act as the synchronisation agent in CRM and in Marketing note that this user does therefore consume a license.
- Configure an Azure Namespace as your communication bus.
- Perform initial synchronisation (this took about 45 minutes for me with minimal data the first time so you need to be patient).
- Perform some tests to ensure that the default, out of the box entities are being synchronised in near real-time.
Microsoft provides an excellent walkthrough of connector configuration in this video and there’s also a great detailed blog article of each of the connector steps listed above. I worked from both links and the integration went surprisingly smoothly.
Once configured, entities like Accounts, Contacts and Marketing Lists are synchronised.
FIGURE 4: Welcome Page customised per user in Dynamics Marketing
A round-up of useful links then for learning the tool includes: –
- MDM Home Page.
- Online help for MDM.
- MDM Guided Tour – this is a walk-through of some screenshots and unless you’re a Microsoft partner company it is not currently possible to sign up for a free/trial copy of MDM as you can for Dynamics CRM.
- Dynamics Community blog.
- Technical articles – a small selection of technical articles from Microsoft.
In October 2014 I will be giving a talk to the Geneva SharePoint User Group about the integration options between Dynamics CRM and everyone’s favourite document management repository. It’s a rich subject with a lot of blog posts, Microsoft white papers and general articles and so here is a condensed version if you’re looking for a quick overview of the fundamentals of integrating the two – both the “out of the box” features and the possibilities for extending the functionality with custom code.
I have included a list of references at the end to draw them in to one place and my material for the presentation (including a PowerPoint overview) is available on OneDrive here: –
First a word about the versions of SharePoint that are compatible with CRM: –
|Dynamics CRM 2011||Dynamics CRM 2013|
Option 1: Do Nothing
Simply, if we do not perform any integration then SharePoint cannot access/benefit from any of the data in CRM and CRM cannot use SharePoint as a repository for its documents and the only option for working with files will be to attach them to CRM Activity or Notes. Files attached in this way will, of course, not be searchable.
Option 2: Out of the Box
CRM 2011 and 2013 add slick “out of the box” integration options to get CRM and SharePoint working together and these are configured via the CRM Settings > Document Management page. For CRM 2013 online a pop-up alert appears at the top of the page nagging you to set this up.
Essentially you point your CRM at a SharePoint instance and select whether you want to create folders for each entity type or create sets of folders underneath a Contact / Account parent node. Whenever you then wish to associate documents with your CRM record, a SharePoint folder is created (if one does not exist) and the uploaded material is placed there. A recent enhancement in the Spring 2014 release of CRM is that the SharePoint folder now contains the CRM record GUID to make this easily available to any SharePoint code.
To present the documents stored on SharePoint within CRM there is the free CRM List Control. This gets installed on the SharePoint server (under Site Settings > Web Designer Galleries > Solutions) and presents the list of documents in a style consistent with CRM’s look and feel. If this List Control is not installed then CRM simply renders an IFRAME to show the SharePoint contents.
With CRM 2011 and (I believe) 2013 on-premises you need to download and install the List Control yourself but if you’re working with CRM and SharePoint online then the List Component is not required and direct server to server communication can be enabled instead.
Option 3: IFRAMEs
Another nice simple option, you can expose CRM pages within SharePoint and vice-versa by simply setting up IFRAMEs and referencing the appropriate URL. This is particularly useful when you want to deliver CRM Dashboards or SharePoint document lists that are not linked to CRM data.
Security considerations are important here t ensure that the authenticated user works across both sites.
Option 4: SharePoint Business Connectivity
SharePoint includes the Business Connectivity Services to allow SharePoint Team Sites to display and work with data from a range of other sources. You’ll need the free SharePoint Designer to configure this but the basic steps are to create an External Data Source and set up the Lists and Forms that SharePoint will use to display the data retrieved.
I set up a demonstration for CRM 2013 on-premises and SharePoint 2010 by setting up a SQL Server External Data Source referencing the CRM database. The only supported way to work with data within the CRM database is via the Filtered Views and so this method can be used to present Read-Only data but not to allow Updates and Deletions of CRM data from SharePoint.
Option 5: SharePoint Search
The previous example of using the Business Connectivity Services can be extended to set up a SharePoint Basic Search Centre relying on the External Data Source of a CRM database. This is particularly useful if you want to search multiple entities within the CRM with SharePoint.
Option 6: Power BI
Although it strays a little from the subject of SharePoint and CRM integration, it is worth noting that Excel 2013 comes with an ORest connector that can be used to pull CRM data in to Excel for Power Viewm Power Pivot and Power Map visualisations. Data Models can be built and data from several sources linked within Excel to provide a “mash up” of CRM and SharePoint data.
The final Excel containing the data model and its reports can either be uploaded to a SharePoint site document list and opened with Excel online or can be published to the dedicated Power BI site offered as a service via Office 365.
Power BI looks set to become then the quickest and easiest way to deliver reports using both SharePoint and CRM data.
Option 7: Custom Code
Finally, the web service endpoints exposed by SharePoint and CRM can be used by custom code for bespoke integration. CRM exposes both SOAP/WCF and ORest services and one thing to note is that if you’re planning to integrate CRM 2013 and SharePoint 2010 you’ll need to create your own proxy service in the middle as CRM 2013 is .Net 4.0 and SharePoint 2010 Web Parts only support .Net 3.5.
The CRM SDK contains sample code showing you how to programmatically work with the SharePoint entities within CRM.
The core intention is to use SharePoint as a document repository for CRM but the possibilities of working direct with Filtered Views in the CRM database (for on-premises), with Power BI and with the CRM SOAP and ORest web services means that SharePoint could just as easily be used to deliver CRM Reports or be a portal solution on top of CRM data.
For companies already using SharePoint as their key collaboration and communication tool, there are therefore plenty of options for bringing CRM “in to the fold” and making its functionality available.
Here’s a list of useful articles and references – everything you could possibly want to know about SharePoint and CRM!
Overviews & Introductions
Walkthrough of setting up CRM Online and SharePoint Online: –
Blog Series on Various Integration Options
Shortcomings of Security Model
Power BI in CRM
Using BDC service within SharePoint to pull in CRM data.
Calling SharePoint from CRM
So I am churning out these exams at the moment to keep the boss happy and benefit from a Summer break in the usual rush of project work. Next up was the beast that is installing and deploying CRM 2013, something a little outside my regular job title but I have played around with installs on virtual machines for customer demos.
Happy to say that today I took and passed MB2-702: Installing and Deploying CRM 2013 however and this post then covers how I prepared, what sorts of questions came up and what material I used. It follows the same format as my other posts on CRM certifications.
The exam is the usual 48 questions of multiple-choice format with a passing level of 70%. It concentrates on installing CRM Server and all related elements (the CRM Outlook client, the Email Router, Active Directory), upgrading from CRM 2011 to CRM 2013 and how to troubleshoot and maintain your shiny new CRM once it is in place. Both CRM 2013 online and on-premises/partner-hosted are covered in the exam.
The Microsoft page relating to the exam is here: –http://www.microsoft.com/learning/en-us/exam.aspx?id=mb2-702
The main resources I would recommend are: –
1) If you can get hold of the official course material for this exam (course code 80539A) from the Microsoft Online Courses (MOC) site then this is the best source of training. It includes ten student PDFs for each of the main topics and also PowerPoint and virtual machine for lab exercises. Working through this is the best way of preparing as questions on the exam should limit themselves to what is covered on this course.
2) There is the installation and preparation section of the CRM 2013 Implementation Guide and this is also a great resource for learning about how to prepare, plan and execute your CRM deployment.
3) Any notes and material related to the older CRM 2011 Installation exam – MB2-867 – are useful as background material as the new exam will continue to test feature that have not changed (much) between CRM2011 and CRM2013 such as Email Router set up, Internet Facing Deployment configuration etc.
4) If you’re still hungry for more, then check the end of this article and I will paste the notes that I made when preparing for the exam although they are rather rough) to show you exactly what I considered important.
5) I reverted to MSDN articles to clear up a few unclear points about version compatibility.
6) Finally there is no substitute for playing with a trial CRM 2013 online version or walking through an on-premises CRM 2013 install yourself. The bulk of the questions on the test relate to doing this and so you should ideally have installed CRM in the course of your job or be prepared to set aside time to actually do a deployment yourself.
As a general pointer, the following sorts of questions came up a lot for me during the exam and are mentioned on the curriculum link: –
- Make sure you know your way around the Office 365 administration interface, be comfortable on the steps needed to set up a new CRM user here and assign a license to them. Know what you can change concerning the CRM instance itself.
- You should particularly know the difference between the administrative roles in O365 and the security roles in CRM, what is where?
- Understand the different rights of the essential, basic and professional licenses. I don’t believe Enterprise license is covered on this exam as it was introduced with the CRM release that post-dates the exam.
- Know your online and on-premises licensing, particularly what licenses are needed for different deployment scenarios (multiple servers hosting CRM roles, legacy users, do you need a license for email router or tablets and smartphones?)
- Understand the anatomy of a CRM Server, the services that get installed and the role group that they belong to. You should know which key features are processed by which services and how you would set services up in a load-balanced environment.
- Understand the role of Active Directory, what it does for CRM and how you might migrate CRM users from one AD domain to another. You should know the domain requirements for all the elements in a CRM solution (SQL Server, CRM Server, Email Router etc.)
- A bit of memory work but you should know the principal operating systems and versions that CRM and its allied elements support. I’ve included a table in the next section to try to pull this all together.
- Know the difference between workgroup and CRM server and how/if you can migrate from one to the other.
- Know how you use product keys during a CRM installation/upgrade.
- As I mentioned already, you should walk through at least one CRM on-premises install if you have never done one and get a feel for the main steps, it’s the best way to learn.
- Once you have done this you’ll also appreciate the command line interface for installation and what it is doing behind the scenes.
- Likewise, provision at least one CRM online instance if you don’t do this as part of your job and have a good nose around Office 365 Admin so you’re comfortable which what you can do.
- During on-premises installation understand what you would do if you did not have rights to create Active Directory groups and had to use ones already set up for you by an administrator.
- Know the difference between delivering CRM via HTTP and HTTPS and how settings interact between the CRM Deployment Manager and IIS.
- Know what the CRM Reporting Extensions are, where they get installed and what they give to CRM.
- Similarly, know what the CRM Authoring Extensions are, where you install them and what they are used in conjunction with.
- Internet Facing Deployment (IFD) is a big topic and one that I was personally weak on having never done a proper install. You should be familiar with the high-level steps of IFD and the role of each of the key components. You should know how you install a new CRM instance to be an IFD and how the procedure is different to change an existing CRM instance into an IFD.
- Pay close attention to the role of Active Directory Federated Services, what it is doing for IFD and the port it operates on.
- Load-balancing is a similar tricky subject and like IFD might be something that you (like me) have never had to personally implement. You should what CRM roles must be installed where for load balancing and, related, how you configure CRM to use a SQL cluster.
- I had a number of questions on disaster recovery, particularly how you plan to restore each element in the CRM architecture in case of failure (what do you back up?) Your experience at installing a CRM instance will be of help here so you can explain how you would quickly redeploy just one element of the architecture (CRM server, Email Router, AD, SQL Server) in case of failure.
- CRM 2013 introduced server-side synchronisation for email and so you should be comfortable on what it does, how it differs from the Email Router and how it is configured.
- You need to go and play with the Email Configuration web page under Settings within CRM and understand the entities there like server profiles and mailboxes so you’re comfortable with what gets configured where.
- Know what a forward mailbox is, why it might be used, why and when you approve email addresses in CRM and how emails are tracked (correlation, tracking tokens, smart matching), Again any time you can dedicate to playing with these and actually configuring some working mailboxes will be time well spent.
- Know the pre-requisites for installing the Email Router.
- Definitely install and have a play with the Dynamics CRM for Outlook control, you should be happy with the functionality that it offers and au-fait with the constraints for multiple users, multiple organisations, going offline etc.
- You should also know what permissions and rights are needed to install the Outlook control and how upgrade from CRM 2011 to CRM 2013 and update rollups affects it.
- Upgrading is a whole section in itself and you should know the different upgrade options (in-place, side-by-side) and their strengths and weaknesses. I was expecting some scenario questions on these but didn’t get any.
- You should understand the option to defer the table merge at upgrade.
- You should know about upgrading the email router.
- Know how the update rollup packages for CRM work, just what Microsoft release and how they get deployed.
That’s a bit of a dump of everything I remember being important from the course study and from the emphasis placed in the exam.
Knowing which versions of operating systems, databases, browsers etc. are required for CRM will help you with a number of questions. You should have gained insight into this when you did your own install but here is (what I hope is) an accurate list taken from course notes and online sources as of June 2014. It details what I believe are the key things worth committing to memory.
|CRM Server||Windows Server 2008 (x64) SP2Windows Server 2008 R2 (x64) SP 1
Web Server, Standard, Enterprise & Data Centre for 2008
Windows Server 2012 (x64)
Standard and Data Center for 2012
|SQL Server||SQL Server 2008 (x64) SP 3SQL Server 2008 R2 (x64) SP 2
Developer, Standard, Enterprise & Data Centre for 2008
SQL Server 2012 (x64) SP1
Standard, Business Intelligence & Enterprise for 2012
|Outlook CRM Client||Office 2007, 2010, 2013Windows Vista (x32 and x64) SP2
Windows 7 (x32 and x64)
Windows 8 (x32 and x64)
Windows 2008 Remote Desktop Server
Windows 2008 R2 Remote Desktop Server
Windows 2012 Remote Desktop Server
IE8 or IE9 for setup
|Email Router||Windows 7 (x32 andx64)Windows 8 (x32 and x64)
Windows Server 2008 (x64)
Windows Server R2 2008 (x64)
Windows Server 2012
Exchange 2007, 2010, 2013
|SharePoint||SharePoint 2010SP1SharePoint 2013|
MB2-702 does take some dedicated study and, ideally, some real-world experience installing and maintaining a CRM instance both online and on-premises. If you’re coming to the exam as a seasoned CRM admin then you’ll want to concentrate on any elements of the solution with which you have less experience (IFD, load balancing, disaster recovery) and if you’re coming from a CRM business analyst or developer background where you have less day-to-day contact with deployment then it’s well worth creating a virtual machine to play with and a trial online instance.
As promised, here are my own revision notes taken from the course material. They are quite long and detailed as there was a lot of new material for me.
I came across a small “gotcha” today – I’d configured the MS Outlook Connector against a trial CRM Online instance and noticed that although I could synchronise appointments and contacts when I hit the “Track in CRM” button the email remained untracked! This article describes the reason for this (email settings) and what the solution is.
The scenario is: –
- You have the MS Outlook Connector for Dynamics CRM installed.
- You have it referencing a CRM Online instance.
- You can happily sync appointments and contacts in both directions.
- The “Track in CRM” is active and when you click on it, it changes to “Untrack” as you expect.
- But you notice the message “This email is not being tracked in CRM” – the button is lying to you!
- You also notice that “Convert To”, “Add Connection” and “View in CRM” in the CRM toolbar in Outlook are also greyed out.
The reason is down to the email and mailbox settings in CRM. by default when you set up a new online instance. it is configured with Server Side Sync set as the mailbox synchronisation options. It is this which needs to be changed to the MS Outlook Connector to ensure that the mail handling is consistently
You can find the resolution in a Microsoft Knowledge Base article. Essentially you look at the default mail settings for the CRM instance under Settings > Email Configuration > Email Configuration Settings and set it to be “Microsoft Dynamics CRM for Outlook” for the Incoming and Outgoing Email (Appointments, Contacts and Tasks should already be set as Outlook which is why they were working). A screenshot is shown below. You then apply this default settings to the mailbox of all users that you wish to turn Email tracking on for.
You could also leave the default alone of course and go direct to each user’s mailbox settings via Settings > Emails Configuration > Mailboxes and set it there (screenshot below) – this would be useful is you wanted SOME of your users to be able to track their emails from Outlook but not all.
Once you have made this change, the user’s need to stop and start MS Outlook and I forced a Synchronisation refresh and all was well.
Yesterday I passed Microsoft’s CRM 2013 Applications exam (MB2-700), which is part of the new wave of updated CRM exams for the 2013 release. This post covers how I studied for the exam, what sorts of questions came up and what material I used for anyone else thinking of adding this qualification to their hit list.
In my limited CRM experience, very few of the projects I have done have used the Sales and Case management modules to their full potential – usually because the way these processes are modeled in the “out of the box” CRM does not match the specific customer’s needs. As a result I realised, when studying for the exam, that I hadn’t fully explored all the functionality present and so relying on my work experience alone would not be enough to get through the exam.
A solid grounding in sales and case management also seems wise at the moment, given the enhancements to these areas which are arriving with the Spring 2014 CRM release.
The exam is the usual 48 questions of multiple-choice format with a passing level of 70%. It concentrates on two areas of CRM’s “out of the box” functionality, namely: Sales Management and Case Management and there are two seperate Microsoft courses which cover these (80545 – Cases and 80546 – Sales). The exam I took was evenly balanced with questions from both areas. The Microsoft web page describing the exam and the skills tested is listed below and this should always be your final check list that you are ready: –http://www.microsoft.com/learning/en-us/exam.aspx?id=mb2-700
For preparation I did three key things: –
- I worked through the two official Microsoft courses (about 14 chapters of notes split into individual PDFs) and can happily confirm that the exam is based on this material with all questions relating to information covered in the courses.
- I made my own notes as I went (there’s a copy of them at the end of this article for download).
- I worked through some lab examples and tested out some scenarios in a copy of CRM 2013. More so than the other exams I think this is critical for MB2-700 – as several of the exam questions related to the different processes for handling leads, opportunities, contracts, contract templates etc. and there is no substitute for actually playing with these – it certainly seemed to stick in my head a lot better when I was “hands on” as opposed to just reading lots of abstract training material.
Here’s a review then of the sorts of topics/questions that came up: – For CASE MANAGEMENT
- Be comfortable with the workflow of a case, how it gets raised in the system and then routed to different people.
- Know what parts queues play in case management, how permissions work with queues and the difference between “Worked On” and “Owner”.
- Understand the use of the Knowledge Base, the different template types and how you deactivate/delete a template and what that means for any articles already using that template.
- Know the workflow of a Knowledge Base article and the conditions for emailing it out to a customer.
- Know the way that contract templates and contracts are used specifically the different allotment types and how they work.
- Understand the use of contract lines and what state a contract must be in for you to be able to add these.
- Be familiar with the contract life-cycle, what stages can pass to what other stages and what stages allow you to link cases to the contract.
- Understand how cases can be linked to contracts to use up their allotment and the difference between calculated Total Time and Billable Time.
- Look at the subject tree and know which entities MUST have a reference to the tree to be saved.
- Know what conditions are necessary to be able to close a case (specifically closing activities linked to that case).
- Be familiar with that entities can be easily converted in to cases.
- Know about the use of comments and notes against a Knowledge Base article.
- Memorise which entities are enabled for queues “out of the box” and which entities have queues created for them automatically.
- Understand the relationship between a Queue Item and the record it relates to.
- Understand the use of goal metrics and the goals that use them – this was one area where I found it essential to set up some examples myself and play with them.
- Know how you use in-progress and actual goals.
- Know about the different time periods to which a goal applies.
- Have a play with rollup queries to understand their use.
- For service scheduling, look at the service calendar and understand the different types of resources that can be scheduled.
- Understand the selection rules for combining resources to provide a service.
- Look at the periods of unavailability for resources and how the schedule engine will take note of these when proposing the next available slot. Be aware that CRM is clever enough to take time zone in to consideration and site.
- Be familiar with the use of capacity for resources.
- Look at customer’s preferences for service provision.
For SALES MANAGEMENT
- Know the difference between a lead and an opportunity.
- Be comfortable with the workflow of a lead and the entities that can be created when a lead is won.
- Understand how emails, activities etc. can be converted in to leads and opportunities.
- Be familiar with all the key entities in the sales area and how they link together – which entities can use sales literature for example?
- Be comfortable with the workflow for an opportunity and what related entities get closed when a workflow is won.
- Understand the use of the resolution activity.
- Play with the product catalog and understand the use of unit groups, discount lists and products.
- Understand the use of kits.
- Know how the standard price directly present on a product record can be used by the price lists and the different sort of pricing methods available.
- Be comfortable with how CRM handles price lists of different currencies.
- Know the quote – order – invoice workflow like the back of your hand 🙂
- Know how the use of price lists and system calculated pricing flows through this workflow.
- Be familiar with what triggers an update to automatically-calculated prices, particularly for mixed currencies.
- Look at the links between products and quotes and products.
- Understand what happens to a quote when an order is generated.
- Know what changes you can make to quotes, orders and invoices AFTER they have been activated.
- Look at the Sales History and Sales Pipeline reports and understand what they are built to show and what data they use.
Solid preparation is needed for this exam as the questions went in to quite a bit of detail about the workflows, about the set up of certain screens and about how CRM can be used to handle some particular scenarios.
I firmly believe that playing with the system and testing out everything you learn as pure theory is the best preparation you can do. On my exam there were a few of those annoyingly ambiguous questions that Microsoft seem to throw at you from time to time where it’s not 100% clear what exactly is being asked or multiple interpretations are possible but on the whole the exam was good, very close to the training material and a great way to familiarise yourself with these modules.
Here are the notes I made during my own preparation, I hope they are of use to you.
I had a recent need during some pre-sales work to try to dispatch an email from CRM 2013 in a totally non-standard way.
The challenge was to CREATE an email activity entity record in CRM from an external application and then use a workflow to try to actually send it rather than either the user clicking on the “Send” button or the workflow using a “Send Email” task.
A solution was not found but some research suggested that the approach chosen may work with the use of the email router as described below.
The Set Up
We were using a CRM 2013 on-premises installation with Update Rollup 1. We had a number of other external systems connecting via the CRM web service API which were creating email entities directly within CRM, such entities are created with DRAFT status.
We were using MS Outlook with the CRM Outlook client installed and connected to Hotmail for the actual email dispatch rather than the effort of setting up an Exchange or using the Email Router
The Build & Test
The challenge then was to detect that an email activity is created and force CRM to send it. To do this I created a workflow which: –
1) Had a scope of organization.
2) Detected the creation of an email activity with a particular title (hacky I know but it was a demo)
3) Updated the email record to set the Number of Delivery Attempts of the email to a number > 0 and the direction to OUTGOING
4) Then updated the status to “Pending Send”
A screenshot of this abomination is below: –
I rather hoped this would be enough and the Workflow did correctly fire and send the email if I manually created a record within CRM. However although it correctly fired and made the changes when the email activity record was created by the external application via the web API the email did NOT get sent 😦
A pretty similar approach to that taken to resend failed emails by this blogger:
With the limited time we did not manage to resolve this, even though we forced the emails in to the PENDING SEND state and set what we believed were all required fields, Oulook just would not relay them on.
We didn’t get time to check but some online research suggested that the only way to enable this approach is to be using the EMAIL ROUTER for email dispatch, I guess it might be polling CRM in a way that is critically different from CRM.
Anyway, I hope it helps anyone else going down this slightly non-standard way.
A few months ago Microsoft updated their set of four exams for Dynamics CRM to bring them in line with the CRM 2013 release. Having done the original four exams in their CRM 2011 “flavour”, I took and passed MB2-703: Customising and Configuring CRM 2013.
This post then covers how I prepared, what sorts of questions came up and what material I used.
The exam is the usual 48 questions of multiple-choice format with a passing level of 70%. It concentrates on everything that can be customized and configured with CRM 2013 using the “out of the box” tools. The full curriculum list is at the following link, and this should be your golden standard for what to study and your check list of knowledge just before going in to sit the exam.http://www.microsoft.com/learning/en-us/exam.aspx?id=mb2-703
The main resources I would recommend are: –
1) If you can get hold of the official course material for this exam from the Microsoft Online Courses (MOC) site then this is the best source of training. It includes eleven student PDFs for each of the main topics and also PowerPoint and lab exercises. Working through this is the best way of preparing as questions on the exam should limit themselves to what is covered on this course.
2) There is a new Customization guide within the CRM 2013 Implementation Guide and this is also a great resource for learning about customization options and restrictions.
3) Any notes and material related to the older CRM 2011 Customisation exam – MB2-866 – are useful as background material as the new exam will continue to test feature that have not changed between CRM2011 and CRM2013 such as Business Unit organization, Security, customizing Views etc.
4) If you’re still hungry for more after that then email me and I’m happy to pass on the notes I made (although they are rather rough) to show you exactly what I considered important.
5) Finally there is no substitute for playing with a trial CRM 2013 online version and the tablet/smartphone application (if you have a device) to test out some of the new features and work through the labs from the MOC material mentioned at point 1. Have a hunt around for useful blogs covering the new features if you want to go a bit deeper.
As a general pointer, the following sorts of questions came up a lot for me during the exam and are mentioned on the curriculum link: –
1) Make sure you know how business units are organized and what happens when you deactivate a business unit, what happens to users belonging to that Business Unit?
2) Know what inherited security roles are and how they behave when Business Units are reparented.
3) Know the different types of Views within CRM 2013 and particularly the new view type Associated View. Know what fields you can include within a view and the restrictions on sorting and specifying field as searchable.
4) Know how views can be used in sub-grids to provide data and how the sub-grids themselves can be set up for lists or charts.
5) Know how responsive design works with respect to tabs, columns and sections and how the same screen might get rendered on tablets and smartphones.
6) Know some of the restrictions for the tablet application – how many dashboards can you have, can the user change forms, how do long complex forms get rendered?
7) Know about the different types of relationships between entities within CRM 2013 and the differences between native and manual many-to-many links.
8) Know the restrictions on relationships, the difference between parental and referential and how these get configured within CRM.
9) Know what aspects of entities you can enable and disable and which ones can’t be disabled once they are turned on (Notes, Activities, Business Process Flows etc.)
10) I didn’t get any question on Access Teams but since they are a new feature it would be wise to study these.
11) Understand how Business Process Flows work, how they interact with security and how many flows you can have for an entity and how CRM reacts if you swap between flows.
12) Understand how Dashboards are used, what you can place on a dashboard and how they render on tablets.
13) Be comfortable with the use of managed and unmanaged solutions, what the difference is, how you create a managed solution and what you can use the version numbering for.
14) Understand how to create a private chart from a public one.
15) Understand how auditing works within CRM, how and where it is enabled and how the system behaves if you turn it off temporarily.
16) Understand the difference between global and local options sets and how these might behave when you have set up mappings between two entities that both use an option set.
17) Understand field level security and how it behaves across all platforms that CRM can be delivered on.
18) Know your way around Quick Create and Quick View forms, what they are used for, where they get accessed from within CRM and constraints about using them.
19) Know about the new Lync, Email, Ticker and URL formats for the Single Text field.
20) Understand the use of and restrictions surrounding Business Rules, where and when you would use them, what you can do with them.
In summary, for anyone that has already taken the CRM 2011 Customisation exam then I think the Royal road to success with MB2-703 is to have a relatively quick refresher on the customisations features you’re already probably very familiar with from CRM 2011 before concentrating on the new features that CRM 2013 introduces (Quick Create/View Forms, Business Process Flows, Business Rules, Tablet Application, Associated View etc.)
For anyone approaching this exam without the CRM 2011 background then the Microsoft course along with some dedicated time playing with the CRM is essential. There were lots of questions concerning how you achieve certain customisations within CRM and that sort of thing is much easier to remember if you have actually walked through doing it yourself, rather than simply reading about it in a more abstract manner.
Finally good luck and take heart, my experience was that the questions were clear and concise with little ambiguity so not too difficult if you’re prepared thoroughly.
Here are the notes I made during my own preparation, I hope they are of use to you.
Continuing my experience of playing with and learning about Dynamics CRM 2013, my next challenge was to build my first web portal on Azure that interacted with data held in a CRM online trial instance. This article provides a step-by-step walk-through of that experience and I hope it might be of use for anyone else getting to grips with the basics of portal creation.
The resulting portal site can be visited at: –
The tool set/systems that I used for this build were: –
- My MSDN subscriber account on Azure. You can sign up for a free trial at https://www.windowsazure.com
- A free 30-day online trial of Dynamics CRM 2013. You can sign up for this at http://crm.dynamics.com
- Visual Studio 2012 as my integrated development environment (IDE). Download from your MSDN account if you are a subscriber or chose another IDE of your own preference.
- A free Xmas-themed CSS from http://www.smopic.com
- The Dynamics CRM 2013 Software Developer Kit (SDK) for samples and ideas.
- The CrmSvcUtil.exe tool which ships as part of the SDK. When you unzip the SDK you will find it in directory SDK\Bin
- I wanted a nice Light Box effect for my Xmas Advent calendar and so used the lightweight jQuery Fancybox. Screenshot below.
Xmas Advent Calendar
I had already created a CRM 2013 solution containing the personal address book data of my friends in a previous exercise. You can read about that in my “Hello World” blog post. So using that as the foundation my portal idea was to set up a Xmas countdown advent calendar where each door revealed a photo that invited my friends to take part in a caption competition. The same site was also to allow the visitors to look up the data held about them in CRM and amend it if necessary.
Finally I was going to run a classic marketing campaign out of CRM to inform all my contacts that the site existed when it was finished.
The Portal Build
The build proceeded as follows: –
- Registered for a 30-day trial CRM and then loaded my address book solution in to this and my friend’s data.
- Extended this solution to create a simple custom “caption” entity that I would use to store the entries for the caption competition. This simply needed to store two text fields (name of submitter and the caption itself) and the day of December for which the caption was submitted. A screenshot of the caption entry list page in CRM is below.
- Logged in to Azure and requested a new website to be created. The connection details for this site are shown on the Dashboard page.
- Opened the command prompt and navigated to the folder in which I had extracted the CRM 2013 software development kit – under the Bin sub-folder the CrmSvcUtil.exe tool can be found. This tool is used to interrogate an instance of Dynamics CRM and build a .Net class that models all the entities. This class can then be included in projects that work with the CRM (such as my portal) to provide early binding of class types for working for CRM data. This means that we can write strongly typed code with full support for IntelliSense and compile-time validation that nothing is awry. Here’s an MSDN Article about using the tool.
- The format for using this tool (your data to replace the parts in capitals) is: –
- With the .cs class file generated I was now ready to begin work on the portal itself.
- I chose the ASP.NET Web Forms Application Template from within Visual Studio 2013, chosing to work in c#.
- I created a simple website of three pages with the CSS applied SmoPic. The pages were: –
- The advent calendar itself, 25 photos of my family with some c# code-behind controlling access based on the current server date. the jQuery Fancybox code was integrated to give up a pop-up showing a larger version of each photo and the form for caption competition entry.
- A “My Data” page in which visitors could enter a code I was to give them by email and access the data stored about them in CRM.
- A caption review page with a simple ASP.NET data grid extracting and displaying the captions entered to date.
- I extended the samples in the CRM 2013 SDK to create a basic CRM connection class and helper class to allow my code-behind to communicate with CRM. The URL and login details were stored in the site web.config.
- Captions were submitted by creating instances of the caption type provided in the class generated by CrmSvcUtil.exe. for example: –
// Use the avdemo_captionentry created in the CRM class by SvcCRmUtil.exe and
// populate its attributes with values from the portal web form. Use the
// Create method against the CRM proxy to create this record and returns its
// global unique identifier (GUID) assigned by CRM
avdemo_captionentry newCaption = new avdemo_captionentry();
newCaption.avdemo_Day = dayNumber;
newCaption.avdemo_name = txtName.Text;
newCaption.avdemo_caption = txtCaption.Text;
Guid _newCaptionId = crmAddressBookProxy.Create(newCaption);
- Any data retrieved from CRM used LINQ syntax, for example: –
// Working against the CRM, execute a LINQ query to return the captions entered to date
// and bind these to a ASP.NET Grid View on the web form
gvCaptions.DataSource = crmAddressBook.avdemo_captionentrySet.ToList().OrderByDescending(x => x.avdemo_Day).OrderByDescending(y => y.CreatedOn);
- This site was ran and tested locally out of VS 2012.
- Once satisfied I published the site directly from Visual Studio in to Azure following the instructions on this blog.
- As a last step I executed a marketing campaign from CRM with a template email with a link to the new site to invite friends to connect. I added an AccessCode field to the contact entity which I populated with random data uploaded from MS Excel for friends to use to access their information.
I know this article has remained very high level and not provided a throughly detailed walk-through but I wanted to highlight the main experience points that: –
- The CRM SDK provides some excellent resources and classes for connecting to and working with Dynamics CRM.
- Using CrmSvcUtil.exe is optional but if you do use it to provide early binding it simplifies how you write and validate your code. Without it you need to rely on more generic CRM classes – an approach called late binding.
- The experience of publishing directly from Visual Studio 2012 to Azure was painless and very slick.
- At the time of writing there were no CRM Templates for Visual Studio 2012, they exist for VS 2010 I believe but had not yet been updated. Had they existed (or had I been prepared to use VS 2010) I believe Microsoft provides a CRM portal template to make this sort of build even quicker.
- Overall the experience was pretty straightforward so that portals to expose CRM data can be quickly provisioned.