CRM on-premise to Sharepoint online integration–Common obstacles faced and their work-around.

CRM on-premise to Sharepoint online integration–Common obstacles faced and their work-around.

Before I start writing the details, first let me tell you why this blog. After all this is so nicely explained in the following link – https://technet.microsoft.com/en-us/library/mt171421.aspx

Well, the above link contains all the steps you need to set-up server-server integration between Dynamics On-Prem and Sharepoint online. But still from my personal experience I find that customers find it great difficult to set this up. This is mainly because they get some error while executing a step or because some pre-requisites are not there and they are not mentioned in the technet link as well.

The main intention of this post is to rectify all those errors, identify all the dependencies and work your way to glory.

So let’s identify the dependencies first.

Dependency 1 : Dynamics should be ADFS configured and accessible over the internet.

I am not going over the topic again on how to do it. Greatly explained here – https://technet.microsoft.com/en-us/library/dn609803.aspx and in so many other blogs.

Dependency 2: Microsoft Dynamics 365 Hybrid Connector should be configured.

Believe me, from my personal experience I find many clueless about this. Well you no longer need to. You just need to verify here if Dynamics 365 Hybrid connector subscription is available and commissioned.

To do this:

  • Login to https://portal.office.com using the Office 365 admin credentials for your SP online tenant.
  • Open the Office 365 admin screen
  • Go to Billing –> Purchase Services

image

  • Expand the section Dynamics 365 Suite. Usually its expanded. If not expand it.

image

  • Search for the word “Hybrid”. You should get it. If not, you need to add the connector. Below are the steps on how you can do it.

image

    • Below is the screen you get. As of now its free but the way it shows up I believe it will be chargeable some time soon Smile

image

    • Enter you credit card number and then click on Place Order. Don’t worry, you won’t be charged for this. You are all set and done.

Dependency 3: Connect to Microsoft Online through PowerShell.

Now this can become tricky. The technet documentation says – You need to have Azure Active Directory powershell modules. And the link redirects you to a page where it asks you to install the module using Powershell command prompt – Install-Module MsOnline

The moment you do this step, you get an error like the one below.

install-module : The term ‘install-module’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ install-module MSOnline +
+ CategoryInfo          : ObjectNotFound: (install-modele:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Well to successfully accomplish this, you need to complete both the required steps.

  1. Microsoft Online Services Sign-In Assistant for IT Professionals Beta – select the appropriate download. It may ask you to restart the machine for the changes to take effect. Please do the same.
  2. Now also if you run the install-module command, it would fail. The reason is install-module command is available from Powershell v5.0 and above. So you need to update your powershell as well. To do this, download the necessary installer depending on your server/ 64 or 32 bit machine, from the below Url.

https://www.microsoft.com/en-us/download/details.aspx?id=54616

Again machine restart is required.

Now open powershell as administrator and then try to install the module MSOnline. It will now download the same from Nuget.

Requirement 4: X.509 Digital certificate

Well this is the simplest but again it can give you some errors which would be difficult to find out. The first question is – which certificate do I need to use.

Well, the easiest answer is, you can use – “An x509 digital certificate issued by a trusted certificate authority that will be used to authenticate between Dynamics 365 (on-premises) and SharePoint Online. If you are evaluating server-based authentication, you can use a self-signed certificate.”

So we can basically re-use your CRM certificate or ADFS certificate. All you should take care is while exporting the certificate, it should be exported along the private key.

image

* Export all extended properties should be checked.

image

You will be asked to provide a password. Keep this password as you will need this later.

image

Once the file is exported, import it in the personal store of the machine where deployment manager is installed.

The technet article asks you to execute the below command.

$CertificateScriptWithCommand = “.CertificateReconfiguration.ps1 -certificateFile c:Personalcertfile.pfx -password personal_certfile_password -updateCrm -certificateType S2STokenIssuer -serviceAccount contosoCRMAsyncService -storeFindType FindBySubjectDistinguishedName”

The service account is important here in the above statement. Whatever service name you provide here, that should have access to the private key of the certificate. To do that, you need to provide permission to the private key from the certificate console.
image
Click on Manage Private Keys and give the service account user full permission on the certificate.
After completing all the above steps, while connecting to your CRM, you may receive the 401 - Un-authorized error in Powershell. For this follow the below steps.

Open registry editor

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa

    1. Right-click Lsa, point to New, and then click DWORD Value.
    2. Type DisableLoopbackCheck, and then press ENTER.
    3. Right-click DisableLoopbackCheck, and then click Modify.
    4. In the Value data box, type 1, and then click OK.

Re-open powershell. It should work.

The commands I am not repeating from the technet article since they work just fine.
Hope this helps!


Debajit Dutta

(Dynamics MVP)

For training/ consulting/ utilities – please visit our website – www.xrmforyou.com or write to us at info@xrmforyou.com


Advertisements

Author: Debajit

I am a Dynamics CRM Most Valuable Professional (MVP) with 10 years of experience in Microsoft .NET Technologies and 7 years of dedicated experience in Microsoft Dynamics CRM. I have worked with companies like Microsoft, SanDisk, PwC, TMF Group and have extensive experience of implementing complex CRM solutions from both offshore and client side.

Currently the face of XrmForYou.com with significant experience in delivering corporate training on Dynamics CRM and have already delivered multiple projects to client through XrmForYou.com

Author of multiple tools on codeplex including the ‘Role Based Views’ and ‘CRM-Sharepoint Metadata manager & Attachment Extractor’ which are available for commercial use under XrmForYou.com

For consulting/ training, drop me a note at info@xrmforyou.com or visit our website www.xrmforyou.com

Published at Mon, 25 Jun 2018 12:45:36 +0000

{Quick Tip} Manage your Entity Forms when your CRM is exposed to Web and Mobile App

Manage your Entity Forms when your CRM is exposed to Web and Mobile App

Spoiler alert! Unlike other blogs, I am not going to update you about any new feature. Rather I am going to share my project experience in handling multiple forms designed for your Web and Mobile layouts.

Scenario

You have exposed you CRM recently to Mobile Apps. When you expose your CRM to Mobile Application development, in most of the scenarios you would end up designing separate forms. Let’s take the example of Account entity. Say you have designed two forms

  • Account Web Form – This form is displayed to users while accessing CRM to Web
  • Account Mobile Form – Form displayed to users while browsing CRM on Mobile

And you have your users who will just access CRM through desktop and then some users accessing CRM through both Desktop and mobile.

 

So now the implementation

First of all, as I have been across client locations, I find that some consultants still assume that to expose a form in mobile, we need to create a form of type = ‘Mobile Express’. Mobile express forms were required for previous Dynamics app – Dynamics CRM Phone express. For the current version of Mobile App for Dynamics, Form Type = Main would work just fine

So what is the next step? We create a new form of type Main, this time specifically for mobile and put in only the fields required for Mobile as per the requirement. But wait, we have another form already exposed for the desktop. So how do we handle this.

  • Create a new security. Let us name it here – “Mobile User Security Role”. The privileges for this security role is optional and depends on your requirements.
  • Assign the security to users who need to access CRM on mobile.
  • In the Form order for Main Form set, set the Mobile form at the top of form order.

image

  • The next step is to leverage the role based forms. Expose the Account – Mobile form to only users with Mobile User Security Role.

image

Uncheck the “enabled for fallback” checkbox as well.

Save an publish your customizations.

All set and done. Now this works very well for users who does not use desktop and manages through mobile (hardly the case) and users not exposed to mobile platform. However the issue is for a user who has access to mobile and desktop version. They now see two forms and the mobile form starts showing up in the desktop as well as it is highest level in the form order as well.

The last step here is to switch the mobile if it loads on desktop. The simple piece of client side script would just work fine when put in form load of the mobile form.

function SwitchToDefaultFormForWebVersion()

            for (var i = 0; i < availableForms.length; i++)

            }

        }

    }

Please remember that form navigation script is not supported on mobile. Hence first I am making the check if the client is Mobile.

Well there you go. Everything is up and running for you now.

 

Hope this helps!

 

Debajit Dutta

(Dynamics MVP)

For training/ consulting/ utilities – please visit our website – www.xrmforyou.com or write to us at info@xrmforyou.com

Advertisements

Author: Debajit

I am a Dynamics CRM Most Valuable Professional (MVP) with 10 years of experience in Microsoft .NET Technologies and 7 years of dedicated experience in Microsoft Dynamics CRM. I have worked with companies like Microsoft, SanDisk, PwC, TMF Group and have extensive experience of implementing complex CRM solutions from both offshore and client side.

Currently the face of XrmForYou.com with significant experience in delivering corporate training on Dynamics CRM and have already delivered multiple projects to client through XrmForYou.com

Author of multiple tools on codeplex including the ‘Role Based Views’ and ‘CRM-Sharepoint Metadata manager & Attachment Extractor’ which are available for commercial use under XrmForYou.com

For consulting/ training, drop me a note at info@xrmforyou.com or visit our website www.xrmforyou.com

Published at Mon, 18 Jun 2018 08:14:01 +0000

PowerPack Add-Ons by PowerObjects [VIDEO]

PowerPack Add-Ons by PowerObjects [VIDEO]

Our team of experienced developers have created over 30 PowerPack Add-Ons, designed to help Microsoft Dynamics 365 users enhance the capabilities within their CRM. These add-ons work on top of the out-of-the box CRM features to provide even greater functionality and efficiency. Start-up and enterprise organizations alike are leveraging these solutions for just $1-2 per user, per month and you can to! In this video we’ll explain what our PowerPack Add-Ons are, how they work, and demonstrate how you can get started with a free 30-day trial of any of our solutions.

Learn more and start a free 30-day trial!

powerpack

Published at Wed, 06 Jun 2018 18:00:07 +0000

Open Lookup Dialog Programmatically using Xrm.Utility–Dynamics V9.0

Open Lookup Dialog Programmatically using Xrm.Utility–Dynamics V9.0

This one feature that I am going to pen down here, personally I have longing for it quite sometime now.

So before going into the HOW part of it, let’s understand the why part of it? When do I need show a Lookup dialog Programmatically? Well the answer is, numerous occasions. Like if you need to throw up a lookup dialog on change of field on the form OR you needed to throw the lookup dialog on click of a button on a web-resource.

All this time, we have achieved this but not in a supported way. Probably we may have ended up using Xrm.Internal.openDialog or some method of Mscrm.Internal namespace. But all these are unsupported and mere workaround to this perennial problem.

Well, no more messing around. Microsoft has finally brought in the Xrm.Utility.lookupObjects.

So let’s see how it works.

Let’s take a not so good example here. Let’s say whenever the account country is US, primary contact is mandatory and the user is thrown a lookup dialog of contacts from where he needs to select the Primary Contact. below if the function registered on change of country field

function changeOfCountry(e) ;
        lookupOptions.allowMultiSelect = false;
        lookupOptions.defaultEntityType = "contact";
        lookupOptions.entityTypes = ["contact"];

        Xrm.Utility.lookupObjects(lookupOptions).then(


            function (result) );
                }
            },
            function (error)
        );
    }
}

Focus on the highlighted lines starting from top. The first is the lookupOptions paramter. Since we are going to open a contact, I have specified defaultEntityType and entityTypes both to contact.

Also you can set the defaultViewId and the viewIds property to show the default view to use and views to be available in the view picker respectively

For a complete set of the properties of lookupOptions refer to Microsoft Documentation. https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-utility/lookupobjects

As soon as the method is executed, the below dialog opens up

image

Cool isn’t it? Now half of the job is done. But how about getting the selected record back. Well this method does not disappoint you here either.

The success callback function returns the selected item as you can see from the code above.

It has properties of entityType, id and the name which you can use to set the look up field of any other type. Here I have used the same to set the value of primarycontactid field of the account record.

Such a huge sigh of relief for me.

Hope this helps!

 

Debajit Dutta

(Dynamics MVP)

For training/ consulting/ utilities – please visit our website – www.xrmforyou.com or write to us at info@xrmforyou.com

Advertisements

Author: Debajit

I am a Dynamics CRM Most Valuable Professional (MVP) with 10 years of experience in Microsoft .NET Technologies and 7 years of dedicated experience in Microsoft Dynamics CRM. I have worked with companies like Microsoft, SanDisk, PwC, TMF Group and have extensive experience of implementing complex CRM solutions from both offshore and client side.

Currently the face of XrmForYou.com with significant experience in delivering corporate training on Dynamics CRM and have already delivered multiple projects to client through XrmForYou.com

Author of multiple tools on codeplex including the ‘Role Based Views’ and ‘CRM-Sharepoint Metadata manager & Attachment Extractor’ which are available for commercial use under XrmForYou.com

For consulting/ training, drop me a note at info@xrmforyou.com or visit our website www.xrmforyou.com

Published at Mon, 04 Jun 2018 18:13:53 +0000

{Dynamics V9.0}–Show alert/ confirm/ error in Modal style with new Client API in Dynamics Version 9.0

–Show alert/ confirm/ error in Modal style with new Client API in Dynamics Version 9.0

Working currently on a client engagement on the latest Dynamics version (v9.0) and hence got a chance to the new introduced Client API’s with version 9.0.

For starters, the Xrm.Page has been deprecated with version 9.0 and a completely new set of API’s have come up with version 9.0 along with host of new features.

For a list of deprecated API’s – https://docs.microsoft.com/en-us/dynamics365/get-started/whats-new/customer-engagement/important-changes-coming#some-client-apis-are-deprecated

So coming back to the requirement here, if you have worked on Client API’s, chances are more that you have worked with Xrm.Utility namespace. Showing alerts/ confirmations/ opening entity forms/ webresources – what not can we do with the namespace.

However there was a problem. Xrm.Utility.alertDialog/ Xrm.Utility.confirmDialog still used to leverage the window.alert/ window.confirm for a web client. The result is – customer always complained about the look and feel of the pop-up. And also the ability to customize the contents of the same.

Well no-more. Now you have complete control on these. Excited? Let’s explore together.

1. Xrm.Navigation.openAlertDialog

The previous Xrm.Utility.alertDialog has been replaced with this new API. So let’s  see how to open an alert dialog using this function.

var message = ;
var alertOptions = ;
Xrm.Navigation.openAlertDialog(message, alertOptions).then(
    function success(result) ,
    function (error)
);

Wonderful isn’t it? You get an option to even choose the button text. And even more is the flexibility to choose the height and width.

Now let’s see how it renders.

image

Such a relief to the eye from the previous versions. And what a relief to the customers!

 

2. Xrm.Navigation.openConfirmDialog

This is the new version of the previous API – Xrm.Utility.confirmDialog.

Let’s see how to invoke it

var confirmStrings = ;
var confirmOptions = ;
Xrm.Navigation.openConfirmDialog(confirmStrings, confirmOptions).then(
function (success) );

 

As you can see, you can put title/ subtitle/ text/ cancelButtonLabel/ confirmButtonLabel and also the height and width. The complete rendering of the pop-up is now in your hands.

And now let’s see how it looks.

image

 

3. Xrm.Navigation.openErrorDialog

Well this is something new here. Let’s see first the nomenclature of this function. As per Microsoft Documentation

Xrm.Navigation.openErrorDialog(errorOptions).then(successCallback,errorCallback);

 

The important thing here is errorOptions. So let’s first explore that.

What are the parameters here:

  • details: Any custom details you want to include in the error. If you specify this – “Download Log File” button would show up.
  • errorCode: Now this is wonderful. If you specify this, the message for the corresponding errorCode is retrieved from the server and shown.
  • message: this is the custom message that you want to display in the dialog.

var errorOptions = ;
Xrm.Navigation.openErrorDialog(errorOptions).then(
    function (success) ,
    function (error) );

Below is the UI I get. strangely enough, the custom error message is not displayed. However if I download the log file, the details are in the log file.

image

 

Log file:

image

 

Hope this helps!

 

Debajit Dutta

(Dynamics MVP)

For training/ consulting/ utilities – please visit our website – www.xrmforyou.com or write to us at info@xrmforyou.com

Advertisements

Published at Fri, 01 Jun 2018 04:08:46 +0000

[unable to retrieve full-text content]

Published at

Data import related error when importing Project work breakdown structure – Draft entity in Dynamics 365 For Finance and Operations

Data import related error when importing Project work breakdown structure – Draft entity in Dynamics 365 For Finance and Operations

Here is a quick tip for an error related to data import of Project work breakdown structure – Draft entity using the Data Management framework  in Dynamics 365 For Finance and Operations.

If you are trying to import the Project work breakdown structure – Draft entity(ProjProjectWBSDraftEntity) and you are getting the error below, then follow the steps below to get around this issue.

Results. Field ‘Project category’ must be filled in.
Results. Matching record for the read only data source ‘ProjPlanVersionDetail’ does not exist

WBS Draft Import Error

Steps to Work around this error:

  1. Navigate to Project Management and Accounting > Setup > Projects > Work breakdown structure templates.
  2. Create  a new record
  3. Enter a  Name and Description
  4. Make sure the Active checkbox is marked.
  5. Click OK.
  6. That’s it. You do not need to create the details under the WBS template.

WBS Template

With this default WBS template record in place, if you try to import the roject work breakdown structure – Draft entity, system will import the data just fine.

NOTE: This is an issue in the July 2017 release with Platform update 12 and I have not validated this in the Spring release yet. To me, it looks like a glitch/bug in the DMF entity that needs to be reported to Microsoft. But i just wanted to share this info in case any of you are dealing with this issue and trying to find a solution.

Regards,

Sandeep

Advertisements

Published at Thu, 31 May 2018 13:50:44 +0000

[unable to retrieve full-text content]

Published at

{Thank You Note} It’s 50 not out and counting for our SharePoint Attachment Uploader and Metadata Manager tool

It’s 50 not out and counting for our SharePoint Attachment Uploader and Metadata Manager tool

A big thanks to all our customers who has helped us in our journey so far. Without your support, we would not have been able to reach this far.

A new version of the tool awaits with new feature and UI and is going to be released soon.

Thanks a lot for your support

image

 

Video Link – https://www.youtube.com/watch?v=BIhsOD0gbew

 

To know how we can help you, write to us at info@xrmforyou.com or visit our website – www.xrmforyou.com

Advertisements

Published at Mon, 28 May 2018 17:26:51 +0000

{Quick Tip} Pass a custom single/ collection of objects with Custom Properties as Output parameter from Actions in Dynamics 365

Pass a custom single/ collection of objects with Custom Properties as Output parameter from Actions in Dynamics 365

One of the great features that got introduced with Dynamics 2013 was Actions. With time more & more improvement came in with Actions and today Actions are one of the most powerful extending features in Dynamics.

And here I was designing actions for a client. Coming quickly to the requirement, the client had an action where they were determining complex business logic in the action with some input parameters and then based on the calculation, they need to pass back multiple values back to the invoker of the action.

There can be multiple ways to do this and one can be pass each of these values of Output Parameters. But that did not go well with the customer as around 15 properties needed to be returned from the action.

So the client developer came up with a DataModel class something similar to this.

 

internal class OutputClass

:

:

:

public decimal Property15

}

 

Nothing fancy. all the developer was doing was mapping the properties of this class and then the object back to the invoker of the action. But how to do it? Does Action allow custom object types to be passed as return parameters. Well,direct answer is No. But there are ways.

  • serialize the object into JSON and put the output JSON string through a string Output parameter – Didn’t go well with the customer. Has to abandon
  • serialize the object into XML and put the output XML string through a string Output parameter – Didn’t go well with the customer. Has to abandon again.

 

What I am left with then? We all know that it supports entity and entitycollection as output parameter types. But how do I use them to accomplish my goal here. The customer is not willing to create any Entity specifically for this.

Well a bit of trial and finally I achieved the below as workaround.

1. Passing a single Object back.

Well for this I used the entity parameter and just selected the Account Entity as Entity Type. You can use any Entity here. Does not matter.

image

 

In the plugin registered on the Action step, after calculating all the properties, I am setting the Output parameter like this.

var ent = new Entity("account");
ent["mytestproperty"] = "Test Name";
ent["mytestproperty2"] = 1;

ent["myentityreference"] = new EntityReference("contact", Guid.NewGuid());

context.OutputParameters["EntityParam"] = ent;

Observe carefully the code above. I am just creating an entity at runtime of type “account”. I don’t need to even specify the Guid. And then I can just put my custom property names for the entity and assign values of entity type – string/ int/ decimal/ entityreference etc.

None of these properties are present in the account entity. The trick is CRM framework does not validate the fields of the entity. So you can just return the entity object back with your own parameters. Cool trick. Isn’t it.

And below is the output received by the invoker of the action.

image

 

2. Passing Multiple Objects of Different type

For this, I used the entity collection as Output parameter

image

 

And below is the code to set the values.

var ent = new Entity("account");
           ent["mytestproperty"] = "Test Name";
           ent["mytestproperty2"] = 1;
           ent["myentityreference"] = new EntityReference("contact", Guid.Empty);

           var ent2 = new Entity("contact");
           ent2["mytestproperty"] = "Test Name";
           ent2["mytestproperty2"] = 1;
           ent2["myentityreference"] = new EntityReference("contact", Guid.Empty);

           collection.Entities.Add(ent);
           collection.Entities.Add(ent2);

           context.OutputParameters["CollectionParam"] = collection;

First we have to understand that entitycollection is a collection of entities. It does not necessarily imply collection of entities of the same type. This is a common misconception I find among so many people in spite of working on CRM for quite sometime.

As you can see, both the entities are of different types and can have completely different properties. Cool isn’t it?

And Below is the result the invoker of the action receives.

image

 

Personally if you ask me, I would still prefer serializing the object into JSON or XML. However if your customer prefers Entity or EntityCollection, this workaround I hope helps you.

 

Debajit Dutta

(Dynamics MVP)

For corporate training/ consulting/ tools, please visit our website www.xrmforyou.com or write to us at info@xrmforyou.com

Advertisements

Published at Mon, 28 May 2018 11:35:37 +0000

[unable to retrieve full-text content]

Published at

Place custom button on Registration Page in Dynamics 365 Portals

Place custom button on Registration Page in Dynamics 365 Portals

Recently I had a requirement where my customer wanted to put a Cancel button in the registration screen of Dynamics 365 Portal. To explain the requirement, the OOB screen looks like below.

image

What my customer wanted was to place the Cancel button beside the Register button. So that when he clicks on the Cancel button, it should throw the user back to the login page.

So let’s see how to do it.

Step 1: Create a content snippet

Go to settings –> portals –> content snippets

Create a content snippet with Name = Account/Register/PageCopy and Type = HTML. Check for the below screenshot

image

Save the record.

 

Step 2: Write the content of the HTML to render the Cancel button

Copy and paste the below in the Value (HTML) field

$(document).ready(function () );

});

There is one trick here. If you just Copy/ Paste the above code in the HTML field, it will render as text on the Registration Page.

image

So the trick is to follow the below steps before copy/ pasting the above code.

Click on the Source Icon as highlighted below. Once you click, it becomes a HTML editor.

image

Now copy and past the above code.

Save and refresh your portal.

image

 

Hope this helps!

 

Debajit Dutta

(Dynamics MVP)

For corporate training/ consulting, please write to us at info@xrmforyou.com

Advertisements

Published at Thu, 24 May 2018 03:18:15 +0000

[unable to retrieve full-text content]

Published at

GDPR-friendly Web Forms that Feed into Dynamics 365

GDPR-friendly Web Forms that Feed into Dynamics 365

With the deadline to meet the GDPR (General Data Protection Regulation) fast approaching, we want to make it easier for our customers to collect the consent they need from their clients, and track that in Dynamics 365. We’re going to be using the PowerWebForm add-on, which allows users to quickly and easily create a web form to post on their website, and feed the web form submissions directly into Dynamics 365. The GDPR-friendly form can be accomplished in just a few easy steps.

addons

1. Import the PowerWebForm add-on if you don’t already have it in your system, and register for a free, 30 day trial.

2. Create two new fields on your lead and contact entities: Consented, and consent date (or whatever you’d like to call them). The “Consented” field should be a Two Option type field, with the values Yes and No. The Consented Date field should be a Date type field.

3. Build the web form. To do this, navigate to the web form entity, under the PowerPack area and click New. Fill in the required information and Save (more details on exactly what each field does, can be found in the user guide). We’re choosing to create leads with our web form submissions, but you can create whatever you’d like. The cool thing about PowerWebForm is that duplicate detection is built in – for multiple record types! – so if the lead (or contact) already exists in the system, it won’t create a duplicate.

GDPR

4. Create fields for the web form, by scrolling down to the form fields section of the web form record and clicking the + sign on the grid. Make sure to create a Consent checkbox, which will be mapped to the field you created above. If you make this a required field, the person filling out the form will have to check the check box, in order to submit their inquiry. We’re going to choose to leave ours as not required.

GDPR

5. (Optional) If you’d like to set up duplicate detection for not just leads (which is what the web form above is currently checking on) but also for contacts, navigate to the related Duplicate Check entity, and create a Duplicate Check for contacts as well.

GDPR

To recap, here’s what we’ve done so far: Created a web form that looks for a duplicate lead in the system based on the email address entered on the form, and the email address entered on the lead, when a form is submitted. If a duplicate is not found, it will then go and look for a duplicate contact, based on the email address on the contact. If a duplicate is still not found, a new lead will be created and a web form activity will be created and associated to the newly created lead. If a duplicate lead OR contact is found, a web form activity will be created and associated to the existing lead. (note: the information on the lead/contact will NOT be updated).

The next step is going to be to create a workflow that updates the “Consented Date” and “Consented” fields on the newly created, or existing lead or contact, if they’ve checked the “Consented” check box on the web form. This workflow will only update those two fields, if the person submitting the form DID consent. So, we’ll need a parent workflow that checks the value of the form submission, and then a child workflow that updates the related lead or contact.

Parent workflow:

GDPR

Child workflow:

GDPR

Update step:

GDPR

Note: If you are doing this on multiple web forms, make sure that the “consented” field on the web form is exactly the same across all web forms. If it is, then you only have to build one set of workflows, as listed above, since the value will be the same if someone consents, no matter what form it’s on.

As always, it’s important to test your entire process, so you know that it’s working correctly. But that’s it! You now have a process that asks specifically for consent and tracks it back to the leads/contacts in your system.

For more helpful tips and tricks – subscribe to our blog!

Happy D365’ing!

Published at Mon, 21 May 2018 18:01:54 +0000