{"id":152,"date":"2022-01-06T10:24:23","date_gmt":"2022-01-06T10:24:23","guid":{"rendered":"https:\/\/blog.citrus-lime.com\/crmc\/?p=152"},"modified":"2022-01-06T10:24:24","modified_gmt":"2022-01-06T10:24:24","slug":"adding-a-microsoft-teams-url-to-a-dynamics-appointment","status":"publish","type":"post","link":"https:\/\/blog.citrus-lime.com\/crmc\/adding-a-microsoft-teams-url-to-a-dynamics-appointment\/","title":{"rendered":"Adding a Microsoft Teams URL to a Dynamics Appointment"},"content":{"rendered":"\n<p>Currently there is no out of the box functionality for making an Appointment in Dynamics a Teams meeting. I\u2019m sure this is something that will be available in the near future but for the time being we can use Flow to create a Teams Meetings, with the same information and pass the newly created Teams URL back to the Appointment in Dynamics.<\/p>\n\n\n\n<p>First, we need a trigger for the Flow. Here we can select \u201cWhen a row is created, updated or deleted\u201d from the common data service options.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image002_231005F7.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image002_thumb_29C30F7A.png\" alt=\"clip_image002\" title=\"clip_image002\" \/><\/a><\/figure>\n\n\n\n<p>I want my flow to trigger whenever an Appointment is created.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image004_0288C645.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image004_thumb_053181F6.png\" alt=\"clip_image004\" title=\"clip_image004\" \/><\/a><\/figure>\n\n\n\n<p>Next we need to create a Teams Meetings so we are able to pull the JoinURL into Dynamics. We set the Calendar id to Calendar and use the Dynamic mappings to add the Subject and Description from Dynamics into the Teams Meeting.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image006_5DF738C0.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image006_thumb_4BAE71FE.png\" alt=\"clip_image006\" title=\"clip_image006\" \/><\/a><\/figure>\n\n\n\n<p>Now we need to add the start time and end time. For whatever reason the format of the start date and end date from Dynamics isn\u2019t recognized here so we first need to convert these date into String. To do that we use the Expression tab and select String(value).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image008_004ECE3A.jpg\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image008_thumb_6E060777.jpg\" alt=\"clip_image008\" title=\"clip_image008\" \/><\/a><\/figure>\n\n\n\n<p>Now we move back to the Dynamics content tab and select Start Time)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image010_46CBBE42.jpg\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image010_thumb_3482F780.jpg\" alt=\"clip_image010\" title=\"clip_image010\" \/><\/a><\/figure>\n\n\n\n<p>Pressing OK will the expression to the field, as shown below. Repeat the same process for the End Time field and you\u2019re all set.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image012_50278376.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image012_thumb_28ED3A41.png\" alt=\"clip_image012\" title=\"clip_image012\" \/><\/a><\/figure>\n\n\n\n<p>Now we need to pass the newly created JoinURL back to the Appointment in Dynamics. We select Update a row, set the Table name to Appointments and the Item ID is the GUID from our initially created Appointment.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image014_4491C637.jpg\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image014_thumb_1D577D02.jpg\" alt=\"clip_image014\" title=\"clip_image014\" \/><\/a><\/figure>\n\n\n\n<p>I\u2019ve found the best field to map the URL to is the Description field. This way when the invites are sent out to the required attendees, they can clearly see a Teams meeting URL to join. We do not want to overwrite any description that may have been added so use the Dynamics content to add the Description back then I\u2019ve added some space, added a bit of text then mapped the joinURL from the Teams appointment.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image016_240A8685.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image016_thumb_78C5EF7D.png\" alt=\"clip_image016\" title=\"clip_image016\" \/><\/a><\/figure>\n\n\n\n<p>When testing we can see a newly created Appointment has no teams URL.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image018_667D28BB.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image018_thumb_7859BC88.png\" alt=\"clip_image018\" title=\"clip_image018\" \/><\/a><\/figure>\n\n\n\n<p>After the Flow has ran we can the Teams Meeting URL has been added to the description.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image020_6610F5C6.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image020_thumb_3ACC5EBF.png\" alt=\"clip_image020\" title=\"clip_image020\" \/><\/a><\/figure>\n\n\n\n<p>When the required attendee receives the Appointment invite in their inbox they will be able to click on the link directly, which will take them to the Teams meeting.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image022_1392158A.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/clip_image022_thumb_684D7E82.png\" alt=\"clip_image022\" title=\"clip_image022\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Currently there is no out of the box functionality for making an Appointment in Dynamics a Teams meeting. I\u2019m sure this is something that will be available in the near future but for the time being we can use Flow to create a Teams Meetings, with the same information and pass the newly created Teams<\/p>\n","protected":false},"author":43,"featured_media":88,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-152","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-crm"},"featured_image_src":"https:\/\/blog.citrus-lime.com\/crmc\/wp-content\/uploads\/sites\/30\/2021\/12\/DocDriveSiteimageclouds-scaled.jpg","author_info":{"display_name":"jadesmith","author_link":"https:\/\/blog.citrus-lime.com\/crmc\/author\/jadesmith\/"},"_links":{"self":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":1,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/152\/revisions\/153"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/media\/88"}],"wp:attachment":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}