Skip to content

Tag: Dynamics CRM 2013

E-mail tracking with custom email fields

Posted in Dynamics 365, Power Platform, and Revive

Anyone who has ever worked with the Dynamics CRM for Outlook client, is familiar with the procedure of email tracking. You press the “Track” button and the CRM client creates on an e-mail record on the CRM server which again resolves the recipient and sender addresses, and linked to the corresponding records. But what if I want to same more e-mail addresses?

Are e-mails tracked when the e-mail adress is noted in a custom field?

The entity “Contact” has by default already three e-mail address fields. So, I’ve created a custom field as the fourth e-mail field.

When creating your own e-mail address field, it is important that chooses the “e-mail” format. So the CRM know that it can search here for e-mail addresses. By the way is then performed a validation in this field and the e-mail address is formatted as a mailto link, so that your email client will directly open when you click it.

Next, I’ve created a contact record with four different e-mail addresses and wrote them a message to them and tracked it.

Conclusion to E-mail tracking with custom E-mail fields

In the following screenshot you can see that it works perfectly. All present and the new e-mail address field are actually assigned only by tracking to the contact, to set a regarding was not necessary.

Workflow ExecutionTimeSpan

Posted in Dynamics 365, Power Platform, and Revive

Last week I had a problem as part of a service request at Microsoft. I should test how long it takes to create a record for a particular entity by a workflow. The whole thing had to be very precise, because the request has been caused by an excessive execution time of a plug-in chain when such a record has been created.

Experimental Setup

The workflow should create a new contact, based on the data of an existing contact record. Let’s name it a Light-copy without relations. It is so configured that an entry in the systemjobs will be created.


Unfortunately, the workflow log is not as meaningful as intended. It contains the only times to the minute.

But that brings me at least an idea. Dynamics CRM stores the data internally with a higher accuracy than it displays it on the surface. Now I just have to get that data, mind you in a CRM Online system.

Workflow ExecutionTimeSpan

Since it is well known fact that you can not access the database in CRM Online directly, I planned to create a query that returns “Created On” and “Modified on” of my workflow. I used the OData Query Designer from the Dynamics XRM Tools to create that query.
When selecting the fields for my query I found a field named “Zeitspanne für Ausführung” field, or in English “ExecutionTimeSpan”. BINGO! That sounds good!

The Query

YOURSERVERURL/xrmservices/2011/OrganizationData.svc/AsyncOperationSet?$select=Name,StartedOn,CreatedOn,CompletedOn,ModifiedOn,ExecutionTimeSpan&$filter=OperationType/Value eq 10&$orderby=CreatedOn desc

To make the URL more understandable for you:

  • The Organization Data Service (OData) URL of your CRM.
  • The table from which I need the data.
  • The columns from the table that I would like to see as result.
  • There should be only system jobs of type “Workflow” being returned.
    $filter=OperationType/Value eq 10
  • Finally, I would like to have the results sorted by creation date, so that the most recent are on top.
    Who wants to look for a long time.
    $orderby=CreatedOn desc

The Result

<xml version="1.0" encoding="utf-8" standalone="yes">
    <feed xml:base="" xmlns:d="" xmlns:m="" xmlns="">
      <title type="text">AsyncOperationSet</title>
      <link rel="self" title="AsyncOperationSet" href="AsyncOperationSet" />
        <title type="text">LightCopy</title>
          <name />
        <link rel="edit" title="AsyncOperation" href="AsyncOperationSet(guid'40107141-ab4b-e411-80df-00155d572098')" />
        <category term="Microsoft.Crm.Sdk.Data.Services.AsyncOperation" scheme="" />
        <content type="application/xml">
            <d:CreatedOn m:type="Edm.DateTime">2014-10-04T09:46:04Z</d:CreatedOn>
            <d:StartedOn m:type="Edm.DateTime">2014-10-04T09:46:17Z</d:StartedOn>
            <d:CompletedOn m:type="Edm.DateTime">2014-10-04T09:46:22Z</d:CompletedOn>
            <d:ModifiedOn m:type="Edm.DateTime">2014-10-04T09:46:22Z</d:ModifiedOn>
            <d:ExecutionTimeSpan m:type="Edm.Double">1.7</d:ExecutionTimeSpan> 
            <d:ModifiedOn m:type="Edm.DateTime">2014-10-04T09:46:22Z</d:ModifiedOn>

In the marked area you can see the columns that we have retrieved and in line 23 the value of workflow ExecutionTimeSpan.
Thus, so the workflow had an execution time of 1.7 seconds.

With Power Query for Excel you can you view the data a little more beautiful, or a whole series of workflows to evaluate and calculate averages with Excel or be generated diagrams. Simply Excel.

Hope it helps!

Pass parameters to HTML Webresource

Posted in Dynamics 365, Power Platform, and Revive

A HTML webresource can not just only show HTML elements on your form, furthermore you can work with JavaScript in it and interact with your form. IF you want to access the Xrm namespace of the form inside your HTML webresource, you simply need prepend “window.parent” to your function call.

This looks like in this example:

var myId =;

If you need a lot of such calls, you can make your life easier and create your own local variable and assign it the complete Xrm namespace
This could look like this:

var Xrm = window.parent.Xrm;
    var myId =;

Pass parameters to HTML Webresource

Alternatively, you can also pass static values to your webresource. Just add a custom parameter in properties dialog of the webresource.

You can access the custom and contaxt parameters with the following script inside your webresource:

function getWebresourceParameter()
        var userParameters = [], passedParameters = [];
        if ( != "")
            var vals ="&");
            for (var i = 0; i < vals.length; i++)
                vals[i] = vals[i].split("=");
                if (vals[i][0].toLowerCase() == "data" && vals[i][1] != "")
                    var userVals = decodeURIComponent(vals[i][1]).split(",");
                    for (var j = 0; j < userVals.length; j++)
                        passedParameters[userVals[j].split("=")[0].trim()] = userVals[j].split("=")[1].trim();
                    passedParameters[vals[i][0]] = vals[i][1];
        return passedParameters;

The custom parameters should be in the form “Name=Value” should be separated by comma.

The debugger shows you all the accessible parameters:

Context parameters are green marked, custom parameters blue.

You can now access your values through the named array.

var wrParameters = getWebresourceParameter();
    var myRelName = wrParameters["relName"];

Have fun with it!

Dynamics CRM Bookmarklets

Posted in Dynamics 365, and Power Platform

Nachdem ich im Netz immer wieder über pfiffige Bookmarklets für Dynamics CRM stolpere (vor allem auf dem Blog der Kollegen von Magnetism) und mittlerweile auch ungefähr zwanzig Stück davon in meiner Lesezeichenleiste im Einsatz habe, möchte ich diese für euch sammeln und mit euch teilen.

Kommen wir erstmal zur Definition einer Bookmarklets, damit Ihr wisst worüber ich spreche: Ein Bookmarklet ist ein in JavaScript geschriebenes Makro, das als Lesezeichen abgespeichert wird und dadurch die Funktionen eines Webbrowsers erweitert. Es erlaubt das Aussehen oder die Funktionalität von Webseiten (Dynamics CRM ist mehr oder weniger nur eine Webseite) clientseitig zu verändern.

Ihr könnt die Bookmarklets einfach per Drag&Drop in eure Lesezeichenleiste ziehen oder ihr kopiert die die URL und erstellt euch ein neues Lesezeichen mit dieser.

CRM Bookmarklets für Anwender

CRM Bookmarklets für Administratoren und Systemanpasser

Dynamics CRM Online license model

Posted in Dynamics 365, and Power Platform

Since October 2013 is Dynamics CRM Online, based on Dynamics CRM 2013, available in Germany as test and purchase version. The whole thing is officially called “Dynamics CRM Online Fall 13”. With the new CRM system, there are not only a modern uncluttered surface and apps for mobile sales but for the first time CRM Online customers can choose between different license options that can be combined with each other.

Dynamics CRM Online license model

The Dynamics CRM Online License Model has four licenses, three of them with different features which can be combined with one restriction : you must buy at least five professional license, unless you acquire licenses through the Open Licensing program.

For customers that have bought before the September 30, 2013 different rules apply. Your licenses will be converted in Professional USLs. Until the expiration of the actual subscription period you pay further the agreed price. After that, the new price will be applied and you can combine individual licenses. The “always five Professional USLs” does not apply here.


Professional – €49,80

With the most comprehensive license users can access all sales, service and marketing functions in Microsoft Dynamics CRM.

       Production instance

€420,90 per instance and month


Basic – €23,00

The license for business analyst and reporting, as well as for beginners, that use activities, customers, contacts, leads, cases or xRM objects.


€115,00 per instace and month


Essential – €11,50

For users that work only with xRM objects and related activities to them.


€7,70 per GB and month


1 production instance, from 25 Pro. USLs a sandbox, 5GB storage growing at 2,5GB/20 Pro. USLs up to max. 50GB, Access with apps


Enh. Support

per user and month

*All prices are per unit (user, instance or Gigabyte) and month.

Lizence details

Here are the precise license details as I have found them on other blogs. Till now I have not yet discovered an official source.

Add/Remove Customer Relationship
Associate Opportunity with
ActivityFeeds: Follow
Feeds: Post
Convert to Case
Convert to Opportunity
Advanced Find
Case Management
Custumer Care Accelerator (CCA Framework)
ChartsSystem Charts
User Charts
CRMMobile Client
Outlook Client
Web Client
DashboardSystem Dashboards
User Dashboards
Excel Export
Manage duplicate detection
ProcessesProzesseRun workflos and dialogs
Custom Entities
Qualify and convert to account or contact
Qualify and convert to opportunity
Mail merge
Marketing lists
Price lists
Product catalog
ConnectionsBetween records
ReportsSystem reports
User reports
Sales literature
Territory Management
Yammer Collaboration

Some functions are only available for entites the user has access to.
The Yammer integration requires Yammer Enterprise for €2,30 per user and month.

Enterprise Licence

The Enterprise licence has been introduced later and does not actually fits right in this comparison. Basically it is a bundle of CRM Online Professional, Dynamics Marketing, Social Engagement und Parature what you get for €153,30.

Social Engagement

if you more then 10 Dynamics CRM Online Professional or Enterprise Licences in combination, you get the use right for Social Engagement Professional.


For more then 25 Dynamics CRM Online Professional or Enterprise USLs, the customer gets an free sandbox environment.
Dynamics CRM Online shares the storage automatically about all instances.


Before Dynamics CRM Online Fall 13, ervery customer get 5GB of storage and buy additional storage.
With the new release ou will get additionall 2.5 GB of free storage for for ever 20 Professional licences in the system (up to 50GB). In case of reducing the number of licenses, Microsoft granted a grace period in which you can reduce the memory consumption, or add additional storage.

With this calculator you can calculate the amount of free storage you will get.

Amount of Professional licences

Represented graphically:

< 2020406080100120140160180200220240260280300320340360
Professional USLs (User Subscription Licenses)