Enter your email address:

Delivered by FeedBurner

Archives

Categories

Emails Generated by Email Router Marked as spam from Dynamics CRM

Imagine this scenario: After months of careful planning you generate your first email campaign from MSCRM. Many cool dashboards are ready to go to see who is reading which emails and which links are being clicked. Then as you click go, you watch with dismay as many of the emails start bouncing back one by one all marked as ‘spam’. Welcome to the world of Internet email marking.

Fortunately with a properly configured smtp server and a couple other small items you can really increase the delivery rate. Here’s our check list. Following these items should greatly increase delivery rates.

  1. MX Record. The server that is sending your emails should be listed in an mx record in dns.
  2. Reverse DNS. The server that is sending your emails should have a properly setup reverse dns. Check here: http://www.debouncer.com/reverse-dns-check
  3. Helo. Verify that your smtp server helo has the correct email server name and matches mx and reverse dns.
  4. SPF. If you don’t already have an SPF record, be sure to create it. Here’s more info: http://www.openspf.org/
  5. Unsubscribe. Always have an unsubscribe link in your newsletter. If you are already using our powerEmail component this is all set.
  6. Reputation. Ideally you want to send your newsletter from an email server that has been around for a while and has a good reputation.
  7. From Address. Have a valid from email address in a newsletter from the same domain.
  8. URL Links. If your newsletter contains many links have as many of them as possible from the same domain.
  9. EmailReg.Org. Register with www.emailReg.org.
  10. AOL Feedback Loop. Register with AOL for a feedback loop. http://postmaster.aol.com/Postmaster.FeedbackLoop.html

Doing the above will cause many spam checking software to award ‘points’ for good setup. This is vital as emails generated from the crm email router are at a disadvantage since the email router breaks RFC2047 with by encoding part of the subject line. Unfortunately this is a Dot.Net framework issue and will not be fixed in the current email router.

If you looking for help with MSCRM or setting up you email router properly please get in touch with us at PowerObjects – we have a ton of experience with doing this for on premise or hosted implementations.

Have any other recommendations? We’d love to hear.

  • Share/Bookmark

The Power of PowerView for MSCRM

Clearly, Dynamics CRM is an awesome and powerful tool right out of the box. That said, there are many tips, tricks and tweaks – and OK, full blown SDK level customizations for those that have the skills (talk about REAL power) that can improve and enhance the functionality and ultimately the user experience.

We constantly strive to see Dynamics CRM through the eyes of the user and look for ways in which we can leverage the power of the platform combined with the power of PowerObjects to set the standard for ease of use. Here is a quick example of where we have delivered a great solution to answer one of the most often asked questions, from new and veteran users alike;

“How can we see everything related to a Lead, Account or Contact in one place?”

Our answer? PowerView – a highly configurable component that we provide as a standard part of all new implementations for our customers that not only significantly simplifies the navigation of Microsoft CRM, but also the ability to get a full view of ALL things related to a Lead, Account or Contact record in one place with just ONE CLICK. Including, the ability to see the details of ANY kind of related activity or record, including custom entities, in a configurable Preview Pane.

Unless you need to actually update an activity or related record, often times you never have to even open the record to get the information you need. How cool is that? Can you see where that makes a great tool even better? Heck, if a customer wants, we can even configure the Preview Pane so that you actually CAN update a related record without having to click to open think of the potential custom crm screens you could make with this!

Wait, there’s more…..you can also create new related activities and related records – including custom entities – right from the PowerView tool bar. Also easily configurable to meet the needs of any implementation. One last thing to point out is the Custom Search and Filter capability that is also a part of PowerView…yet again, easily configurable to meet your specific requirements for being able to quickly search and filter for certain kinds of activities, related records, status, owner, including full text search of notes, etc.

 

Now, I know I’m biased, but I’ve been working with MSCRM since the beta of V1.0 and while I know there are some other tools out there that address this often requested capability, I have yet to see one that matches the breadth of capability, configurability and usability of PowerView. Nor, have I seen any similar tools that have the same exact – to the pixel – look and feel of the native Dynamics CRM controls. If I’m wrong on this count, someone set me straight and then we can share the top spot but till that happens, I’m going to award that honor to the super skilled Dynamics CRM/XRM geeks at PowerObjects.

  • Share/Bookmark

Service Scheduling in Dynamics CRM part 1

 

Service Scheduling (Part 1) – Managing Different Service Types

Business Issue

I need to schedule my people and equipment resources to provide a service to a customer.

Solution

One of the most underutilized areas in Dynamics CRM is its Service Scheduling functionality. Service Scheduling in Microsoft Dynamics CRM helps organizations track the service scheduling process including:

  • Managing different service types and what resources are needed to carry those out
  • Scheduling of those services
  • Reporting on scheduling levels, performance, customer satisfaction

Service Scheduling allows schedulers to be current and informed with calendars views that enable the scheduler to clearly view:

  • Weekly scheduled service activities
  • Monthly scheduled service activities
  • Daily scheduled service activities

The service calendar also saves schedulers time by providing current information about their unavailable days and times. Scheduling services in MSCRM provides the tools that help users organize and keep track of resources, resource schedules, time off, and company closures.

 

This month is the first of a three part series on Service Scheduling in Dynamics CRM

Part 1: Managing different service types

Part 2: Scheduling

Part 3: Reporting

 

Terms to Know

Here are some terms that you will need to become familiar with when setting up service types in CRM:

  • Service
  • Resources
  • Resource Groups
  • Sites
  • Capacity Scheduling
  • Effort Required
  • Selection Rule
  • Selection Criteria

 

 

  1. Service is a type of work that is delivered to a customer and performed by one or more resources. For example, equipment repair, health services, legal or accounting services. To define a service, enter general information about that service, identify the resources needed and then input these requirements into a selection rule.
  2. Resources are people, facilities and equipment that are used in delivering services. Individual resources have a work schedule that defines when they are available to work.
  3. Resource Groups are pools of similar resources that can carry out a given service. These resources are thought to be interchangeable.
  4. Sites are locations where service operations take place
  5. Capacity Scheduling is used to consider different sized facilities or users’ skill levels when setting up services and resources. An example would be a senior technician that can repair 2 copy machines in the same time that it takes a junior technician to repair 1. Or this clinic has 5 patient examining rooms where another clinic may have 8.
  6. Effort defined in a selection rule reduces that resources capacity when they are scheduled to deliver that particular service.
  7. Selection Rule is the list of people, facilities or equipment needed to carry out a service. Each service needs a selection rule.
  8. Selection Criteria helps users determine how resources should be allocated. An example is if you want to have one technician completely scheduled before another technician is scheduled. Or maybe on the other hand you want all technicians scheduled evenly.

 

Scenario

Let’s look at a real life example of a dermatology office needing to schedule their services. This is a complex example that requires scheduling medical professionals who have different skill sets, work with specialized equipment and are located at different sites (clinics). For this scenario, the business must meet the following scheduling requirements:

 

  1. Various medical professionals have different skill sets, credentials, licenses. Not everyone can do all services.
  2. Employees work different shifts/times.
  3. Employees are working different sites.
  4. Specialized equipment is shared among the medical professionals.

 

Step 1: Create the Sites (Clinic Locations)

  1. In the Navigation Pane, click Settings, click on Business Administration and then click on Sites.

 


 

I added the clinical sites and medical professionals that work at each clinic:

  1. Woodbury – Steve and Jesse work at this clinic
  2. Eagan – Chelsie works at this clinic
  3. Oakdale – Alex works at this clinic

     


 


 

Step 2: Set Up Facilities and Equipment

  1. In the Navigation Pane, click Settings, click on Business Administration and then click on Facilities and Equipment.


 

I added in a couple laser machines for the Woodbury clinic and 1 for the Eagan Clinic. I also entered in one surgery room per clinic.

 


 

Step 3: Set up your Resource Groups

  1. In the Navigation Pane, click Settings, click on Business Administration and then click on Resource Groups.


 

  1. Click on new and add your resource group names and medical professionals that are part of the group of skilled resources.

 


 


 

Step 4: Create your Services

  1. In the Navigation Pane, click Service or Workplace depending on your site map configuration, click Services and then click New.
  2. In the Name box, type “Laser”
  3. In the Initial Status Reason box, select Reserved
  4. In the Description box, I typed “Laser”
  5. In the Default Duration box, I selected 1 hour
  6. In the Start Activities Every box, I selected 15 minutes
  7. In the Beginning At box, I selected 8:00 AM
  8. SAVE

 


 

Step 5: Define the Selection Rule

For each service, define at least one selection rule by selecting one or more medical professionals, facilities and equipment needed to deliver it.

 

  1. On the Laser service form created above, click the Required Resources tab, and then double-click the first line in the right pane.
  2. In the Edit a Selection Rule dialog box, ensure that the Quantity box has a value of ALL from The Same Site and then click OK.
  3. Highlight that rule and then in the Common Tasks pane, click Add a Selection Rule to add a sub rule
  4. Choose 1 From Add Resources Groups – Laser Med Professional
  5. Add another sub selection rule Choose 1 From Add Resources Groups – Laser Machines

 

Should look like this:

 


 

Next month we will have Service Scheduling Part 2 – Scheduling Services


 

  • Share/Bookmark

Showing Related Contact Information on an Activity Report in Dynamics CRM

Whether reporting through the Advanced Find or through the Report Wizard in Microsoft Dynamics CRM, one of the greatest challenges is getting information related to the Contact to show on the report. Out of the box, Activities have several ways of being “tracked” against a record in CRM. The best one for reporting is the “Regarding” field.

For this reason, if you intend to do reports on activities that show related data to the Contact then you MUST train users to ALWAYS set the Regarding on their activities to the Contact. This includes when you are tracking Emails from Outlook. In order to get consistent reports on activities created from Outlook, everyone must set the Regarding (not just Track in CRM) or the Regarding field will not be filled out. Below is an example of the coveted Advanced Find list of phone calls with additional information about the Regarding Contact highlighted in yellow.

The problem with this policy of having users track all activities against the Contact is that it goes against CRM best practices. If you are working on an Opportunity, best practices are to track your phone calls and activities against the Opportunity. If you are working on a Case, then you want all activities to be regarding the Case. Likewise, if you are working on something built as a custom entity, such as a Project. There is no other way to associate activities with a specific Opportunity, Case, or Project without setting the Regarding field to that record.

Many people ask, “Can you set the Regarding to multiple records?” The answer is no. The regarding can only be set to one record. For example, an activity cannot be connected to Contact and an Opportunity through the Regarding field. If you could, it would make reporting on the Regarding field even harder because of the possible one-to-many relationship.

However, with the exception of Tasks, all Activity Types have another field for indicating the Contact.

  • Phone Calls
    The Recipient for outgoing phone calls and Sender for incoming phone calls indicate the contact associated. This field is *special*, meaning it can contain a Lead, Contact, Account, or User.
  • E-mail
    The From and To fields can indicate the contact associated with the account. Not only can these fields contain Leads, Accounts, Contacts or users, they can also contain multiples of those, as well as unresolved Email addresses (Email addresses that are not found in CRM, such as when an Email is tracked in CRM from Outlook).
  • Appointments
    The Required and Optional fields on the Appointment indicate the contact associated with the Appointment. Not only can these fields contain Leads, Accounts, Facility/Equipment, Contacts or users—they can also contain multiples of those, as well as unresolved Email addresses (Email addresses that are not found in CRM, such as when an Appointment is tracked in CRM from Outlook.)
  • Campaign Responses
    The Customer field (effectively the Regarding field) on the Campaign response shows the relationship to the Contact. This field is also a *special* field allowing a Lead, Account, or Contact to populate the field.

Because of these fields, you CAN set the Regarding on the Activity to the Opportunity, Case, or Project AND also have it associated with the Contact. So, it sounds like you can get your cake and eat it too!?

The problem comes when you try to report on information related to the Contact through one of these fields (Recipient, Sender, From, To, Required, Optional, or Customer). Due to the complexities behind the database relationships of these *special* fields on each of the activities, there is no way to report using Advanced Find or Report Wizard on any information related to the Contact associated with the Activity. You can query those fields as part of the Advanced Find, but you cannot show Contact fields as additional columns in your report. We are back as square one with the fact that the only direct relationship to the Contact is to set Regarding to the Contact.

At PowerObjects we have overcome this hurdle with a little bit of custom development on top of MSCRM. To each activity type, we added a new direct relationship to the Company (Account), Contact, and Lead. When one of the potential contact fields (Recipient, Sender, From, To, Required, Optional, or Customer) on an activity is updated, our plug-in cycles through the contents of the field and looks for the first valid Lead, Contact, or Account. It then fills in the Related Record fields with a direct relationship to that record.

Since these new lookups are direct relationships to the Contact, you can then Report through those relationships and display fields related to the Contact on an Advanced Find query or a Campaign Response. This solution is expected to work in 99% scenario where you are most often communicating with just one person. The solution does break down when there is an activity that is associated with many contacts. This will typically only happen with an Email to multiple people, but may also be an Appointment with multiple contacts in the Required or Optional fields. But for example, if I send an Email to two contacts at a customer through Outlook and track it in CRM, Microsoft CRM only creates one record for that Email. Therefore, the Related Record fields (shown above) will only be filled out by the plug-in with the FIRST contact in the To field.

An added bonus with this solution is that you can also do workflows using these Related Record fields. The ability to do workflows on Activities is limited by the same complex relationships on the Recipient, Sender, From, To, Required, Optional, and Customer fields discussed above. For example, you can’t have a workflow that sets the Recipient of a follow-up Phone Call based the Regarding field on an E-mail. This is because the Regarding can be a lookup to ANY entity in CRM, whereas the Recipient is a different type of lookup—it only to an Lead, Account, Contact or user. However, with the solution PowerObjects has developed you can fill out the Recipient field with Related Record lookup.

This PowerObjects solution really takes the cake AND let’s you eat it too!

  • Share/Bookmark

Footings are the foundation for any structure even MSCRM

My neighbor recently jacked up his little cabin on blocks to build a new foundation for which to support his summertime home. It had been slowly lurching forward over the years and it was not going to be too long before it would have toppled into the lake. We have been watching him as he dug out the ground and poured concrete to make new footings to support his cabin. It evidently hadn’t been done right the first time around.

His trials got me thinking about building the Dynamics CRM foundation to support successful business processes. We must start with the footings to support the structure of our customer’s organization. It is fairly easy to identify business divisions, regions, territories or other units that form the org chart of an organization. Most of our customers have already identified certain key performance indicators they want to use to monitor the health of their sales or service models.

What is more difficult is identifying, building and quantifying the measurements of key performance indicators. What is the information that will make up your KPI dashboards and reports for CRM and how will it be derived? Business intelligence has become such a buzzword over the last couple of years, but it is precisely this vital information on the details of activity that provides feedback on the health of an organization and allows you to have CRM analytics. Take the time during your CRM / XRM implementations to identify the measurements you will use to monitor the steps in your business processes. Some helpful hints include:

  • Measurements to monitor Campaign initiatives or activities that result in relevant lead sources that ultimately close successfully.
  • Time elapsed between Opportunity sales step processes and the activity or communications conducted during that time to help move the process forward.
  • The measurement of activity in the regions or territories where your product or service sales has declined over a period of time.
  • Measurements to monitor Service contracts that have not been renewed or show inactivity by the customer.
  • Measurements to understand why there are Cases that have remained open past a threshold of time.

Build these types of measurements into your Dynamic CRM solution. They will help support the foundation of your organization to identify trends before you begin to slowly lurch forward.

  • Share/Bookmark

Chicken or the egg – CRM or the process

I’ve been following a discussion thread in a group that I belong to on a popular business focused social networking site. The membership of the group is comprised of Sales and Marketing VP’s and Directors. The thread that I am referring to has been very active and has had 125+ posts so far. What caught my attention on this thread was the premise of the question that started the whole thread – someone posed a question to the group wondering why CRM systems used such flawed logic to do sales forecasting. I have read and re-read the thread multiple times and there are all kinds of great comments and insights and similar and opposing theories, etc on how forecasting should work. Good stuff. The problem I have with much of the thread though goes right back to the original question in that a CRM system is just the tool…the business has to supply the logic. There is no one universal way that sales forecasting works. The needed logic is going to be different for each sales organization and even different within a sales organization that has a variety of product s and services that it sells, different types of customers, and so on and so forth. So the flaw in this whole discussion was looking to a CRM system to provide the logic to begin with.

There are certainly some standard theories and best practices for sales forecasting logic and that is generally the basis of what you find “out of the box” in today’s CRM systems. But, it should be viewed as just that, the basic starting point that you build YOUR logic on top of. In reality, you may or may not even use the base logic or functionality. What you need to do is to define how YOUR sales process works and the variables that drive that process and ultimately determine the logic you need to accurately forecast for your organization – what do you need for sales pipeline management – where will the sales process management come from?? Of course the typical challenge to this is almost a chicken or egg scenario…w/o data we can’t determine what our logic should be but w/o logic the data isn’t meaningful. To that I say…pick a place to start, make some assumptions, hazard a guess, draw straws, do whatever you need to do to begin to build the data that you need to that will help your ultimately determine your logic and adjust that logic along the way as you gain more information. A good partner like PowerObjects can help you through this process and then configure a Dynamics CRM system to match YOUR logic, whatever it is, vs. the other way around. If you look to the CRM system to determine your forecasting logic you risk inaccurate forecasts at best and maybe, having a lot of time to work on your short game at worst.

  • Share/Bookmark

Sending Meeting Requests with Microsoft Dynamics CRM

Out of the box, Microsoft Dynamics CRM 4.0 does NOT send meeting requests for Appointments that are created from CRM. This is handled very well from Microsoft Outlook, so the best practices are to create your Appointment from Outlook and track it in CRM using the CRM toolbar.

 

However, on rare occasion, there is a requirement to send a meeting request from CRM. That may be if you want Appointments created from workflow, or in the case that PowerObjects tackled recently, you want a meeting request sent to a shared calendar or resource in Microsoft Exchange.

The problem with getting an Appointment from CRM to display on a shared calendar is that Appointments do not synchronize between Microsoft Dynamics CRM and Microsoft Outlook through the sending of meeting requests. Appointments synchronize through the Outlook Client being installed on the user’s machine. Therefore, in order to synchronize Appointment to a shared calendar, you would have to set up the Active Directory user as a CRM user, and then set up a workstation with Microsoft Outlook and install the Outlook Client for Microsoft Dynamics CRM. All this would be JUST so that it can sit there synchronize appointments. That would be a big pain!

If you were to be able to create Appointments in CRM and have CRM send meeting requests, you probably would not want ALL appointments to automatically be sent as meeting requests. That is why PowerObjects created a plug-in for Microsoft Dynamics CRM which allows you to specify in a configuration area which Email addresses should be sent a meeting request.

Whether the Appointment is being scheduled for an Account, Contact, Facility/Equipment, Lead, or User, the plug-in looks at the E-mail address on the record. If the E-mail address matches one in the configuration area, a meeting request is sent for that Appointment.

Another variation of this plug-in is the addition of a checkbox to the Appointment indicating that a meeting request should be sent to all required participants that are not users (since presumably users have the Outlook Client for synchronizing Appointments). Even though Microsoft Outlook would still be the preferential way to send meeting requests manually, this field could be checked via workflow, if needed, and it might even be hidden from the user.

While this is not complete XRM development, it does give you a good idea how extensible this solution can be! Please let us know if you are looking for help with custom crm screens, hosted Microsoft crm, xrm development, or anything to do with Microsoft Dynamics CRM.

  • Share/Bookmark

Event Management Accelerator Event Details Not Updating

Have you recently updated the details of an event you have created using the Microsoft Dynamics CRM Event Management Accelerator? Are you finding that the changes you have made to the event in CRM are not appearing on your event website? If so, you have come to the right place!

At first glance this issue may seem like a bug, but after doing a bit of research, it has become apparent that this is not a bug but instead a feature of the site that we need to work with a bit.

ALL websites developed using Advanced Developer Extensions for MS Dynamics CRM make heavy use of caching. This includes the Partner Relationship Management Portal, the Event Management Portal as well as a few other recently released acclerators.  As a result of this heavy use of caching, changes made to a CRM entity (in this case an EVENT) will not immediately show up on the website.

Hitting the cache-invalidation handler will cycle the cache and make the changes we have made appear on the website. We have a few ways we can hit the cache invalidation handler:

- Save the web.config file (i.e: Add a blank row to the file and then save the changes)
- Rebuild the Website in Visual Studio
- Recycle the AppPool

While each of the above three options work, it can be cumbersome (or impossible) for an end user to perform those actions. Luckily, we have a much easier option that can be used to hit the cache invalidation handler.

What we will be doing in adding a SHORTCUT/FAVORITE to our Web Browser:

1. Add a new FAVORITE to IE. Call it ‘Cache Invalidation Handler’ an click ADD. (Don’t worry about the URL at this point; we will be changing it)

2. Right Click this link in your FAVORITES area and click PROPERTIES

 3. Insert the following code in the URL field in the favorites properties window. 

  javascript:var sURL=document.location.protocol + ‘//’ +document.location.host;var oHttp=new ActiveXObject(“Msxml2.XMLHTTP.6.0″); oHttp.Open(‘GET’,sURL+’/Cache.axd?Message=InvalidateAll&d=’ + (new Date()).valueOf(),false);oHttp.Send();window.location.reload(true);(NOTE: The script above ONLY works with Internet Explorer!!!)

4. Save the favorite.

In order to use this script, you simply have to open the website you wish to refresh and then click on your favorite that you set up above. The cache for that website will be invalidated and you should see the changes you made.

 Simple!

  • Share/Bookmark

Completed workflows are now disappearing in Microsoft Dynamics CRM – managing the size of the AsyncOperationBase Table

In one of the recently released update rollups a new registry is now available for reducing the size of the asyncoperationbase and workflowlog tables.

Setting AsyncRemoveCompletedWorkflows to a value of dword 1 will cause all successfully completed workflows to be immediate deleted after they are run. This can be beneficial, but only to a very large crm implementation or an implementation where workflows are very heavily used.


    
Another open that has been around for a while in reducing the size of this table is to set AsyncRemoveCompletedJobs a value of dword 1. This will cause only jobs that are not crm workflows to be removed from this table.

We recommend setting AsyncRemoveCompletedJobs but not AsyncRemoveCompletedWorkflows. If you are looking for help please consider PowerObjects in working with you for hosted XRM development – we are one of the leading providers of hosted Microsoft CRM and XRM hosting.

For more info:

AsyncRemoveCompletedJobs
http://support.microsoft.com/kb/957871

AsyncRemoveCompletedWorkflows
http://support.microsoft.com/kb/968755

  • Share/Bookmark