Architecture for adding On-premise exchange server to CRM online for Outgoing emails: Server Side Sync

In my last post I discussed the architecture for incoming mail support in CRM online via exchange on premise server.

Here is the link for it: https://dynamicsofdynamicscrm.wordpress.com/2015/06/26/architecture-for-adding-on-premise-exchange-server-to-crm-online-for-incoming-emails-server-side-sync/

In this post, I am basically going to concentrate to showcase the reverse architecture support.

image

In the above diagram clearly states that a forward rule is being setup from Exchange online to Exchange on premise via Exchange online admin centre.

As this is a relatively new area I am going to put a step by step of how the forward rule can be setup:

1. In the Exchange Admin Center, navigate to Recipients > Mailboxes.

2. In the list of user mailboxes, click or tap the mailbox that you want to configure mail forwarding for, and then click or tap Edit clip_image001.

3. On the mailbox properties page, click Mailbox Features.

4. Under Mail Flow, select View details to view or change the setting for forwarding email messages.

5. On this page, you can set the maximum number of recipients that the user can send a message to. For on-premises Exchange organizations, the recipient limit is unlimited.

For Exchange Online organizations, the limit is 500 recipients.

6. Check the Enable forwarding check box, and then click or tap Browse.

7. On the Select Recipient page, select a user you want to forward all email to. Select the Deliver message to both forwarding address and mailbox check box if you want both the recipient and the forwarding email

address to get copies of the emails sent. Click or tap OK, and then click or tap Save.

8. What if you want to forward mail to an address outside your organization? Or forward mail to multiple recipients? You can do that, too- You need to create contacts with external address and that will be available on Step 2.

Note: You need Exchange online license like Exchange Plan 1, Exchange Plan 2 or collaborative E3 enterprise license for the mailbox user on office 365 to achieve this.

Also, TechNet links were used for step by step of exchange online navigation.

Hope it helps and Happy CRMing!

Architecture for adding On-premise exchange server to CRM online for incoming emails: Server Side Sync

Please note : This article applies to CRM online prior to CRM 2016 Online version.

CRM online currently doesn’t support Exchange on server to be connected directly for Server side sync with Exchange on-premise.

Recently one of my colleague was designing a deck for customer to tell them the way forward. Customer has a on-premise exchange server which they use for consumer queries and also wanted to move to CRM online for case management.

So, one of my colleagues suggested the below architecture. Since, this is not a architecture I saw available in community or TechNet links, I thought it is worthwhile to share the information here.

Here consumer is sending over emails to Exchange On-premise server:

image

This emails are forwarded to office 365 tenant via a forward rule in exchange. Emails are added to a support queue where CRM users can access and convert to a case.

It is a simple and efficient workaround to use Server side sync in tandem with Exchange on premise server for incoming mails.

Hope it helps and happy CRMing!

UNDERSTANDING ROLES: CRM CONSULTANT VS CRM DEVELOPER

This is a question which I wanted to write about since a long time. One of the thing which needs to be clear to clients, companies when we work on projects is the role of a consultant and role of the developer in the projects. This becomes more important when we have larger implementations and multi-geography teams and deployments to handle.

clip_image002

CRM consultant’s is an expert who will visit clients (or be a semi-permanent contractor in an organisation) and advise them on their CRM systems, train employees in

the use of the CRM systems, configure/set up/customise their CRM systems and possibly design/develop software for that organisation (or at least provide a design

spec/requirements for the software and manage the project with software developers).

CRM Developer’s will work on a broad spectrum of work, however, it’s likely to be designing/developing software for a specific purpose or design brief with little or no involvement with the end client.

Or it could be in-house software development for the IT systems of the company that you are working for.

CRM consultant’s is primarily a customer facing function and lot of it involved not only techno-functional skills but also communication skills, presentation skills alongside.

A Technical consultant will also need to possess great CRM and .net technical experience set as well.

CRM developer’s on the other hand is very hands-on job, primarily focused on technical delivery and to develop and package new services and/or offerings in line your organisation and client expectations.

CRM Consultant’s job is also to contribute to the participation in scoping, estimating and risk management efforts.

Also, to participate in building knowledge capital, improving the aptitude of your team by sharing your technical knowledge and experience.

CRM developer’s primary focus is to deliver code maintaining code quality, unit testing and fix bugs with least number of bugs introduced to the project.

CRM Consultant job is to suggest the best possible solution to problem and making it an easy job for the customer to select the best option.

It might be his/her job to complete technical delivery as well.

CRM developer’s need to have not only sound background of CRM but also of Unit testing frameworks.

Hope it helps and Happy CRMing!

{ERROR RESOLUTION} THE ANNOYING CASE OF NETWORK ERROR ON CRM JAVASCRIPT ODATA CALL

Recently, in one scenario, I was being asked on my email that somebody was facing network error on their ODATA call:

clip_image002

Everything seemed find with ODATA request and I was not able to find the root cause of where the problem was coming from.

All the URL’s and request parameters were correctly set. Still, there was network error occurring.

clip_image003

The resolution was quiet simple:

· URL was working with IP address instead of server name, so first thing was to get it corrected

· Second thing was to add CRM to trusted sites:

In Internet Explorer, navigate to Tools� Internet Options. A window pops up containing multiple tabs. Under the Security Tab, click Trusted sites and then the Sites button.

clip_image005

2. In the pop-up window type the trusted site names (https://*.crm.dynamics.com and https://*.live.com), one at a time, and click �Add.

clip_image007

This resolved the error, Hope it helps and Happy CRMing!

{QUICK TIP} IMPORTANCE OF SELECTING THE RIGHT CONSULTANTS FOR YOUR CRM IMPLEMENTATIONS

Evaluating consultants is definitely simpler than selecting the CRM application. As with application evaluation, there are a number of criteria to be considered and selecting the right consultant is often crucial to success of CRM projects.

The term “right” used here is not just in the notion of correct, it is in the notion of appropriateness for specific implementations.

clip_image001

A consultant can help, not only technically but in generic terms as:

· Provide accurate and reliable information.

· Improve your decisions.

· Improve quality of the implementation.

Consultants have a broad range of expertise, so questions like below become important:

· What is the consultant’s special area of expertise: Definitely for Dynamics CRM I will choose a Dynamics CRM expert.

· What is the consultant’s knowledge of the industry?  If I am a financial institution, I will choose a consultant with prior implementation experience of the industry

or one which has experience on several areas.

· Will the consultant provide an independent perspective? This is important, Consultants should never agree to everything that customer says, otherwise they

cannot improve the implementation in any way.

· What are the research capabilities of analysing existing information?

· Ask for a sample of the consultant’s work? This is again just to help understand the experience.

· Cost! Yes, cost always matters.

For a Dynamics CRM consultant, I will prefer to say that the consultant should possess:

· Deep technical expertise of Dynamics CRM

· Deep understanding of the process of implementing CRM

· Experience of implementing CRM implementations.

Sometimes, there are scenarios where decision makers of an implementation are not people with CRM background. It works ok if they are customers, but any consultant without CRM experience working on

CRM project is not preferable especially if they will be involved in design, estimations and scoping.

Thank you for reading, always choose right consultants and make your Dynamics CRM systems a success story!

Happy CRMing!

WHAT to choose :Data Migration OR Data Integration in Dynamics CRM implementations?

Data integration is the process of standardising the data definitions and data structures of multiple data sources by using a common schema thereby providing a

unified view of the data for enterprise-level planning and decision making.

clip_image001

on the other hand, Data Migration is the process of transferring data between storage types, formats, or computer systems.

This process is most often required when organizations upgrade to new systems or change computer systems.

clip_image002

Dynamics CRM implementations often need to choose between this choice since CRM is all about Data.

A correct design time decision can often help reduce the complexity of design and cost of effort and implementation.

For eg, if one of the main focus of customer requirements is to centralize storage of Data, it is always better to think whether the business requirement is to have centralize storage or to have view

that there is centralized storage.

In terms of choice, If its just view of data to be looking centralized it is Data integration for CRM, else it is Data migration from heterogeneous sources to CRM.

This is just one business case to explain the choice.

I will continue to pen more on this in the coming days and weeks. Happy CRMing!

Note: Definitions for the terms were binged!

{Quick Tip} Understanding what is a Dynamics CRM “Package”?

This is a recent addition to the list of administration terms and feature that I do not see many people have ramped up on or are using in the field.

So, today I am just going to focus on the term: What is a CRM package?

clip_image001

As per the official MSDN link:

A CRM “package” can consist of any or all of the following:

· One or more CRM solution files.

· Flat files or exported data files from the Configuration Migration tool. For more information about the tool.

· Custom code that can run while the package is being deployed to the CRM server, or after it’s been deployed.

· HTML content specific to the package that can display at the beginning and end of the deployment process.

This can be useful to provide a description of the solutions and files that are deployed in the package.

Basically CRM Package is a collection of all the things we needed to do as part of regular deployments and is cool as it does it in one click!

So, how to start using it?

Here is the MSDN Links, You need to use Package Deployer tool to generate and consume CRM Packages:

https://msdn.microsoft.com/en-us/library/dn688182.aspx

Hope it helps and Happy CRMing!

How DYNAMICS CRM Architecture is itself a MVC design concept

One of the recent queries I received was asking me on MVC design concept in Dynamics CRM.

As a prerequisite to this article, I had to sharpen my memory on MVC from MSDN link:

The Model-View-Controller (MVC) pattern separates the modelling of the domain, the presentation, and the actions based on user input into three separate classes [Burbeck92]:

· Model. The model manages the behaviour and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller).

· View. The view manages the display of information.

· Controller. The controller interprets the mouse and keyboard inputs from the user, informing the model and/or the view to change as appropriate.

image

The above link is a refresher for me more than for the article. Now I want to iterate how as a design approach in the product architecture CRM is clearly having this layering in place:

· Model Layer for CRM: CRM has a separate SQL layer which takes care of database related operations. It has built in stored procedures, views, functions, etc. which constitutes the model layer for CRM.

· View Layer for CRM: Implemented as ASPX pages, the presentation layering in CRM is implemented separately and product gives us features to implement forms, views, etc. with GUIDED USER INTERFACE.

· Controller Layer for CRM: I will like to put this one as a mix of standard controller (web service calls, product does on itself for out of box functionalities. But, it also lets us extend them via Plugins, Workflows, Actions, etc.

Considering a custom CRM application:

image

CRM web services form the controller area here, the three cylinders marked below form the database layer. Other components can also be classified into separate tiers.

Hope it helps and Happy CRMing!

{Quick Tip} How to convert your SQL expertise to Fetch XML expertise!

Sometimes, I feel that it is a tough nut to crack to write fetchxml for all sorts in CRM. With more implementations in CRM online and the need to do reporting using fetch xml reports it

becomes necessary to write the fetchxml.

So, I really appreciate the effort done by Kingswaysoft team in developing this online utility:

http://sql2fetchxml.com/

I gave some queries on this tool and found it quite useful.

Here are few examples:

Basic: A simple select statement on Filtered View Account entity:

clip_image001

Intermediate: A join between Account and contact entity:

clip_image002

Negative scenario: Though this is not realistic to convert below to FetchXML, I wanted to see the tool’s reaction to such a query. And it doesn’t break:

clip_image004

As you can see in the above screen, it doesn’t break and makes us understand the unsupported conditions.

Hope it helps and Happy CRMing!

{ZERO CODE DEVELOPMENT} Real world example of one note integration in CRM 2015 Update 1

The intention of this blog is not how to show one note integration with CRM 2015 Update 1. There is lot of blog content available for how to do that. For example:

http://www.powerobjects.com/2015/04/07/seamless-onenote-integration-with-dynamics-crm-2015-spring-wave-update-1/

The idea of this blog post is to show the need of knowing the new features of Dynamics CRM and how it can be quickly leveraged to achieve zero code solutions for customers.

Scenario: Take hand-drawn site report for Sales representatives on the customer record on Windows tablets.

Application: Enable SharePoint Document management with CRM, then Enable OneNote integration for account entity, you will have the following screen available:

clip_image001

Click the Untitled One note and Choose open In One note:

clip_image003

On Surface Pro 3 tablets, it supports handwriting:

http://blogs.msdn.com/b/mvpawardprogram/archive/2014/07/14/using-onenote-with-the-surface-pro-3.aspx

clip_image005

This is now appended with Account record and stored in SharePoint:

clip_image007

Really a great feature by Dynamics CRM Product Team, would have taken ages to implement in custom code.

Hope it helps and Happy CRMing!