Tag: CRM 2011

  • Dynamics CRM 2011 on Windows Server 2012

    In addition to the shared development and test CRM servers at the office, I like to run my own personal CRM sandbox that allows me to test any applications, configurations and updates without having to worry about affecting any of my colleagues’ work. I’ve been running a VirtualBox server image on my desktop PC and standard hard drives, but even in a single user test environment, you can never have too much performance for your own needs.

    SanDisk_ExtremeAfter reading this blog post from Jeff Atwood, I couldn’t help but to shop around for an “SSD in your pocket”, meaning a super fast USB flash drive that would have sufficient storage space for hosting a CRM 2011 development server image. I decided to grab the SanDisk SDCZ80-064G-X46 64GB Extreme USB 3.0 Flash Drive from Amazon.co.uk for €60 and test it out as a portable CRM sandbox. 190 MB/s read and 170 MB/s write should provide a nice performance boost compared to my old spinning HDD’s.

    Since shrinking my existing VirtualBox image down to the 60Gb available on the flash drive would have meant giving up on a lot of things I had installed there, I decided this was a good moment for building a brand new virtual server. During the fall I had already attempted a few times to deploy CRM 2011 on Windows Server 2012, even though it has been unsupported. Unfortunately none of the workarounds published by Daniel Cai had done the trick for me, so I decided to wait for the official support.

    With Update Rollup 13 Microsoft Dynamics CRM 2011 Server finally became officially supported to be run on Windows Server 2012. However, there was one catch: you could only upgrade an existing Windows Server 2008 deployment with CRM 2011 onto Windows Server 2012. For a brand new deployment there was a disclaimer included with UR13 release notes:

    The Self-Healing Setup (SHS) that is required to install Update Rollup 13 for Microsoft Dynamics CRM 2011 on Windows Server 2012 will be published on Microsoft Update alongside the update rollup in mid-to-late April, 2013.

    Ok, it’s 1st of May now, so where are these SHS files? Well, they are available, but not quite in the kind of format you would expect. You can’t simply download an updated version of the Dynamics CRM Server installer, as the one available on Microsoft Download is still the old version with Update Rollup 6 that was released in January 2012.

    There’s a thread over at Dynamics Community CRM Forum that discusses the Windows Server 2012 installation procedure, but I’ll summarize how I managed to get CRM installed on such an environment. There were a few puzzling gotchas that no one else should spend their time on pondering.

    Get the update files

    The KB article 2434455, “How to obtain the setup updates for Microsoft Dynamics CRM 2011”, gives you the steps you need to follow. Instead of heading to Microsoft Download, you’ll need to visit the Microsoft Update catalog website (which only supports IE, by the way, so don’t click the link on Chrome or anything). From there you’ll be able to obtain a file called Setup Update for Microsoft Dynamics CRM Server 2011. The fun part about this is that the size of the file is 1.5 GB.

    Setup_update_for_CRM_2011_server

    Why is the file so huge, with the actual CRM 2011 Server installer being only 120 MB? The reason is that this file contains all 25 language versions for the update file. If you’re installing the English version, you’ll only need the en-server_kb2434455_amd64_1033 cab file. Oh well, the Internet is fast nowadays and hard drives are infinite, so let’s get on with it.

    Prepare for installation

    The cab file won’t be the installer itself, rather it’s a collection of updates that needs to be references while running the actual server installer. How do you do that then? By creating a config.xml file following the example given in the KB article above and dropping it into the same folder as installer and the cab file.

    Then we can proceed with starting the installation. Only there’s one more catch which isn’t included in the KB article: you’ll need to start the installation process from the command line in order to be able to tell that there’s a config file pointing to a cab file that contains the updates necessary for CRM 2011 to run on Windows Server 2012. You can read through the TechNet article “Use the Command Prompt to Install Microsoft Dynamics CRM 2011” if you’re interested in the finer details of parameterizing your CRM server deployments, but if you’re like me, you’ll just want to copy-paste the required bits onto the prompt to move on with the process.

    1. Put the cab and config.xml in C:\Temp
    2. Download the UR6 version of CRM 2011 Server installer and put the CRM2011-Server-ENU-amd64.exe file in the same folder
    3. Run the file, point it to extract the files onto the very same C:\Temp directory
    4. Cancel any further setup screens that may be launched, as you’ll still need to provide the pointer to the cab file
    5. Open the command prompt, go to C:\Temp directory and type: setupserver.exe /config C:\Temp\config.xml

    This process will make the installer skip the question of “do you want to download updates from Microsoft Update” and use the SHS cab file directly. This is the whole point of our exercise, as Microsoft Update for one reason or another cannot provide the necessary updates for Windows Server 2012 compatibility for the CRM 2011 Server installer.

    After this part, you can follow the standard steps for installing CRM. You may get an error screen saying “Action Microsoft.Crm.Setup.Common.InstallWindowsSearchAction failed. Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))”, but just click Ignore on it as that issue is most likely just about the indexing service for the CRM help files.

    Validate and update once more

    Once you’re done and have rebooted the server, you’ll be able to launch CRM. From those oldskool icons in the Wunderbar area you’ll quickly notice that this deployment is still running a pre-cross-browser era version of Dynamics CRM. The build numbers 5.0.9690.2015 and 5.0.9690.1992 indicate that it is in fact a UR6 organization still. (Hmm, was there ever any need for UR13 to support installation on Windows Server 2012 then?) Before you start working on your environment, download and install Update Rollup 13 to make CRM support the IE10 running on your Windows Server 2012, unless you enjoy using the IE7 Compatibility View.

    Windows_Server_2012_CRM_2011_small

    There we have it. A nice and fast CRM 2011 sandbox image running Windows Server 2012 and SQL Server 2012 in a 36 GB image stored on a very fast thumb drive. I’m sure I’ll be struggling with keeping the image small enough with all the updates, service packs, Office, Visual Studio and other bloat that’s bound to end up there. On the plus side I’ll be able to carry the sandbox on my keychain and plug it into any PC with sufficient memory to run the environment (3.5 GB & 2 CPU reserved for it currently) and enjoy SSD level disk I/O performance. We’ll see if it was worth all the trouble at the end, but hey – don’t we all just enjoy fiddling with the latest software and fastest hardware?

    Edit 2013-05-04: For anyone looking to move completely towards developing for Dynamics CRM on top of Windows Server 2012, please note that the Dynamics CRM Outlook client does not support Windows Server 2012 yet. If you try to run the setup, all you will get is the following message: “Cannot install Microsoft Dynamics CRM for Outlook. Install Windows Server 2008 Service Pack 2, and then try again.”

    Edit 2013-05-04, Part 2: If you’re interested in the detailed steps for building a Dynamics CRM sandbox, please refer to articles like Creating a MS CRM 2011 VM by Mark Kovalcson or Setting up a CRM demo environment in Windows Azure Virtual Machines by Shan McArthur (unfortunately the images on this post no longer work). It doesn’t really matter on which virtualization platform you’re building your sandbox on. I’m using VirtualBox simply because I have other existing virtual machines on it, but with Windows 8 built-in Hyper-V support you don’t necessarily need any additional software. Also, as you can see from Shan’s post, running these environments in Azure is also a perfectly viable option.

  • Creating recurring goals with some workflow magic

    Goal management is one of those features in Microsoft Dynamics CRM 2011 that has a relatively high barrier for utilization. The initial thought of measuring the business results of your organization through a built-in mechanism in your CRM system resonates with almost any customer that you tell about goal management, yet the excitement tends to wear out quickly once they discover the effort required in configuring and maintaining the goals. Sure, if you’ve only got a small organization and set goals on annual or quarterly level, it’s not such a big burden to key in the goal records with metrics and targets. But what if you’d like to measure something on a more real-time basis, like monthly or weekly? Even daily? Not such a fun thought anymore, now is it?

    There are creative workarounds available for generating goals for a larger number of data points. The most practical tip I’ve come across has involved copying goal records by creating a dialog process to streamline the steps required for reproducing existing goals. I originally read about it from a presentation by Richard Knudson on Scalable Goal Management in Dynamics CRM 2011. You can view the slides from eXtreme CRM 2011 Las Vegas in PowerPoint Online or alternatively read this blog post by PowerObjects that walks you through the dialog creation process.

    A different way to define goal time periods

    Sometimes what you need in terms of process measurement isn’t down to the detailed level of setting individual target values for each week or each user. Maybe you have a steady weekly target of X records in a particular state and you’d just want to easily see how you’re currently performing against this target. Here’s were a more recent article by Richard comes in handy: Goal Criteria and Dynamic Goals. The big message here is that you’re not actually forced to use the From and To dates of a goal record to determine the measurement period. You can basically set a goal to be running for 20 years and instead limit the number of records evaluated by the goals Rollup Query through a dynamic date criteria like “last 7 days”.

    Whit this little trick, setting up a dashboard that shows the current performance is super easy, no matter how short your goal time period is. The charts will update once per day based on the default roll-up recurrence  frequency, so displaying the difference between the target and the actual value for metrics like leads qualified or calls made requires you to only set up the goal once per each variant (owner, status, type…) but not the different dates. Just stretch the goal period to be as long as you like and control the dates in the Rollup Query definition.

    The downside of this approach is that the goal measurement is completely dynamic, meaning past values will leave no trace. Sure, you could enable audit on the goal entity to keep some form of results history, but since the audit data is not available for views, charts or even custom SQL reports (without some hacking), it’s not quite as easy as with the traditional method of creating goals for each time period separately.

    Tracking historical results without manually creating goals

    Another recent Dynamics CRM blog post favorite of mine comes from Yaniv Arditi. In his three part series (part 1, part 2 and part 3) Yaniv presents a model of how to implement an asynchronous batch process in Microsoft Dynamics CRM. Best of all, in his final post he provides a solution file that you can download and apply in your CRM organization.

    What does the solution do then? Basically it is a way to implement a much needed but currently missing feature of Dynamics CRM: easily scheduling recurring workflows on a group of records. With this solution you can specify a batch process that runs every X days, performs a query of the required CRM records and then initiates a workflow process for each of those records found. You schedule it once, leave it running and the related process will always create a new waiting instance of itself once it stars at the defined intervals.

    What’s the Fetch XML in there? It’s the Target Records Definition that determines for which records the workflow process selected in the Action Workflow lookup field will be executed. Where do you get the Fetch XML then? That’s easy: from any Advanced Find view, just by clicking the “Download Fetch XML” button on the ribbon.

    To put this solution into work together with the concept of dynamic goals, I’ve got the following sample use case: track the number of active cases on a daily basis and compare it with a target value. This is an example of a status metric that’s not so simple to directly calculate from the records in CRM. To produce a figure like helpdesk queue length you would need to not only retrieve the number of cases created on any given day but also compare it with the closure dates of cases. It would be much easier if we could just take a snapshot of the currently open records on a set interval and store the information into CRM. So, why don’t we do just that?

    First, let’s set up a custom entity called “Snapshot” to hold the data for us. We’ll establish relationships to both Goal and Goal Metric, then add the necessary fields for holding the types of data we want to track, in this case integer values for target and actual.

    Next we need an on-demand workflow process that will create these Snapshot records for us from the goal data.

    The batch process record shown previously has already been configured to perform the task we want: based on a daily schedule, retrieve all the goal records for which we want to be tracking the snapshots. All we need to do is set its Status Reason field to Scheduled, save the record and the process kicks off. The Asynchronous Batch Process Pattern solution will run every day (unless residing on a shut down virtual machine, like in my example image below), triggering the Take Goal Snapshot workflow, which in turn will create a daily snapshot of the actual and target number of active cases in the system. You can naturally visualize the history data with a chart, too. If you have different goal owners or several different goals to take snapshots of, just create the necessary views to filter the data shown.

    To summarize, in this solution we use the Goal record as merely a “calculation machine” that produces the Actual Integer value we need. It also holds the data for the Target Integer, with the ability to update this figure if the targets should ever change. The scheduling is managed by the Batch Process record. It takes care of initiating the Take Goal Snapshot process for the selected Goal on a daily basis, which results in the creation of the Snapshot records you see above. All we had to do was to create each record once and we can leave this solution running for as long as we need.

    I think this is quite a wonderful example of how you can mix’n match the different functionality of the Dynamics CRM platform to come up with a new feature that doesn’t exist in the product right out of the box, yet it can be implemented by using the platform components and supported extensions developed on top of it. Thanks again to both Richard and Yaniv in providing me with the building blocks for implementing the recurring goal solution.

  • Activity Feeds and user rights: who can see what?

    Activity Feeds are a channel that’s much like Twitter: creating posts that are visible for other users who are following you. On the surface they share many of the same concepts (mentions, following, replies/comments), but there are some notable differences that may come as a surprise to a user who’s accustomed to the open communication taking place on the external social networks. This is especially apparent in a CRM organization that has a hierarchical structure of business units and is limiting the visibility of core records such as accounts across the BU’s.

    Let’s assume that we have a CRM deployment with multiple BU’s that form a hierarchy of a single parent (the top level BU) and multiple child business units. In our example the child level is represented by two country specific BU’s: Finland and France. There’s a user called Jukka in Finland and another user by the name of Teppo in France (OK, not exactly a typical French name, but we’re actually dealing with a Finnish expat here in this case). They are both using CRM to manage accounts and opportunities in their own business units but do not have visibility to any other BU’s data. Nevertheless, we’d like to leverage the Dynamics CRM Activity Feeds as a channel for sharing insights and connecting across BU borders, to make the most of the human capital and knowledge available within our global organization.

    If Teppo from France is looking for new users to follow, he will need to fire up Advanced Find and perform a search of the user records available in the CRM organization (this is the first thing you need to provide clear instructions on, as it’s not quite as intuitive as on Twitter). Unless the default security roles have been adjusted in terms of the User entity, he will be able to see a list of users from all business units. Also the follow buttons on the ribbon of the results view will be active, so Teppo selects a few users from outside his own business unit, as he’s eager to learn about what information they might be sharing on the common CRM platform. However, if he’s paying close attention to the dialog that CRM presents to him he’ll actually notice that he wasn’t able to follow Jukka from Finland.

    “You might have tried to follow some recently deleted records. Newly following: 0” Hmm, what does that mean exactly? It means that the user wasn’t able to follow any users, even though he was not greeted with the familiar big, red X. The reason for this error message was most likely that the user didn’t have sufficient rights to append the Follow records to the selected User records. Assuming that we want to enable such cross-BU following of users, what we need to do is to modify one of the user’s security roles to grant a global right to the Append To function on the User entity.

    After we’ve granted the new rights, Teppo from France is able to follow Jukka from Finland. When Jukka posts a message on his personal wall, Teppo is able to see the post and jump in on the conversation. Social Business in action!

    OK, now how about if Jukka from Finland is writing a post on the wall of an account owned by a user from the Finland business unit? If Teppo is following Jukka’s posts, he will probably see this update from him as well? No, actually he won’t see anything on his wall. If we look at the same post from Jukka’s own Activity Feed wall we can spot the difference to the previous post:

    Here we see the importance of the regarding object of an Activity Feed post. Teppo will not see any of these posts written by a user he is following, because they are set as regarding an account record he himself is not following. These are not just independent posts on the Personal Wall of the user, rather they are updates that are posted on the wall of a specific account (Nokia). In our case, since Teppo does not have visibility to the accounts from another business unit, he has no way to access the conversation going on there or to go and follow the account record.

    (more…)

  • Future stars: Dynamics CRM roadmap news from Las Vegas

    We didn’t yet get a new Statement of Direction or Release Preview Guide for the future releases of Microsoft Dynamics CRM from today’s eXtreme CRM 2012 Las Vegas keynote by Craig Dewar, titled “Microsoft Dynamics CRM – Now and In the Future”. That is scheduled to happen next week, but who wants to wait around for the information that has been shared to the privileged few who attended the eXtreme CRM session?

    Lucky for us who weren’t able to go to Vegas, the best new bits revealed at the session were tweeted out by outstanding #MSDYNCRM community contributors like Neil Benson, Shawn Tabor, Brad Koontz, Bob Hatcher and Eric W Cahoon. Here’s a “best of #eXtremeCRM tweets” collection that tries to summarize what was presented in Dewar’s session.

    Q4 2012: Polaris

    Let’s start with the updates coming in the very near future. The next release is codenamed “Polaris” will be out in Q4 2012, so this is the “Fall 2012” release we saw on an earlier roadmap slide. More specifically, the new functionality will be delivered as a part of Update Rollup 12 during December 2012 for both on-premise and for CRM Online customers.

    Polaris will contain upgrades to the browser UI as seen in the WPC 2012 session in July. It will include the Process Driven Refresh UI and deliver a more “flat” user experience to better match the look & feel of Office 2013. Also, the cross-browser support originally scheduled for Q2 2012 Service Update will now be delivered in December with UR12 and this part will affect also on-premise and hosted CRM environments. The previously delayed custom workflow activity support for CRM Online will be delivered within the same UR12 update schedule.

    New announcements made at the eXtreme CRM keynote for Q4 2012 include click-to-call integration with Lync and Skype (both of which are Microsoft products these days, in case you forgot). CRM Online customers will get a simple Bing Maps integration with maps embedded on the customer forms. Presumably the CRM Online subscription will in the future include a license to use Bing Maps on an internal application whereas customers who’ve bought perpetual server and client licenses from Microsoft need to acquire a separate license to use the mapping functionality through the API (remember: it’s not a free service, like the Bing Maps or Google Maps website).

    Q2 2013: Orion

    The release after Polaris carries the codename “Orion” and is scheduled for Q2 2013. What’s special about this release is that it will be CRM Online only. Whether on-premises and hosted CRM clients will be completely left without updates in Q2 remains to be seen, but the new release cadence suggest only a single major update for on-premises customers per year. The Update Rollup release schedule with an 8 week cycle should still remain unchanged, though, so it’s likely to be a bit of a mixed bag of what’s really “Online only” in terms of new or changed functionality. Update: it’s actually the Q4 2012 Polaris that will be Online only, see the comments at the end from Craig Dewar.

    As I’ve already speculated for a long time, the new Agaves in Office 2013 apps will be used as the means to deliver Dynamics CRM support for Outlook Web Access, both in OWA and MOWA (mobile app). This will finally enable tracking content from your inbox into CRM without having to live with the Outlook desktop client legacy. Also the synchronizing of items from Exchange will be possible on the server side with the Orion release in Q2 2013.

    Yammer integration, which presumably goes much deeper than the current integration solution built by Yammer before being acquired by Microsoft, is scheduled for Q2 2013. Other than this, concreted evidence of bringing social channels into Dynamics CRM was not leaked from Vegas, so we’ll need to wait a bit longer to see how Microsoft intends to deliver on the social story they’ve been promoting for CRM since this time last year. Back when we were still talking about Polaris as the R9 release this was supposed to connect Dynamics CRM with the external communities in a big way, but no major announcements have so far been made on this front.

    Ok, I did spot one physical evidence of social CRM from the Extreme CRM announcements, in the form of a new Social CRM solution built by Sonoma Partners. It’s baked into the updated version of CRM Demo Builder, which now allows you to provision CRM + SharePoint on the same, shared Office 365 platform, thus achieving single sign-on. Whether this particular Social CRM app will be made available to all CRM customers is something I’m not yet sure, but it looks like quite a solid little app for bringing Twitter feeds into CRM by using the same look & feel as the previous Activity Feeds solution. You can promote tweets into new/existing leads, contacts, accounts, cases or opportunities, after which you see the original tweet in CRM as an Activity Feed post. Nothing revolutionary in itself, but a welcome feature, if something like this is actually on Microsoft’s roadmap.

    That’s all of the news I picked up so far from the event by following the social networks. Did I miss any interesting tweet from #eXtremeCRM or an important piece of news? Leave a comment & let’s assemble the pieces of the Dynamics CRM roadmap together!

    Update 2012-09-04: I received clarification on the release roadmap from Craig Dewar himself, here’s the update:

    • “Polaris due Q4 2012 is online only with one exception. There is one capability in Polaris namely cross browser that is of such high interest we will release that capability on premise also.”
    • “Orion due Q2 2013 is online and on premise. It will include all Polaris functionality in addition to many new capabilities.”

    Based on my interpretation of the above, CRM Online customers will get the Polaris functionality first, while on premise and hosted CRM customers receive these updates 6 months later when Orion comes out.

  • Country lists and multi-language lookup fields

    Country lists and multi-language lookup fields

    One of the most common customizations almost any organization working with customers from multiple countries will want to have in their Microsoft Dynamics CRM data model is the addition of a structured list of country names, to ensure they are stored in a consistent format. Yes, by default the Country/Region fields on the account, contact and lead entities are free text fields that a user must manually fill every time. This can result in some serious issues with data quality that make it difficult to perform a common task such as searching for accounts from specific countries. The field may contain values like “United States of America”, “United States”, “USA”, “Estados Unidos de América”, not to mention different conventions for upper/lowercase letters, hyphens etc.

    Why doesn’t Dynamics CRM come with a pre-configured list of countries? There are probably several reasons for the choice of this design, some of them which date back to the early days when CRM wasn’t a multi-language platform (before version 4.0 came along). Anyway, there’s absolutely nothing stopping us from fixing this gap by using the basic customization tools, so let’s get right to it!

    Picking the right Country field option

    There are two alternative approaches to implementing a controlled list of values for country names. You can either create a new option set (preferably a global one) or a new entity to hold the country name values. There are pros and cons to each method, which means the right choice depends on the use cases of the organization in question. In a simple scenario the option set may well be sufficient, if there are no other requirements for country data in CRM. For implementation guidance, look no further than this excellent post by Pedro Innecco: Dynamics CRM: Adding a Country/Region option set using ISO 3166-1.

    Sometimes the country data management requirements may be somewhat more complex, which may lead you into choosing to create a custom Country entity. This approach has the benefit of allowing you to store other variables than just the name of the country on the same record. For example, there may be parameters related to reporting that are country specific and would therefore be logically placed on the same record as the official name of the country. Other regional variables such as states or languages spoken are also a natural fit to be stored on the country entity.

    One interesting scenario to explore is the possibility of using the Country records as a central location for posting updates specific to a particular region, by using Activity Feeds on the Country record’s wall. Let’s say you have a multi-region Dynamics CRM implementation and you want to target auto-posts to users working with customers from specific countries. By generating posts like “New campaign Big Fair 2012 launched in @Finland” or “Major opportunity closed in @Sweden for account Contoso” that mention the country record you can easily push updates to any user who’s following that particular country. For a more detailed explanation please see my earlier post on how to make CRM Activity Feeds easier to follow by creating custom groups.

    There’s a catch with the custom entity approach, though, and that is the lack of native support for multiple languages. While the option set labels are a part of Dynamics CRM solution files and support translations just like your regular form fields, a custom entity is just data stored into the CRM database, no matter if you use it in a metadata like manner. As a result, if your CRM organization has different languages enabled and the user switches from English to Spanish, the value on the Country field on the account form won’t change from “United States of America” to “Estados Unidos de América”. If you had used an option set, all you’d need to do is export the labels for translation, enter values for the Spanish language column for the option set values, import it back and publish the results. However, with the custom Country entity we’ve ended up choosing, the value stored in the name field of the Country record will display the same way, regardless of the UI language of the logged in user.

    Nothing a little Jscript can’t fix

    Lucky for us, Pedro has come up with a solution that can also handle the multi-language support requirement when using a custom entity to hold the country labels. In the image below, you can see an account record viewed first in English, then in Finnish. Even though we’re using a lookup field to the Country entity on the account form, the label of the selected Country record has magically been translated from one language to another. As if that wasn’t enough, also the Look Up Record dialog window shows a list of values that has been tailored to the language of the user. Well, that looks like the best of both worlds, doesn’t it?

    How can you switch the label in the lookup field then? All you need to do is to download the Country/Region for Dynamics CRM solution created by Pedro Innecco and configure your CRM organization to take advantage of the scripts included. The solution also provides the ability to add more languages, so I’ll list out the steps I followed to add the Finnish language support for this Country lookup field.

    (more…)

  • To update or not to Update Rollup? That is the question

    Some time ago I wrote a parody about Dynamics CRM blogs that mainly seem to post news about the latest Update Rollups being released. Now I find myself writing an Update Rollup blog post myself. Is that a sign that I’ve run out of topics and slipped into the autopilot blogging mode? I hope not, but after reading quite a lot about the latest Update Rollup 10 for Dynamics CRM 2011 I decided to contribute a bit into the discussion.

    It’s always great to receive improvements to the software you spend all your days working with, isn’t it? Compared to a product like Java which Oracle promises to patch only four times a year, even if it’s about critical security updates (did you remember to uninstall your Java 7 yet?), Microsoft is doing quite an OK job with their update process and we see a steady stream of releases to make Dynamics CRM better one bit at a time. Even though Update Rollup 9 was cancelled after the beta program, MS is now back on track with their release schedule in the form of UR10 that came out two weeks ago.

    We have once again a great in-depth article from Dynamics CRM in the Field about all things Update Rollup 10. It tells all the details of the story from Microsoft’s perspective, but let’s evaluate the ups & downs of this latest release from the Dynamics CRM community perspective to get a complete picture, shall we? OK, here goes:

    The Ups

    There was quite a number of fixes promised for the CRM Outlook client in Update Rollup 10 that would potentially solve some of the stability issues many users have encountered when trying to use the CRM Outlook client for actual work in their environment. It’s now 2 years since the first beta of the completely rewritten Dynamics CRM Outlook client came out and many of us are certainly hoping that it would have reached a mature enough level where you don’t have to be afraid of if causing a flood of tickets to your helpdesk. Yes, some users may be quite happy with it as it is, but you’d be foolish not to prepare for potential issues when planning a large scale deployment of the Outlook client. Reaching that good ol’ Service Pack 2 type of confidence level would be just great.

    Another promising deliverable from UR10 is the improvements to query performance on large data sets. A new version of the performance optimization whitepaper has been released alongside the update, which describes the new options made available to tune the Quick Find performance. If you read the results of these tests by Chris Cognetta where the query time was decreased by over 80% in an environment with 1.5 million rows, it’s obvious this is an update worth paying attention to if you have or expect to have some “big data” in your CRM system.

    Finally, as many MSDN subscribers are now eagerly updating their PC’s to run Windows 8, Internet Explorer and even the Office 2013 Preview, the added support for all of these in CRM 2011 Update Rollup 10 is reason enough to grab the very latest CRM bits. Just don’t forget that UR10 alone is not enough, there’s some things you should know about Windows 8 RTM & CRM 2011.

    The Downs

    So, we now have a Quick Find that is working faster, which means it must be doing something differently, right? It is, and unfortunately in some cases this will result in a Generic SQL Error message being shown to the user. It appears that the new update is not quite comfortable dealing with a set of Quick Find columns that contains address fields. As some of you may remember, the address 1 & address 2 fields on the account & contact forms are actually not stored in the same database table as the rest of the default fields, rather they reside in the CustomerAddressBase table. The UR10 version of Quick Find may therefore not work properly if you try to search for records based on address fields like city or zip code. Yes, Microsoft says using these as search fields is against best practices, but the users will very often want to narrow down the customer data based on geographic variables, so taking it away from them can only act as a workaround until we have a new hotfix from MS.

    CRM developers might not be too concerned with performing actual queries on live customer data, but they will certainly be annoyed when encountering the following prompt after editing a JavaScript web resource: You have exceeded the maximum number of 200 characters in this field; it will be truncated. Doh! Making small changes to script files just became very tedious until Update Rollup 11 rolls along in 2 months time. Again, there’s a workaround to it (don’t use the editor, instead upload the file or use some helpful web resource tool from CodePlex), but it doesn’t really make anyone want to rush UR10 onto all their servers.

    Then we have stories of people applying UR10 and finding they can’t access any of their CRM organizations, due to an unhandled exceptionMethod not found: ‘Void Microsoft.Xrm.Sdk.Query.FilterExpression.set_IsQuickFindFilter(Boolean)’. Uninstalling UR10 appears to be the only known cure for this show stopper, which obviously is related to the aforementioned Quick Find changes on some level.

    Alternatively, if you’ve updated your CRM server from 4.0 to 2011, you may experience errors when trying to import a solution file: The element ‘savedquery’ has incomplete content. List of possible elements expected: ‘LocalizedNames’. Manually editing the XML to remove a view prior to importing the file is the available workaround, but again it can make the life of a system customizer quite difficult until there’s a fix available.

    OMG, what should we do with these UR’s?!

    The short answer is: always test first, then evaluate the ups & downs for your particular case. If you are struggling with the Outlook client, face performance issues with your huge CRM database or simply want to run CRM 2011 on Windows 8, going for Update Rollup 10 may be perfectly sensible for you. For someone who doesn’t have a compelling need to update, you may well decide to wait a bit longer and no one should blame you for it.

    That’s pretty much how it is with any Update Rollup. In reality there’s never going to be the perfect time to update. Knowing ahead what hotfixes will deliver the biggest gains for you or potentially break your CRM deployment would be a great skill to have. Instead of dreaming about it, here’s a few guiding principles I would recommend you to follow:

    • Always test the updates in your own test environment before planning live deployment. A virtual machine with your solutions & data is a good compromise, identical hardware is for people with enterprise level budgets (and problems).
    • Never be the first to update, always wait a couple of weeks from the release and read the CRM forums for experiences from others. Trust the wisdom of the crowds.
    • Coordinate the server and client update schedules to limit possible issues and maximize the benefits from the updates. While mixed environments tend to be supported, why risk it?
    • Do update your CRM. Staying too far behind in this “cloud first” era can soon turn out to be an expensive strategy, so reserve adequate time and resources for keeping your CRM up to date – on a regular schedule.

    Do you have any words of advise for people who are struggling with the “should I update to Update Rollup X” question? What’s your survival strategy?

    Edit 2012-09-09: Based on the discussions on the Dynamics CRM Forum, I’ve created a new wiki page for Microsoft Dynamics CRM 2011 Update Rollup 10 on the CRM Wiki on Technet. The purpose is to provide a single place where the Dynamics CRM community members could share their information on potential issues and known problems that they encounter when applying the latest Update Rollups, as well as naturally links to any solutions or workarounds that can help others who are struggling with the same problem. I’ve initially added links to 10 suspected issues with UR10, but you are very welcome to contribute by adding new links or additional information to the wiki page. In an ideal world, we could have similar pages for each new rollup that gets released and be able to more easily identify both the benefits and the dangers or applying the updates into our CRM environments. Let’s see if the wiki can serve us as a platform for such information sharing.

  • Activity Feeds in R8: from follow to filter

    One of the functional areas to receive an update in the Dynamics CRM R8 release in Q2 2012 will be the Activity Feeds, which were originally introduced as an optional solution in the previous R7 release. In R8 we’ll get the ability to filter the content of the feed, but what are the implications of this enhancement in practice? Bigger than you might imagine at first.

    While the concept of a wall with an activity feed fits well within a modern business application that must not only provide a method to enter  & query data but also allow users to discover relevant information and comment on it, there was a slight handicap in the initial version of the Dynamics CRM Activity Feeds. This was the requirement that you had to explicitly tag the records you wanted to follow, before anything would show up on your wall. What may initially appear as a convenient way to select the updates you’re interested in seeing on your personal feed can soon become difficult for the users to actively manage.

    Let’s imagine a scenario where a user is interested in regularly monitoring the activity feed posts around prospect accounts that have open opportunities. How would the Activity Feeds functionality meet this requirement? Before R8 you would have needed to perform Advanced Find queries on the records that match a certain criteria, then select all (max 250 at a time) and click the “Follow” button on the ribbon. Of course if any new records were created or modified after your search, you wouldn’t have seen updates related to them unless you performed the query again and again. The most advanced users could of course have created a workflow rule that adds the follows based on new events in the database, but a process like that would hardly be obvious for the majority of CRM users. Automating this with a centrally managed workflow or plugin to automatically generate follow records for the appropriate audience on the other hand requires the type of top-down information system planning that doesn’t fit well with the whole idea of social business and its empowered end users.

    In R8 all this will change. The system now allows you to define dynamic filters for retrieving posts regarding records that meet the filter criteria. Rather than individually cherry picking records on your follow list, you can now look at the available Activity Feed posts which reference records of a particular type, such as the aforementioned “prospects with open opportunities”.

    In short, you don’t need to follow records anymore. It’s now optional.

    Ok, so anyone can then go and create a filter for exactly the types of records that they want to see posts from, set that as their default posts view and just enjoy the feed, right? Well, unfortunately not quite. Only the system administrator or system customizer can create new system views and promote them to become available filters for Activity Feed posts. So, how do you create a new filter for Activity Feeds then? Here are the steps:

    1. Go to the Customizations menu, open a suitable solution with the entity you wish to create filters for.
    2. Build a new system view and set the filter criteria of the view to match the filter you want to apply on records from which the related Activity Feed posts should be available. Publish your customizations.
    3. Go to the Activity Feeds Configuration menu and open the Post Configuration record for the corresponding entity (if one doesn’t exist, create a new one with the schema name of the entity).
    4. From the Filters subgrid, select your new view and click Show on the ribbon. No need to publish anything, as this is configuration data (not metadata) and the changes will take place  right away.

    It looks like any new Activity Feed filters published will become visible in the selector menu on the wall by default. The user has the option to click “modify this list” and access a view called My Filters. If any of the filters made available to the whole organization are not relevant to them, this is where the users can set to hide them from their Activity Feeds menu. As a little extra touch, the sort order of the filters can be also adjusted.

    While this means that the users have some level of control over the filters visible to them, the same will not be true for the actual system views that need to be created and published for the whole organization to see, in order to make the filters available to the users who may need them. Personal views will not appear as Activity Feed filters, at least not in the R8 release.

    All in all, it may not be the most elegant solution for the problem of filtering Activity Feed posts, but it definitely does make the whole feature considerably more useful. The pain of getting users to go and follow records in CRM is reduced, as is the need for creating workflows or writing plugins that add the follow records automatically based on some business logic. Also, the benefits of the Activity Feed will be much more apparent for a user who is simply browsing the system contents, as he or she will be able to access a list of account related posts with the simple selection of one filter.

    Looking at the rest of the Activity Feed functionality, there is no further automation regarding the creation of auto posts in the R8 update as far as I know. Default entities have Activity Feed Rules available but for custom entities or events not included in the out-of-the-box rules, you’ll need a workflow or plugin to create the post. One thing that’s important to understand is that the Activity Feeds are not about showing all the updates taking place regarding a record. That’s what auditing is for. Unless you have configured yourself an auto post to be added whenever a record X of entity Y is created, nothing will show up on your wall, regardless of the new filtering capabilities.

    In R8 the follow limit in CRM Online will be increased in R8, but there’s still a hard limit of maximum 1000 follows per user. On-premises servers will have the possibility of increasing this limit, but performance impact is to be expected at some point due to the complex nature of the underlying Fetch XML queries used in constructing the result views for the walls. A very welcome new feature is the ability to enable also organization owned entities for Activity Feeds. This means you can add a wall on a competitor entity form, for example, which was previously not possible.

    What we’re still lacking is the ability to perform searches on the content of Activity Feed posts. Even though the underlying data is in a way structured by containing references to the related records, we’re not able to use any keyword in the actual post text content to perform searches on posts. OK, in theory we are able to perform Quick Find searches on the data if we manually add the post entity into the sitemap, but we’re unable to open the post and comments from there, as the post entity does not have any form that could be used for viewing the content outside of the wall (“the walled garden of activity feeds…”).

    Click to vote for the feature enhancement suggestion on Microsoft Connect

    I find the lack of a search feature on the social content stream quite a strange oversight from Microsoft’s part, considering this is already a v2 release of the solution. If any ISV’s are looking for a new product to develop, then how about creating an Activity Feeds Search solution that offers a custom UI to browse the content of the posts? For the others, why not log in to Microsoft Connect and vote for my product suggestion to Allow Activity Feeds post content to be searched. Thanks for your contribution.

    (For any of you wondering where to get the new, updated version of Activity Feeds, you’ll need to wait for the R8 to be officially released, as described in my previous post. The post here is written based on the R8 beta functionality.)

    Update 2012-07-30: even though the updated Activity Feeds functionality in R8 seemed quite polished, it now looks like these new features have also been postponed by 6 months until the Q4 2012 release, alongside cross-browser and mobile support. I find this decision particularly hard to understand, since the only thing you would need for the new Activity Feeds solution to work in an Update Rollup 8 environment would be a few expansions to the database schema, as far as I can see. Could there be some implications from the recent Yammer acquisition that have forced the Dynamics CRM team to halt any updates to their home brew feed functionality, that’s something we’ll probably never know for sure.

  • Dynamics CRM update & version madness explained

    Things used to be simple back in 2005 when I started working with Microsoft Dynamics CRM (known as only Microsoft CRM back then). You pretty much knew that there would be a version update every 2-3 years. In between, there would be a number of hotfixes created to address software bugs, which were packaged as “Update Rollups”. CRM 3.0 received in total three such packages. CRM 4.0 things kicked up a notch as we started getting these Update Rollups (UR) based on a regular schedule, one update every 2 months (until they were put on hold after UR21). CRM 2011 adopted the same UR release schedule, but in addition to that, Microsoft announced that they would adopt a new agile release model.

    Exactly one year after the announcement we find ourselves in situation that may seem quite confusing to the casual observer. There are new releases in the horizon on a continuous basis and it’s easy to lose track of what exactly is meant by which update. Well, here’s my shot at explaining what’s going on.

    What’s the “R” in R8?

    R8 means Release 8. OK, so what are the previous seven versions then? They don’t refer to CRM 1.0, 1.2, 3.0, 4.0 or 2011 (there never was a 2.0, as some of you will remember). This R-based naming policy comes from the CRM Online product, which used to have its own release schedule with no UR’s and a slightly different code base from the on-premises product. The first R was presumably released when CRM Online was announced in April 2008. Things changed when Microsoft Dynamics CRM 2011 was released on January 15th, 2011, after which both the Online and on-premises version have pretty much gone hand in hand.

    The “Rx” naming signifies a new functionality release and should never be used to refer to Update Rollup versions. Don’t shorten UR8 to R8, because the two are not the same (even though they are intertwined as we’ll later see). The Update Rollup version numbers always start from 1, so there’s been an Update Rollup 1 for both Dynamics CRM 2011, CRM 4.0 as well as CRM 3.0. Makes googling for information all the more merrier, eh? The Rx releases are a product of the cloud era and until we reach the next era beyond cloud apps, I don’t expect Microsoft to start the numbers from R1 all over again.

    What’s the Q2 2012 Service Update?

    Since it would have been confusing for on-prem customers to first release Microsoft Dynamics CRM 2011, then follow it up with a “Release 7” all of a sudden, Microsoft decided to come up with a different naming policy for these new, agile releases. Unfortunately, the naming policy they chose gave us monsters like “Microsoft Dynamics CRM 2011 Q4 2011 Service Update”. Wow, how catchy, and only 50 characters long! As a result of this, what was originally supposed to be just internal jargon became the preferred option for human communication and we learned to know the update as R7. 50 vs. 2 chars, which one would you expect to fly in the age of Twitter? ‘Nuff said.

    Most of you must surely be already familiar with the contents of R8, the next release, and if you’re not, here’s a link to the Release Preview Guide. The real catch is in how the promised new features will actually be delivered. The correct answers to this question are:

    • In multiple Update Rollup versions
    • As solution files
    • Through Microsoft hosted, subscription based services or 3rd party licensing
    • In other Microsoft products

    A, B, C, D – tick ’em all. This is the reason why there will not be any single place where you can “download R8”.

    What will the Update Rollup 9 contain?

    The official release announcement of Q2 2012 Service Update will most likely coincide with Update Rollup 9. However, if you study the contents of the Guide, you’ll find features that have already been released before UR9. Rapid View Forms were introduced in March as part of UR7 and re-labelled as Read-Optimized Forms. The same is true for SQL Server 2012 compatibility.

    As we know from the previous R7 release, Activity Feeds are delivered as a solution package that you will need to download from the Dynamics Marketplace and configure manually. The Activity Feeds solution is not a part of the “core” Dynamics CRM product. However, there are parts of it that have been built into the platform, which is why at least Update Rollup 5 is required in order to install the solution. Similarly, you will need to get an updated version of the Activity Feeds solution after installing Update Rollup 9, otherwise you won’t see the new features.

    A key deliverable of Update Rollup 9 will be the cross-browser compatibility that makes Dynamics CRM available on Chrome, Firefox and Safari. Since this is such a significant change to the platform, Microsoft has been kind enough to grant access to the R8 beta release for anyone who’s willing to follow these steps. Please note that the beta bits available for download cannot be upgraded to the final release of R8, so use them in a test environment only.

    Extended browser support is completely separate from the mobile device support promised in R8. While you will be able to run CRM on an iPad Safari browser, the mobile UI demoed by Microsoft in numerous occasions is only available as 1) a subscription service from Microsoft, if you’re running Online or IFD, or 2) a perpetual license to be purchased from CWR Mobility if you intend to host the required service on your own server. Trying to access your Dynamics CRM environment after UR9 installation with an iPhone will most likely just give you the simplified Mobile Express user interface already familiar from the CRM 4.0 days.

    Oh, and do note that the Microsoft Dynamics CRM Mobile released for Windows Phone 7 back in Q4 2011 Service Update is a completely separate product, even though it carries exactly the same name as the new offering developed by CWR Mobility and later on re-labelled by Microsoft. Since CWR Mobility didn’t have a Windows Phone client, this mobile app will likely remain on a separate development roadmap from the CWR-based offering.

    What’s the role of SQL Server 2012 in all this?

    If you haven’t seen the cool drag & drop report designer or the animated bubble chart demo of Power View, take a look at this video:

    Wow, wouldn’t that look nice on a Dynamics CRM dashboard! Well, even though Power View is listed as one of the R8 features, there’s a couple things you should know:

    • It’s not available in the cloud. Sorry, CRM Online users. Maybe in R9 then?
    • CRM dashboards are a different data visualization technique that will remain “as is” for R8, not integrated with Power View.
    The pre-configured Power View templates promised in R8 will be delivered as a Dynamics Labs solution, probably as a download from the Dynamics Marketplace. The same goes for the PowerPivot models to be included. Note that if you want to publish these PowerPivots to your organization, you’ll need an on-premises SharePoint Server 2010 with Enterprise CAL’s to view their contents on a browser window in your intranet.

    In addition, if you plan to use SQL Server 2012 for hosting your Dynamics CRM database and Reporting Services, it’s good to know that you can’t achieve this configuration with the RTM bits for Dynamics CRM 2011. Update Rollup 6 has established a new baseline for CRM and you’ll need to download the server installation files from Microsoft Download Center, otherwise you’ll run into the following error while trying to install the Reporting Extensions:

    Unable to validate SQL Server Reporting Services Report Server installation. Please check that it is correctly installed on the local machine.

    What time is Metro?

    Putting things into perspective, Dynamics CRM is a small fish in the tank compared to the big whale that is Windows 8. Since R8 will be out well before Windows 8, there isn’t yet a 100% support provided for the Internet Explorer 10 browser provided with it. Hopefully the remaining issues will be addressed by upcoming UR’s as Windows 8 is nevertheless just around the corner. Presumably we’ll see a proper Metro app for Dynamics CRM once R9 is released later this year. After all, the Windows RT tablets will not be able to run Outlook and we’ll need some solution for activity tracking to and from CRM.

    When it comes to Windows Server 8, official support has not been announced. However, that doesn’t mean you couldn’t install Dynamics CRM 2011 Server on a Windows 8. Daniel Cai has done just that and offers a tutorial for anyone wanting to test R8 on the very latest Microsoft products available.

  • Cross-browser support implications for CRM developers and users

    Soon the R8 update of Microsoft Dynamics CRM will be upon us and the application will officially open up to browsers other than Internet Explorer. What this means is CRM will also be accessible through different devices than just Windows PC’s: Macs, Linux machines, iPads and other tablets. Exciting times for all CRM geeks around the world, myself included, which is why I already wrote some of my thoughts on the topic after the Q2 2012 Service Update contents was revealed (see the post “To the eXtreme, part 2: The future of the web caught up with IE and Dynamics CRM”).

    More supported browsers & devices will inevitably mean more work for CRM developers, as testing your application on IE alone will no longer be enough. As we get closer to R8 go-live before the end of Q2, the need for more detailed information on the practical implications is surely growing. Luckily XRM Virtual had managed to get Karun Krishna from Microsoft to give a webinar on the topic of cross-browser development on May 1st. The Live Meeting recording is now available for viewing at the XRM Virtual site. Apparently also Karun’s slides were shared during the live session, but since the recording didn’t contain them, I decided to write down a few notes of mine from the contents of the presentation.

    First up is the detailed browser support matrix seen below, which expands the list previously provided in the R8 release preview guide. Included are new yellow boxes for Internet Explorer 10 on Windows 7 and Windows 8, which indicate a “supported but not full fidelity” user experience for Dynamics CRM. Also the Firefox support on Mac OS X appears to have fallen onto this level where some display/functionality bugs will exist.

    Microsoft Dynamics CRM 2011 cross-browser support matrix

    In his presentation, Karun explained that while the CRM team tried to use HTML5 compliant techniques wherever possible, there were still some areas where an alternative approach had to be used in order to replicate the existing Dynamics CRM functionality across non-IE browsers. Any IE specific APIs have been removed, but as the w3C standards are still evolving, there isn’t necessarily always one single right way to implement a specific functionality in the cross-browser world. Therefore a feature detection approach for checking for browser capability differences is recommended over developing for any specific browser version. The webinar included examples and best practices on API’s and XML processing, so be sure to view the recording for details.

    It was announced already earlier that using browsers other than Internet Explorer for the administration and customization menus of Dynamics CRM would not be supported. Sorry guys, you’ll still need to boot into Windows on your MacBook if you intend to do any customization work. Some additional information was now provided on features that will not be supported on other browsers than IE. These include:

    • Workplace calendar
    • Services (scheduling) and service calendar
    • Editors for workflows and dialogs
    • Lync based presence information

    One thing to note is that the old crmForm object API from CRM 4.0 days will continue to work only for Internet Explorer. Therefore if you have any scripts in place that have not been updated to use the Xrm.Page methods, these won’t work for users on Chrome, Safari or Firefox.

    Finally, while iPad 2 support with iOS 5 is provided, it’s important to note that this is simply the support for usage through Safari browser, not a dedicated application optimized for the tablet environment. For the premium UX you’ll need to acquire/subscribe to an add-on app like the Microsoft Dynamics CRM Mobile for iPad, of which you can view screenshots in this post. The browser experience on an iPad 2 will have the following known limitations/issues:

    • No popus. Since Dynamics CRM by default opens a wealth of windows and dialogs, this doesn’t match well with the “flat” UI’s of tablet apps.
    • Touch events compared to mouse events will cause some lack of functionality (no right click, double click)
    • iFrame scroll bars may be missing.
    • Window closing has issues due to a focus related bug in the .close API
    • No Silverlight. Well, no surprise there…

    Edit 9.5.2012: The long awaited R8 release for Microsoft Dynamics CRM 2011 is now available as a beta version! PartnerSource login is required for the beta program sign-up and download (CustomerSource might also work) at http://bit.ly/crmr8beta. If you want to test your Dynamics CRM solutions in a cross-browser environment (Safari, Chrome, Firefox) before the official release of Update Rollup 9, then this is the program for you. Please note that the beta version of R8 will not support an upgrade to the final version of R8, so you should apply it to a dedicated test environment only.

  • Did you just disable duplicate detection in CRM by accident?

    Duplicate detection rules in Dynamics CRM are an example of a configuration item that may often be active only in production environments. Since you don’t actively enter data into development or test environments, why bother thinking too much about them? Well, the one place where you need to be thinking about them is when you are importing new solutions and publishing changes to customizations.

    Life would be easy if you could just set up and publish your duplicate detection rules once during the initial configuration of your Dynamics CRM production environment, thus stopping the unintentional entry of duplicate records into the customer database. However, you may run into a situation where a rule that you’ve once published has later on returned to an unpublished state. “What? Who touched my duplicate detection settings?”

    The likely answer to the question is “You did, but unintentionally”. You see, the duplicate detection rules are sensitive to changes in your entity customizations. As noted in the Madrona Solutions Group blog article, whenever any entity metadata is changed, all duplicate detection rules associated with that entity are unpublished.

    If you look at this from the system’s perspective, the process does make sense. After all, you might have set up a duplicate detection rule that is comparing records based on a criteria that that references fields you’ve changed or removed as a part of your CRM customization actions. Still, the fact that a publish event on a CRM 2011 solution triggers an unpublish event somewhere else is not very intuitive and most system administrators are likely to be unaware of the impact. As a result, there are certainly several production CRM environments out there where the once carefully planned duplicate detection rules have been deactivated because of this dependency between solutions and duplicate detection. In fact, you might want to check your own Dynamics CRM environment right now and check if you see duplicate detection rules with the status reason “unpublished” which should in fact be published.

    What this means in practice is that anyone who’s deploying solution updates to an environment that is using duplicate detection rules needs to instructed to always re-enable the rules after they’ve updated customizations that reference an entity which is being monitored for duplicates. In my opinion, it would be very practical to have the system notify you about this task, for example by asking “would you like to re-publish the affected duplicate detection rules?” when publishing a solution. If you would like to see this functionality changed in a future version of Dynamics CRM, please sign in to Microsoft Connect with your Windows Live ID and vote for the item “Automatically re-publish duplicate detection rules after deploying a solution”. Thanks for your contribution.

     

    Edit 2013-05-02: There’s a post on Magnetism blog that shows you how to write a plugin that will automatically publish unpublished duplication detection rules after the “publish all customizations” event, in case you want to automate this procedure in your production environment.