How to find Outlook contact Unique ID? - outlook

I want to see all fields of the contacts in outlook. Here the contacts are synchronized from D365. All fields that are coming from D365 will also be shown in outlook contacts (fields such as PrimaryId, CreatedBy, Owner, CreatedDate, modified By, modifiedDate etc.. )
When I open the contacts, not all fields are showing. How can I see all fields of the records?
Suggestions are appreciated.

You can open Advanced Find for Contacts and in there you can select additional columns.
Thanks Naveen. Except for ContactId, all the fields that you list should be available in a Contact Advanced Find view.
To get the ContactId for an individual record, you can get it from the URL of the record, or use the Chrome Level Up add-in, or bookmarklets.
To get a list of Contact ID's you can export a view to Excel with reimport to get the ID's in the hidden column A, or create a FetchXML query and run it in FetchXML Tester, among other ways.

In Outlook client for CRM, follow these steps to view the fields.
The EntryID is the unique identifier for each mail object in the user’s mailbox. This value is also used in the idMappingTable to relate the CRMID to the appropriate Outlook EntryID.
crmEntryID (*) corresponds to the Outlook EntryID of the object
Crmid corresponds to the created record’s unique GUID in CRM
Read more.

Related

Multiselect lookup field in Dynamics

Can I:
make manipulation with subgrid so I can choose multiple Contacts and save them in the field (or even better choose only the email address from the Contacts) or
make a lookup field to Contact that allows me to choose multiple contacts
Longer description of the problem:
I have made some customization of the Invoice entity in Dynamics Sales, but what I also need is an email failed that is a lookup to Contacts, so I can choose a multiple contacts, so later on I can get the email information and send them an email with power automate. But since I'm new to Dynamics I'm not sure how to manipulate with the subgrid, I researched something about creating N:N relationship, but I'm not sure how can I manipulate with on save/ on load events, cause I need to choose multiple contacts and save them in this field.
Customized Invoice Entity

How to migrate or move activites between contacts in Dynamics CRM

Two different contacts had the same email address, after an automatic record creation rule was applied, CRM associated email activities to the wrong contact. I've updated the email address value in one of the contacts (the wrong contact) but it has activities that do not belong to it and I need to move them to the right contact.
How can move activities between two contacts? I cannot merge the contacts as they are legitimate contacts.
I did try to update the partyid field of the activityparty entity but I've got the error message: The update method does not support entities of type 'activityparty'.
What easy way can I use to accomplish this?

How can I view SalesOrder fields in a CRM Marketing list?

I'm trying to create a CRM dynamic marketing list with fields from Contact and the SalesOrder entity.While I can use SalesOrder fields to filter the list, I can't pick a SalesOrder field for the returned columns.I'd like the SalesOrder number to appear on the Marketing list, along with the contact details.
Is is possible to get these fields in a Marketing List ?
If not, is it possible to create a way to do this, either as configuration or coded ?
Thanks in advance.
Instead of starting your search from a Marketing List, you could change the query to start from Sales Order. Then you can search for related Contacts fulfilling the same criteria as the query in your Marketing List, and pull in fields from the related Contact.
This query returns Sales Orders (called Sales Contracts in my system) that have a related Contact which is active. You would fill out the related part with the same query as in your dynamic Marketing List:
You can then show fields from the related Contact:

Possible ways to optimize batch Outlook appointment processing with MAPITable

I'm working in a component that syncs our own appointment data with the ones in a selected calendar folder in Outlook.
The first time when our appointments sync to Outlook, the ID of our appointment is stored in the user properties of the newly created Outlook appointment.
Therefore, before syncing each appointment to Outlook, our code has to check if there is already an appointment in Outlook that has their ID. The code is currently looping through the Folder.Items collection and look into the UserProperties of each one of them, this is obviously very slow.
I found this stackoverflow question, which suggests that I can query the MAPITable to filter out appointments that has no user properties first.
However, as more and more appointments are synced to Outlook overtime, the filtered result would become pretty big too.
Does anybody know if there is any faster way to go through user properties of all appointments in an Outlook folde?
I had a similar problem of filtering Appointments using a UserProperty say 'MyUserProperty' of olText type. I used a DASL query which filtered the Folder Items using UserProperty.
string myPropertyValue = "SomeID";
filter = "#SQL=\"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/MyUserProperty/0x0000001F\" = '" + myPropertyValue + "' ";
filteredAppointment = myFolderItems.Find(filter);
MSDN Documentation : Filtering a Custom Field
Use the Find/FindNext or Restrict methods of the Items class instead of integrating over all items in the folder.
Take a look at the following articles which illustrate how to use them:
How To: Retrieve Outlook calendar items using Find and FindNext methods
How To: Use Restrict method in Outlook to get calendar items

Product slug not working in CRM 2013 Email templates

I have a business requirement that execs are really wanting to see. In our lead and email templates we have a few of our products listed. The products themselves are pretty stable but the prices are of course subject to change.
I'm OK with hard coding the product name into email but I was hoping the price could be a slug that get's resolved.
We only have one price list so nothing to worry about there.
I see no way to get access to the product and or price list entities through the data field values dialog.
So my thought was to create the 2-4 fields in the lead and opportunity entities. Then create a background workflow that takes the price from the price list and sets those fields.
Then when an email is generated I can access those hidden fields as they will be available through the lead or opportunity entity.
Any thoughts, concerns, better approaches?
Unfortunately CRM's email template system is not capable of what you describe out of the box. As you have discovered it will only permit you to insert placeholders from, or assocated with, the primary entity. It won't let you insert fields from other entities. What you suggest as a workaround is possible but it's not an ideal solution as you'll have these 2-4 redundant fields on each record type that contain duplicated data from the price list.
If you have any experience with creating custom workflow activities using the SDK then the best solution here is to create a custom activity that accepts either an draft Email or Email template as a input parameter, instantiates the email if required, loads the price list data, and performs your own custom placeholder replacements.
I've done this on a few projects in order to pass multiple entity records into the template, or to insert complex tables into emails by loading data from relationships. See the screenshots below for an example of how I've configured the email template and dialog process to pass both an 'Account' and 'User' record into the email template.

Resources