Related sites:

Newsletter: Perspectives on Power Platform

Company: Niiranen Advisory Oy

Synchronization vs. Tracking: Understanding Activity Management Options in Dynamics CRM

Long before a company has any CRM system in place they will already have a bunch of customer facing activities like emails and appointments in the personal mailboxes and calendars of their employees. Once a CRM system is implemented, these activities will not magically disappear but rather they will continue to be a key element in how the customer relationships is managed on a practical, day-to-day level. Typically companies would like to have these communications stored in the CRM database to accumulate a better understanding of both which customers are being contacted by which representatives of the company as well as the detailed information of what’s been said and agreed with the customer in these acts of communication.


Maintaining two separate systems for entering the same information is never an attractive option for information workers who just wish to stay on top of their daily agenda and commitments, without having to worry about keeping multiple calendars in sync manually. Rather than entering an appointment in your own calendar first, then entering the same data into your CRM system for activity tracking purposes, every single user would rather have the ability to promote their selected calendar entries related to customers into their CRM system for meeting the activity reporting requirements expected by their managers. Similarly, instead of copy-pasting information from their inbox onto forms in a CRM system, anyone presented with the option to click one button in their inbox and get the full message tracked into CRM would surely prefer to take this route.

This has been one of the founding principles behind the design of Microsoft’s CRM system since day one. With the market dominance of Microsoft’s activity management related software both on the client (Outlook) and server side (Exchange), making the flow of this data across different systems as seamless as possible can be seen as a low hanging fruit to grab when entering the CRM market with the Dynamics product. Looking back, offering users the possibility of remaining within their familiar and personal Outlook inbox and tracking information into the organization-wide CRM database has been a very compelling user experience at best. Yes, regardless of the countless hours I’ve had to spend solving Outlook related issues during my professional career in CRM, I’m still perfectly willing to admit that this type of UX is definitely worthy of pursuing in a CRM product, because it’s simply how it should work.

How Dynamics CRM actually tracks your data

What most organizations planning to deploy Dynamics CRM often find surprising is that up until CRM 2013 there hasn’t been much functionality on the server side related to managing the flow of activities between different systems. Even though Microsoft owns both Outlook and Exchange, they have decided to build deep hooks only onto the client side of Outlook and not the server side of Exchange. The positive side of this is that you don’t necessarily need an Exchange server for leveraging most of the activity management features of Dynamics CRM. The downside has been that you very much need the CRM Outlook client in place for things to work as you’d expect.

When it comes to sending and receiving email, the CRM Outlook client can act as the component that takes care of all the inbound and outbound emails for CRM. However, for any organization that needs to have emails flowing directly into CRM (such as a customer support email address that feeds items into a CRM support queue) or relies on workflow based email notifications to go out even when the Outlook client of an individual user is not connected to a network, the deployment of the Dynamics CRM Email Router has been in practice a compulsory step to take. Again, this component is independent of Exchange server and can be used also with other email systems via SMTP or POP3 connections. The Email Router can replace some of the email management features of the CRM Outlook client (but not all, we’ll get to that later) and basically “email enable” your Dynamics CRM server, so that it can independently communicate with the outside world via email.

One thing to note is that even customers who’ve chosen CRM Online as their deployment model instead of deploying an on-premises Dynamics CRM server have needed to separately deploy the CRM Email Router if they wish to send/receive email from/to CRM Online without routing all of the messages via the individual Outlook clients of their CRM users. Microsoft doesn’t offer an “Email Router in the cloud”, so you’ll either need to have a local machine available for deploying the router (doesn’t even need to be a Windows Server, also client OS like Vista or Windows 7 are supported) or get a virtual machine from some hosting service, such as Windows Azure. You can leverage the Exchange Online service in your Office 365 subscription for the actual email delivery, but the CRM Email Router cannot be purchased as a service directly from Office 365.

CRM_2013_Server-side_SyncWith the latest CRM 2013 release Microsoft has started to address these challenges of dependency on either client machine components (Outlook client) or on-premises servers (Email Router) by introducing a feature called Server-Side Synchronization. This allows the Dynamics CRM server to communicate directly with the Exchange server, effectively replacing the email sending and delivery features of the CRM Email Router. In addition to that, server-side sync can also handle other Exchange items like appointments, tasks and contacts, which can also now flow between the CRM database and the users’ calendars and address books on various devices without any central dependency on a client-side component like the CRM Outlook client.

Great! CRM 2013 server-side sync solves all our problems! End of blog post! Well, not quite. We’re actually just getting to the reason why I’m writing this post, which is the surprising complexity behind understanding the detailed feature sets of the various components that aim to deliver the seamless one-click UX that I was talking about earlier on. Based on what we’ve discussed so far, here’s how the big picture of synchronization methods for CRM 2013 looks like:


As is often the case, the devil is in the details, so let’s proceed with pointing out the “gotchas” that you need to be aware when planning on managing activities in a Dynamics CRM environment.

Supported Technologies

The first thing you should pay attention to if you’re either using or planning on deploying a Dynamics CRM 2013 based solution for your organization is that the server-side sync feature introduced in the CRM 2013 release actually only works between on-premises servers. While originally planned for a wider set of deployment options, the RTM version of CRM 2013 can only be set up for server-to-server synchronization if you have both CRM and Exchange either locally on your own servers or via a hosting partner that can provide you with the required configuration tools and access rights. (Btw, see this excellent tutorial by Nuno Costa for the steps needed in configuring server-side sync for CRM 2013.)

Hybrid_cloudThis is naturally an area where Microsoft is working hard to match the features offered in their own cloud services with those that a customer can deploy on their traditional servers. With the upcoming Leo release scheduled for Q2 2014 (the Dynamics CRM “Spring Wave” 2014) many people are expecting the support for server-side synchronization between CRM Online and Exchange Online to be introduced, although nothing has yet been officially published by MS regarding this capability. However, support for scenarios where either the Exchange server or the CRM server is running on-premises and the other service is in Microsoft’s cloud is a whole different subject. If these type of hybrid scenarios or “mixed mode” deployments would be relevant for you or your customers, be sure to express this by logging on to MS Connect and voting on this suggestion. (If you have problems logging on to Connect and get an error message, read this helpful article by Guido Preite.)

The cloud vs. on-prem is not the only part where you need to pay attention to the supported technologies. While the CRM Outlook client does provide a wealth of activity management features that can often satisfy the needs of an individual user who’s interested in getting his or her own records sync’d with CRM, what may not be so obvious is that this client is not available for all devices that can run Outlook. For example, if you’ve got a Microsoft Surface tablet based on the ARM chip and not an Intel CPU (meaning it runs the Windows RT variant of Microsoft’s OS) and you’ve got MS Office with Outlook on it (introduced in the Windows 8.1 update), this doesn’t mean you could install the Dynamics CRM Outlook client on the device. You can get the Windows 8 mobile client app for WinRT of course, but that doesn’t offer any activity related capabilities that wouldn’t already be available via the basic browser client of CRM 2013.

Office_MacSurface may not yet be a mainstream device for business users (although I’m quite fond of my Surface 2, having replaced my iPad 2 with it some months ago), quite a number of mobile workers are opting for the sleek MacBooks if their employer is willing to pay the premium for the Apple hardware and support non-Windows software. While you can get Microsoft Office for a Mac (version 2011, so not quite the latest 2013 goodies as you get on a PC), there’s no Dynamics CRM Outlook client available for OSX. Since there’s no COM Add-in support built in to Outlook for Mac, developing a plugin to bring comparable Dynamics CRM features to OSX Outlook users is something I don’t expect Microsoft to invest in, at least in the foreseeable future.

Why Synchronization Does Not Cover Tracking

It’s easy to jump into a conclusion that all the functionality needed for effective activity management with CRM and related systems would fall under the “synchronization” term, but that’s not exactly true. Deploying a solution like the CRM 2013 the server-side synchronization will take care of moving items like calendar appointments and contacts back and forth between the end-user client device and the central CRM database, but it only applies to items that already exist in the realm of CRM. What I mean by this is that the item was either originally created directly in the CRM application or it was received via a monitored location like an email queue. Quite often this is not the case. Let’s consider the following scenarios:

  • Sales person receives an email from a potential customer directly to his own inbox. He wants to store this message information in CRM and possibly convert it into a new opportunity to track follow-up actions.
  • Account manager schedules an appointment with an existing customer, either by sending a meeting request from Outlook or just booking the time slot from his own calendar. He wants to record this appointment into CRM as an activity and link it to the meeting participants.
  • Project manager is on-site with a customer and identifies a new work item that requires actions from him in the future. He enters it as a new task via his Windows Phone calendar and sets a reminder date. He wants to link it to the corresponding custom entity “project” in CRM, so that he can see an overview of all tasks regarding the delivery.
  • Sales director meets a former colleague of his and wants his team to pursue partnership negotiations with this person. He already has the contact details in his own Outlook address book and wants to share this with the team by creating a CRM contact record out of it.

All of these scenarios are very simple when using a Windows PC running the CRM Outlook client, as it only takes 1-2 clicks to get the information into CRM. Simply click the “Track in CRM” button, then “Set Regarding” to associate the item with the correct CRM record (account, opportunity etc.) or use the “Convert To” button to pop open a new lead, opportunity or case record that already has the activity tracked into its history.


Without the CRM Outlook client you can’t get the information into CRM without copy-pasting it from one window to another in the aforementioned scenarios. No synchronization technology will help you here, since CRM is unaware of the item until it has been brought into its world. The “Track” button is a client-side feature that you can’t utilize with any server-side solution, which means there’s no way for a user to select an email, appointment, task or contact from the Exchange server that he or she would like to promote into a record in CRM. Since the the record wasn’t “born in CRM”, it just can’t find its way there.

Once the item is in CRM, server-side sync can take care of tracking the subsequent updates to it. A re-scheduled tracked appointment will get updated with the new date, regardless of whether you change the date via CRM or your mobile phone calendar that’s linked to Exchange. An email thread with a tracked message and a tracking token ID injected into the email subject line will have the next replies automatically synchronized into CRM. Updating the mobile number of a tracked contact will be reflected in all the places, no matter if you change the field value via the contact app in your mobile, the address book in your Outlook or the contact record form in CRM. But somewhere, somehow you need to get that tracking enabled first. If the item was originally created in CRM, that’s not a problem. If it came from somewhere else, then basically you need to use the CRM Outlook client on a Windows PC.

Back when most of the information worker tasks were carried out on Windows laptops and people “lived inside Outlook”, it was surely a logical choice to leverage it as the integration point for tracking and synchronizing items to and from CRM. We’ve come a long way since then and so has the product offering by Microsoft, too. The latest Dynamics CRM version is available as a touch-optimized tablet app for Windows 8 and iPads (with Android to follow), as well as a small-screen optimized smartphone lite client for Windows Phone, iPhone and Android. Also the productivity tools offered in Office 365 can these days deliver a surprisingly advanced feature set via 100% browser based apps, like Word and Outlook Web App (OWA). Despite of these advancements, the legacy of Outlook is still present in CRM in the form of activity tracking features that are only available via the PC application as of today. Since a sync-only scenario without a granular level of control for the user to select which data should be tracked in CRM would rarely meet the day-to-day needs of activity management, let’s hope Microsoft will soon introduce alternative CRM client apps that provide the tracking feature across more devices.

The Support Matrix for CRM Activity Management

As we can see, there’s a wealth of variables that you need to be aware of when planning how to utilize Dynamics CRM email, appointment, task and contact tracking/synchronization features in an environment that isn’t built 100% on PC’s and Microsoft servers. Recently when analyzing the options for a scenario that involved both Mac users as well as Gmail accounts, I found myself at times lost in the maze of what’s supported and what’s not with all the different combinations. In order to dig myself out of this hole, I created the following Excel pivot based matrix that allowed me to group and filter the various features supported by different server & client combos:


If you want to study the data in the pivot table, then feel free to open the file via OneDrive and view the data in Excel Online with this link (yes, no Excel client needed!). Also, if you notice any mistakes I did while compiling the source data for the table, then be sure to leave a comment on this blog post and I’ll fix it accordingly.

One way to address limitations found in the out-of-the-box Dynamics CRM activity management support is of course to have a look at the ISV product offering available. There are companies like LinkPoint that develop their own client plugins for connecting a number of different email systems to different CRM systems, including Dynamics CRM. Others have developed server side technologies for providing the item tracking control via a folder based system, such as Riva. At the end of the day, in a world with a growing number of platforms and device types being used by the customers, relying on a single technology provider may no longer yield as great results as offering the required API’s for custom app development and fostering a partner ecosystem to fill the gaps in supported technologies and scenarios.

Edit 2014-03-21: For anyone interested in exploring options for tracking emails to CRM from any device, be sure to check out this article by Chief CRM Tipster Joel Lindstrom: Track emails using Forward Mailbox.


  1. Jukka. Another great article. From the investigations you have done, have you run the following scenario ?

    The “Sales Manager” is rarely in the office ( so their Outlook isn’t open to sync their CRM appointments), but the “Assistant” that manages the “Sales Managers” calendar is in the office and uses the Outlook client to use “Set Regarding” to get the meeting flagged to promote into CRM.

    Using CRM 2011 we have to have the “Sales Managers” computer switched on to get the record into CRM. We are hoping that a combination of CRM2013 and Server side sync with our on-premise CRM and on-premise Exchange system will take care of the Syncing to that the “Sales Managers” PC doesn’t need to be switched on to get the meetings promoted into CRM,

    Many Thanks

    • Thanks, Scott! Regarding your question, if in the above scenario the Sales Manager will be either an attendee or an organizer of the meeting that another user tracks into CRM, then the meeting should get synchronized from CRM to Exchange without the need for that person to be using Outlook. Although I’m not quite sure what you mean when saying that in CRM 2011 the Sales Manager’s computer needs to be on to get the record into CRM, since the Assistant who clicks on Set Regarding would be the person who promotes the item into a CRM appointment. Of course the issue with the current setup would be that the meeting won’t synchronize from CRM to mobile calendars before Outlook is connected to CRM, but this is something that CRM 2013 server-side synchronization should solve for you.

  2. Another great post, you have written some very detailed blog post recently, keep up the good work

    I particularly like the support matrix

  3. @Jukka, Many Thanks for the answer, yes it looks like CRM 2013 server side sync is designed to do what we need it to do.

    Another interesting side note at the UK CRMUG meeting yesterday Microsoft talked about the enhanced server side sync coming later in the year where we will be able to be define more tightly what is synced which will greatly strengthen this area.

  4. Another great article – thanks Jukka,

    Where do you stand on the idea that Outlook Web Access should have the missing “track in CRM” functionality? On the one hand it’s not device specific but on the other it requires Exchange.

    • In earlier roadmap presentations Microsoft has suggested that the tracking feature would be introduced in both Outlook Web App and the mobile equivalents. From what I’ve seen on Covergence 2014 announcements I don’t think such features have been listed for Leo nor Vega releases yet. Seeing how the server-side sync covers so much of the post-track functionality, it would make perfect sense to fill the remaining gap via OWA. After all, you can install a LinkedIn app for your Outlook Web App, so I think customers will rightfully expect to have at least something similar for their CRM system if it’s provided by the same company where they bought the email service from.

  5. Great post Jukka , The support Matrix is so good , I will try all scenarios. Thanks again.

  6. Hi there,

    Thank you for the excellent post. We are facing an issue with contacts in Outlook and CRM..surprise, surprise.

    We had to manually delete the thousands of duplicate contacts that existed in CRM recently, then delete all of my boss’s Outlook contacts, and let CRM sync the contacts into his Outlook client.

    However, now when we look at the contacts in Outlook, many of them appear un-tracked. Our fear is that by clicking Track in the CRM Outlook client, will inevitably produce a duplicate contact in CRM…bringing us back to the old days of dupes in the Outlook client and Dynamics CRM 2013 online.

    How does a person manage their contacts, tracked and synchronized…in this scenario?

    Microsoft tech support has said that it’s my boss’s Windows phone’s mobile app that is causing the issue in relationship to server side vs.

  7. Hi Jukka,

    This is an outstanding writing. Thank you.
    Like the way you provide details in such a depth.

  8. Jukka,

    Very nice and informative article.

    I was exploring the Gmail and CRM Outlook client integration for a client. Within the Support matrix spreadsheet, you have mentioned that there’s no support for tracking e-mails, appointments and contacts if the Email Service is Gmail, Email Client is Outlook for PC and deployment model being CRM Online or On-premise. I want to make sure I’m not missing the point here. The reason being I was able install and configure CRM outlook client for Gmail (with Google App Sync) and was also able to track emails and appointments within CRM.



    • Hi Karth,

      Thanks for your comment. The lack of email synchronization in a PC Outlook + Gmail scenario was purely a mistake from my part, I had forgotten to check that box as “Yes” in the source data. Just goes to show how careful you really need to be with these combinations!

      As for the calendar sync, that’s actually new information to me, as I had been under the impression that this two-way synchronization of Gmail and Outlook calendars wasn’t supported. Looking into it in more detail, it appears that this feature is actually available in the paid Google Apps for Business subscription ($5 per user per month). I only use the free non-Business versions myself, so I hadn’t run into this option before, but the current Google Apps Sync for Microsoft Outlook tool appears to offer full synchronization. In fact, the promotional video promises to also sync contacts and tasks. Have you had a chance to test tracking these items into Dynamics CRM and checking that it works correctly?

      I’ve updated the support for tracking individual email and appointment items between CRM and Gmail via PC Outlook into the support matrix Excel now. At the same time I also updated the support for CRM Online and Exchange Online synchronization of appointments, tasks and contacts, since the Spring ’14 update of CRM Online now expanded the server-side sync support to cover Exchange Online (but not on-prem).

  9. Great post! I have a question for Jukka and Karth regarding Google Apps sync for Outlook with the CRM plugin for Outlook. We are currently working towards a Dynamics CRM deployment and are in the testing phase. We are a Google shop and have been working with Outlook and the Google apps sync tool for Outlook for years with no issue. Since installing the CRM plugin in Outlook, we’ve noticed issues with some of our users. Some emails being sent never really get sent through Outlook. The message shows up in the user’s sent box, but it doesn’t go out. I check in there gmail sent box and the message isn’t there. I’ve been searching all over to see if there is a fix or if this is a known issue. I’ve found some threads that date back to 2012 about this, but nothing recent. The users having the issue are using Outlook 2010, I am using Outlook 2013 and have not experienced the issue. In your testing has anyone run into this and found a fix? Any help would be greatly appreciated.

    • Joe, I don’t have experience on the Outlook + Gmail combination, as all our customers have been using Exchange together with CRM. Perhaps you could post your question to the Dynamics CRM Community Forum, to reach a broader audience of users who might know about possibles issues with using Gmail as the outgoing email server for Outlook.

  10. Great Blog. We have CRM 2011 Outlook On Premise. What would cause Outlook to start sending Old calendar appointments. Appointments were set regarding and were from 2009? Any ideas?

    • Peggy, by “sending calendar appointments” do you mean the activity parties in the appointment records are getting new meeting invitations? Or are the appointments re-appearing in the meeting organizer’s calendar as a duplicate?

      • Peggy, regarding the reply you sent via email:

        “Yes Old appointments are getting re-sent. An actual meeting request gets sent to the recipients. There are also duplicate appointments.”

        Since CRM itself isn’t able to send out meeting invitations to the participants (it can only add the appointments to internal attendee calendars), I suspect the incident involves some settings on the Outlook or Exchange side. I would start by investigating if there is a specific user account involved with the appointments in question and check what client devices he or she is synchronizing the calendar information from Exchange.

  11. @Peggy Re: “Yes Old appointments are getting re-sent. An actual meeting request gets sent to the recipients.”
    @Jukka’s Re: “CRM itself isn’t able to send out meeting invitations to the participants”

    One of our users got caught by this recently as if someone updates the Outlook meeting after it has happened to either add more recipients ( to get better information inside the CRM Appointment record) , or update the Meeting Description using Outlook, then Outlook will put up a quick option box to “Send Appointment to all Recipients”, which it is very easy to just press enter and then old meeting requests will be sent out that you don’t really want. I advised our users to only maintain CRM meeting information in CRM itself (via the View in CRM button) rather than Outlook as it is too easy for people to accidentally click a default option and send unwanted invites.

    Hope this helps

  12. Thank you for your replies. It does help. I found out today that many of the old appointments were set to status completed in CRM. Could this cause Outlook to resend the appointments?

  13. Me again…it seems that some of the old appointments that were re-sent to recipients recently had their status to completed in CRM. Would this trigger the old invites to resend from Outlook? I am losing my mind here….don’t think I will survive CRM….

  14. I didn’t think so Peggy but maybe I’m wrong and there are circumstances that could cause this to happen?

    If I were you I think I’d try doing exactly that in your particular environment with some test appointments to see what happens.

  15. Joining the conversation as a colleague of Peggy’s. to explain further, the issue event sequence appears to be as follows:

    Appointments that were tracked in CRM were changed to a Completed status, using a Workflow to do this in bulk and loop through. Moments after this process was completed, those same appointments were duplicated, triplicated (and sometimes added up to 10 times) on the user’s calendar AND new meeting requests were sent to each indivldual on the origional appointment (both internally and externally).

    Something else notable is that those who had these meetings re-sent are also GOOD (iDevice mail application) users. Could there be a situation here where, when completed in CRM and sync’d back to the user’s Exchange calendar/mailbox, GOOD saw these as new items (because it can’t recognize CRM custom fields added) and saw them as NEW and triggered them to be resent?

  16. Darin – yes from what you have said it sounds like some kind of a compatiblity issue with the exchange clients you’re using for mobile devices and either the CRM Outlook Client or CRM 2013 Server-Side Sync (I’m not sure which you are using). I’d do some tests to identify when it works and when it fails and lodge the appropriate support call(s).

  17. Great Post! finally a clear explanation about why syncrhonization does not imply tracking mails not originated in CRM.
    Thank you!!!

  18. Jukka,
    Get all, sorts of problems switching from Outlook add-in to SSS method.
    Some appointments, contacts and tasks seamlessly sync; many do not causing a very poorly reported error in the quite appalling Alert wall for the Mailbox.

    CRM 2013 SP1 base version also has a number of unhandled exception errors that cause the remainder of the sync to bomb out at the same record every time (do no new get processed!).

    Microsoft support can only suggest to patch up to UR1 but offer no explanation of the causes or even if it will resolve.

    Any tips for snagging this transition?

    • Rob, I personally tried moving over to server-side sync once it became available for CRM Online and Exchange Online. After a few months I gave up and reverted back to the Outlook based sync, due to the number of issues I encountered in day-to-day usage and the difficulty in debugging the root cause of the errors. I’ve only enabled it in our own CRM organization as a default setting for new users and have always heard complaints about it. My conclusion is that it’s not quite ready for prime time yet and it makes sense to use the old client driven synchronization in scenarios that don’t require total independence from Outlook yet (well, tracking of course is still always Outlook based anyway – for now).

      This doesn’t mean I wouldn’t believe the Exchange server-side sync would eventually mature to be a perfectly viable default option for activity and contact synchronization. It’s just a complex beast that will require some taming before it reaches the levels that existing Dynamics CRM Outlook client users have come to expect. I know Microsoft is investing in this area, listening to the feedback and making an effort to improve the reliability of the feature. It will get better, but it will just need a few iterations. In the meantime, it makes sense to not aggressively push server-side as the only option and cause issues for the end users and internal CRM support personnel, just because it’s the newer technology.

    • Jiri, there have been a number of enhancements to the synchronization process in CRM 2015, which you can read about from this post on the Sonoma Partners blog. In terms of the synchronization experience for the Outlook user, there are still drawbacks in the delay between tracking items and having them available in CRM, which can be frustrating for existing CRM users. In terms of synchronization reliability, it’s a bit too early to say if the number of issues encountered with the sync has gotten lower, but I’m sure the product team has been working towards making the server-side sync a preferred option.

  19. Question for the experts: When I “Save As Completed” an Appointment that was added through the Office Outlook CRM Plugin, does the person in the “required” field get an email or notification?

    • Austin, from the top of my head I would say that nothing is sent to the attendees unless the parameters of the actual calendar appointment are modified. The status of the appointment is a CRM specific attribute, so this shouldn’t be reflected in the Outlook appointment invitations.

  20. @Austin. I believe they would get an invitation yes as required attendees etc would with Server Side Sync from Appointment activity records created in the web client. It is Exchange (or other email platform) that sends the ics file as the invitation – not whatever CRM method was used to create it.
    As always, test safe first.

  21. Hello,

    Is this still true with Dynamics CRM 2015/2016? The “You will, however, still require Outlook client to promote an item from Outlook to CRM” statement has disappeared from the documentation for 2015 and 2016 versions.


  22. Thanks Jukka,
    The thing is our client wants the appointments, tasks and contacts to be synced automatically without tracking, and reading the documentation of Server side sync that seems to be possible. I cant’ get it to work, and don’t know if it has changed since 2013 version.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.