<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>All blog posts in Microsoft 365 PnP</title>
    <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP</link>
    <description>All blog posts in Microsoft 365 PnP</description>
    <pubDate>Fri, 28 May 2021 09:01:54 GMT</pubDate>
    <dc:creator>Microsoft365PnP</dc:creator>
    <dc:date>2021-05-28T09:01:54Z</dc:date>
    <item>
      <title>Microsoft 365 Developer Community Call recording – 27th of May, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-27th-of-may/ba-p/2392027</link>
      <description>&lt;P&gt;Recording of the Microsoft 365 – General M365 development Special Interest Group (SIG) community call from May 27, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="sig-27th-may-recording.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/284499i1B8A4C37178FE4F3/image-size/large?v=v2&amp;amp;px=999" role="button" title="sig-27th-may-recording.png" alt="sig-27th-may-recording.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Latest news from Microsoft 365 engineering and updates on open-source projects: PnP .NET libraries, PnP PowerShell, modernization tooling, on yo Teams, on Microsoft Graph Toolkit, and on Microsoft Teams Samples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Join on the &lt;A href="https://aka.ms/viva/connections/preview/register" target="_blank" rel="noopener"&gt;Viva Connections private preview&lt;/A&gt;!&amp;nbsp; The &lt;A href="https://aka.ms/teams-toolkit" target="_blank" rel="noopener"&gt;Microsoft Teams Toolkit v2&lt;/A&gt; is now available!&amp;nbsp; Looking to get started with Microsoft Teams development? Don’t miss out our &lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener"&gt;Teams samples gallery&lt;/A&gt;!&amp;nbsp; Check out the &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;, and register now for June trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;.&amp;nbsp; &amp;nbsp;Recent PnP project releases include - &lt;STRONG&gt;yo Teams&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;generator-teams&lt;/EM&gt;&lt;/STRONG&gt; (apps generator) v3.1.0 GA, v3.2.0 Preview, &lt;STRONG&gt;&lt;EM&gt;yo teams-build-core&lt;/EM&gt;&lt;/STRONG&gt; (gulp tasks) v1.2.0 Preview, and &lt;STRONG&gt;Microsoft Graph Toolkit&lt;/STRONG&gt; v2.2.0 GA along with insights into MGT vNext.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Open-source project status:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Current Version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Framework&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.4.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Prepping for v1.5.0 release week of May 31&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Core SDK&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Prepping for v1.2.0 release week of May 31&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP PowerShell&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.5.0 (just added Cmdlets for Viva Connections and Syntex)&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Prepping for v1.6.0 (June)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - generator-teams&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Released v3.1.0 GA, v3.2.0 Preview&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Preview with Viva Connections support&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - yoteams-build-core&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0,&amp;nbsp;&lt;STRONG&gt;v1.2.0 Preview&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - msteams-react-base-component&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v3.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Microsoft Graph Toolkit (MGT)&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;v2.2.0 GA &lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, 2 new Teams samples were delivered in the last 2 weeks.&amp;nbsp; The host of this call was&amp;nbsp;&lt;SPAN&gt;&lt;A href="http://twitter.com/DavidWarnerII" target="_self" rel="nofollow noopener noreferrer"&gt;David Warner II&lt;/A&gt;&amp;nbsp;(Catapult Systems) | @DavidWarnerII.&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp; Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/y0diQu23g88" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Join on the Viva Connections private preview! | &lt;A href="https://aka.ms/viva/connections/preview/register" target="_blank" rel="noopener"&gt;aka.ms/viva/connections/preview/register&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Feedback wanted:&amp;nbsp; Regarding PnP PowerShell&lt;/STRONG&gt; – “What if we did not return classic CSOM objects from the cmdlets?” &amp;nbsp;Comments to:&amp;nbsp; @erwinvanhunen.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Register for Sharing is Caring Events&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;June 29&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xJTFJZN01MWlZQVFc3UjgxRUxQQkhDSS4u" target="_blank" rel="noopener"&gt;June 17&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;June 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xCOEtTWFJSREg2UFY2NkpPUk5GNk9YVS4u" target="_blank" rel="noopener"&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Teams Dev - June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;June 30&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;, &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;June 16&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;June 15&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Buddy System - &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMjRRUVg4NElZUUJLTEY1TVVSVDJFRFpLRS4u" target="_blank" rel="noopener"&gt;Request a Buddy&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Call attention to your great work by using the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/hashtag/PnPWeekly?src=hashtag_click" target="_blank" rel="noopener nofollow noreferrer"&gt;#PnPWeekly&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;on Twitter.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Teams Development Samples:&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(&lt;A href="https://aka.ms/TeamsSampleBrowser" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/TeamsSampleBrowser&lt;/A&gt;)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/msgext-action-preview" target="_blank" rel="noopener"&gt;Action Preview&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/Moeller2_0" target="_blank" rel="noopener"&gt;Markus Moeller&lt;/A&gt; |@Moeller2_0&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/tab-context-viewer" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Teams Context Viewer tab&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt; | &lt;LI-USER uid="926766"&gt;&lt;/LI-USER&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PnPCall-May27th-ReducedResolution.gif" style="width: 750px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/284502iC49EE73AF5EAD2B4/image-size/large?v=v2&amp;amp;px=999" role="button" title="PnPCall-May27th-ReducedResolution.gif" alt="PnPCall-May27th-ReducedResolution.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hello!&amp;nbsp; it’s always great to see everyone on the call today.&amp;nbsp; Thanks for participating.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;delivered in this session&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Getting started with HTWOO UI – Fluent Design in HTML and CSS&lt;/STRONG&gt; – an open-source community driven Fluent UI driven framework that’s just HTML, CSS and a bit of JS. &amp;nbsp;&amp;nbsp;Simple to use in the Microsoft 365 ecosystem, same branding as Fluent UI. &amp;nbsp;&amp;nbsp;Complete component library - tables, typography, avatars, icons, dialogs and more. &amp;nbsp;Steps through HTWOO install – a npm package and 2 theme aware SPFx web parts.&amp;nbsp; &amp;nbsp;Complete documentation and samples.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Gain your users attention with the Microsoft Teams Activity Feed API&lt;/STRONG&gt; – send activity notifications from both apps that live outside Teams and others (like static tabs) inside Teams, to Teams tabs, bots, chat.&amp;nbsp; &amp;nbsp;Uses the activity feed notification APIs in Microsoft Graph.&amp;nbsp; Presenter review types of metadata on messages, requirements for sending defined activity type notifications, app registration, consent, manifest, notifications settings in Teams, etc.&amp;nbsp; Then steps through the code for simple and advanced notifications.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Deep linking from List Formatting to Power Automate solution&lt;/STRONG&gt;&amp;nbsp;– Integrate lists, list formatting and Power Apps.&amp;nbsp; Achieve similar look and feel using same SVG icons in lists and Power App.&amp;nbsp; Call for list data from a Power App.&amp;nbsp; Launch a Power App and send mail from within a list. &amp;nbsp;Color SVG icons using fill properties in Inkscape SVG Editor.&amp;nbsp; Showed using code from 2 samples in this demo.&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Thank you for your work. Samples are often showcased in Demos.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Topics&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;covered in this call&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PnP .NET library updates -&amp;nbsp;&lt;A href="http://twitter.com/O365bert" target="_self"&gt;Bert Jansen&lt;/A&gt; (Microsoft) @O365bert -&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/y0diQu23g88?t=350" target="_self"&gt;5:50&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP PowerShell updates -&lt;SPAN&gt;&lt;A href="http://twitter.com/erwinvanhunen" target="_self"&gt;&amp;nbsp;Erwin van Hunen&lt;/A&gt; (Valo Intranet) @erwinvanhunen&lt;/SPAN&gt;&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/y0diQu23g88?t=501" target="_self"&gt;8:21&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;yo Teams updates -&amp;nbsp;&lt;A href="http://twitter.com/DavidWarnerII" target="_self"&gt;David Warner II&lt;/A&gt; (Catapult Systems) @DavidWarnerII&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;- &lt;A href="https://youtu.be/y0diQu23g88?t=600" target="_self"&gt;10:00&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit updates -&lt;SPAN&gt;&amp;nbsp;&lt;A href="http://twitter.com/metulev" target="_self"&gt;Nikola Metulev&lt;/A&gt; (Microsoft) | @metulev&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/y0diQu23g88?t=631" target="_self"&gt;10:31&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Teams Samples -&amp;nbsp;&lt;A href="http://twitter.com/DavidWarnerII" target="_self"&gt;David Warner II&lt;/A&gt; (Catapult Systems) @DavidWarnerII&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;- &lt;A href="https://youtu.be/y0diQu23g88?t=818" target="_self"&gt;13:38&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Getting started with HTWOO UI – Fluent Design in HTML and CSS – &lt;A href="http://twitter.com/StfBauer" target="_blank" rel="noopener"&gt;Stefan Bauer&lt;/A&gt; (N8D) | @StfBauer - &lt;A href="https://youtu.be/y0diQu23g88?t=931" target="_self"&gt;15:31&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Gain your users attention with the Microsoft Teams Activity Feed API – &lt;A href="http://twitter.com/thomyg" target="_blank" rel="noopener"&gt;Thomas Gölles&lt;/A&gt; (Solvion) | @thomyg - &lt;A href="https://youtu.be/y0diQu23g88?t=1794" target="_self"&gt;29:54&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Deep linking from List Formatting to Power Automate solution&amp;nbsp;– &lt;A href="http://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;Chris Kent&lt;/A&gt; (DMI) | @theChrisKent -&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;A href="https://youtu.be/y0diQu23g88?t=2695" target="_self"&gt;44:55&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Blog Post - &lt;A href="https://n8d.at/htwoo-ui-launched-fluent-design-in-html-and-css" target="_blank" rel="noopener"&gt;HTWOO UI launched – Fluent Design in HTML and CSS&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation: &lt;A href="https://lab.n8d.studio/htwoo/" target="_blank" rel="noopener"&gt;ABOUT HTWOO UI&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo: &lt;A href="https://github.com/n8design/htwoo" target="_blank" rel="noopener"&gt;HTWOO UI framework&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Samples: &lt;A href="https://github.com/n8design/htwoo-samples" target="_blank" rel="noopener"&gt;htwoo-samples&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Documentation - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://docs.microsoft.com/en-us/graph/teams-send-activityfeednotifications" target="_blank" rel="noopener"&gt;Send activity feed notifications to users in Microsoft Teams&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Video - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://www.youtube.com/watch?v=G33bN7cl2QU&amp;amp;t=3536s" target="_blank" rel="noopener"&gt;Microsoft Teams – Use the teamwork Microsoft Graph endpoint&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Documentation - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links" target="_blank" rel="noopener"&gt;Create deep links&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Graphics - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://www.flicon.io/" target="_blank" rel="noopener"&gt;Fluent UI Icon Search&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Sample - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://github.com/pnp/List-Formatting/tree/master/column-samples/person-mailto" target="_blank" rel="noopener"&gt;Person Mail To Link&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Sample - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://github.com/pnp/List-Formatting/tree/master/column-samples/generic-launch-powerapp" target="_blank" rel="noopener"&gt;Launch Power App Button&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;&lt;SPAN style="font-family: inherit;"&gt;Blog post - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://thechriskent.com/2021/05/27/custom-icon-buttons-in-power-apps-with-hover-color/" target="_blank" rel="noopener"&gt;Custom Icon Buttons in Power Apps with Hover Color&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Editor - &lt;A href="https://inkscape.org/" target="_blank" rel="noopener"&gt;Inkscape&lt;/A&gt; - &lt;A href="https://inkscape.org" target="_blank" rel="noopener"&gt;https://inkscape.org&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 128 with guest &lt;A href="http://twitter.com/kswansondesign" target="_blank" rel="noopener"&gt;Katie Swanson&lt;/A&gt;&amp;nbsp;(Microsoft) | @kswansondesign | &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-128/ba-p/2381362" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-128-24th-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Teams Toolkit v2.2 | &lt;A href="https://aka.ms/teams-toolkit" target="_blank" rel="noopener"&gt;https://aka.ms/teams-toolkit&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://adoption.microsoft.com/extensibility-look-book?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365/extensibility&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/teams-dev-samples/" target="_blank" rel="noopener nofollow noreferrer"&gt;Microsoft Teams Samples Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/teams-samples&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General resources&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community hub&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp/community&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit in Microsoft Learn |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/learn-mgt" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/learn-mgt&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://lookbook.microsoft.com/?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint look book&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams-training" target="_blank" rel="noopener noreferrer"&gt;Yo Teams video training package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/net-standard-version-of-sharepoint-online-csom-apis?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;.NET Standard 2.0 version of SharePoint Online CSOM API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 community (PnP) videos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp-videos&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension" target="_blank" rel="noopener noreferrer"&gt;Microsoft Teams Toolkit for Visual Studio Code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams" target="_blank" rel="noopener noreferrer"&gt;yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/yoteams&lt;/LI&gt;
&lt;LI&gt;Video -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://youtu.be/w0OrFkzNC10" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started using yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener nofollow noreferrer"&gt;Wictor Wilén&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Avanade)| @wictor&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/build-a-crisis-management-site-to-connect-people-and-information/ba-p/1216791?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener"&gt;Build a crisis management site to connect people and information&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;Developer documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/sppnp-modernization-partnerguidance" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Partner Guidance&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Feedback welcome&lt;/LI&gt;
&lt;LI&gt;Solution -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/pnp-modern-search" target="_blank" rel="noopener noreferrer"&gt;Building a modern search experiences with SharePoint Framework web parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformation" target="_blank" rel="noopener noreferrer"&gt;Page transformation guidance&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformationvideos" target="_blank" rel="noopener noreferrer"&gt;Page transformation videos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-modernizationscanner" target="_blank" rel="noopener noreferrer"&gt;Modernization scanner&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/dev-program?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer program site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Need to become a Tenant Admin to test look book capabilities? Get a Microsoft 365 E5 developer subscription (free tenant for 90 days)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://provisioning.sharepointpnp.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;SharePoint Provisioning Service&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;- Easily provision look book designs to any tenant in the world&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-provisioning-templates" target="_blank" rel="noopener noreferrer"&gt;SharePoint Provisioning templates on Github&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/pnp-provisioning-tenant-templates?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;PnP Provisioning Tenant Templates documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/sharepoint-page-transformation-webcast-series?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint Page Transformation webcast series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-modernization/tree/dev/Tools" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Tools&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming Calls | Recurrent Invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;June 3&lt;SUP&gt;rd&lt;/SUP&gt;at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;June 9&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;June 10&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;June 10&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;June 15&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;June 16&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;June 17th at 9:00 am PDT | &lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;General Microsoft 365 Dev Special Interest Group bi-weekly calls are targeted at anyone who's interested in the general Microsoft 365 development topics. This includes Microsoft Teams, Bots, Microsoft Graph, CSOM, REST, site provisioning, PnP PowerShell, PnP Sites Core, Site Designs, Microsoft Flow, PowerApps, Column Formatting, list formatting, etc. topics. More details on the Microsoft 365 community from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365pnp&lt;/A&gt;. We also welcome community demos, if you are interested in doing a live demo in these calls!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can download recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;. Welcome and join in the discussion. If you have any questions, comments, or feedback, feel free to provide your input as comments to this post as well. More details on the Microsoft 365 community and options to get involved are available from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 28th of May 2021&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 28 May 2021 07:20:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-27th-of-may/ba-p/2392027</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-28T07:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to invite external users to a SharePoint site or Microsoft Team using Power Automate &amp; G</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-invite-external-users-to-a-sharepoint-site-or-microsoft/bc-p/2394162#M305</link>
      <description>&lt;P&gt;This is a very useful blog post and a good piece of knowledge sharing, but let's keep in mind the big picture here.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You need to do all of this complicated stuff, simply to enable the completely predictable and foreseeable outcome described in the first couple of words in the headline.&lt;/P&gt;</description>
      <pubDate>Fri, 28 May 2021 00:23:28 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-invite-external-users-to-a-sharepoint-site-or-microsoft/bc-p/2394162#M305</guid>
      <dc:creator>Alex Thomas</dc:creator>
      <dc:date>2021-05-28T00:23:28Z</dc:date>
    </item>
    <item>
      <title>Re: SPFx webpart form validation using React Formik</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/bc-p/2393120#M304</link>
      <description>&lt;P&gt;Thanks,&amp;nbsp;&lt;LI-USER uid="144808"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 27 May 2021 18:07:12 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/bc-p/2393120#M304</guid>
      <dc:creator>ChandaniPrajapati</dc:creator>
      <dc:date>2021-05-27T18:07:12Z</dc:date>
    </item>
    <item>
      <title>Re: SPFx webpart form validation using React Formik</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/bc-p/2391991#M302</link>
      <description>&lt;P&gt;&amp;nbsp;Hi&amp;nbsp;&lt;LI-USER uid="995474"&gt;&lt;/LI-USER&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;It is amazing article.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 27 May 2021 15:07:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/bc-p/2391991#M302</guid>
      <dc:creator>Dipen Shah</dc:creator>
      <dc:date>2021-05-27T15:07:46Z</dc:date>
    </item>
    <item>
      <title>How to invite external users to a SharePoint site or Microsoft Team using Power Automate &amp; Graph API</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-invite-external-users-to-a-sharepoint-site-or-microsoft/ba-p/2385603</link>
      <description>&lt;P&gt;SharePoint and Microsoft teams services in Microsoft 365 makes it easier to share content and collaborate with external users who is outside your organization. A guest or external user is someone who do not have a school or work account with your organization, they can be your partner, vendor, customer etc. In this article let us see how to build a self-registration experience for external users with the help of Microsoft Forms &amp;amp; Power Automate to onboard them to a&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SharePoint online site&lt;/LI&gt;
&lt;LI&gt;Microsoft Team&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Microsoft Form to collect details from External User:&lt;/H2&gt;
&lt;P&gt;To start building this experience, create a Microsoft form with the setting &lt;STRONG&gt;Anyone can respond&lt;/STRONG&gt; and with fields (Name, Email address etc) to collect information from the external user to send invitation.&lt;/P&gt;
&lt;H2&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MSForm-ExternalUserdetails.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283744i5EE743018235BE28/image-size/large?v=v2&amp;amp;px=999" role="button" title="MSForm-ExternalUserdetails.png" alt="MSForm-ExternalUserdetails.png" /&gt;&lt;/span&gt;&lt;/H2&gt;
&lt;H2&gt;Azure Active Directory Application registration:&lt;/H2&gt;
&lt;P&gt;The next step after creating the form is to register an &lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app" target="_blank" rel="noopener"&gt;application in Azure AD&lt;/A&gt;&lt;/SPAN&gt; with Microsoft graph API permission to send invitation to external user. After the app is registered obtain the client id, client secret &amp;amp; tenant id to be used in the Power Automate flow further down this article to generate the JSON webtoken to access Microsoft Graph API for sending invitation. Find below screenshot with the permission User.Invite.All added to the app. Keep in mind the permission requires Admin consent.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdApp-GraphPermissiontoInviteGuestUser.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283747iBFCAE7000FA85663/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdApp-GraphPermissiontoInviteGuestUser.png" alt="AdApp-GraphPermissiontoInviteGuestUser.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;There is also delegated permission available for User.Invite.All.&lt;/P&gt;
&lt;H1&gt;Onboard External users to a SharePoint online site:&lt;/H1&gt;
&lt;P&gt;Once the Microsoft form is ready, we can start building the Power Automate flow which can send the email invitation to the external user and for granting access to the SharePoint site. The &lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/external-sharing-overview" target="_blank" rel="noopener"&gt;external sharing&lt;/A&gt;&lt;/SPAN&gt; features of SharePoint Online enables users in your organization share content with people outside the organization. There is no limit to the number of guests you can invite to SharePoint sites as per this &lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/office365/servicedescriptions/sharepoint-online-service-description/sharepoint-online-limits#users" target="_blank" rel="noopener"&gt;SharePoint online limits&lt;/A&gt;&lt;/SPAN&gt; documentation. Find below steps to create the Power Automate flow with a custom approval on a Microsoft Team&lt;/P&gt;
&lt;H2&gt;Power Automate Flow:&lt;/H2&gt;
&lt;P&gt;Create an Automated flow with the trigger &lt;STRONG&gt;When a new response is submitted&lt;/STRONG&gt; with the above form name selected on the dropdown and then add the action &lt;STRONG&gt;Get response details&lt;/STRONG&gt; with the &lt;STRONG&gt;Response Id&lt;/STRONG&gt; selected from the dynamic content for the trigger to get the form details submitted in the Microsoft form by the external user. Find screenshot below&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MSFormTrigger-ExternalUser.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283749iE72C51E732F69B83/image-size/large?v=v2&amp;amp;px=999" role="button" title="MSFormTrigger-ExternalUser.png" alt="MSFormTrigger-ExternalUser.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Adaptive card for Teams Approval:&lt;/H2&gt;
&lt;P&gt;For the Approval in Microsoft Teams, I have used a custom card created from the &lt;SPAN&gt;&lt;A href="https://adaptivecards.io/designer/" target="_blank" rel="noopener"&gt;Adaptive card designer&lt;/A&gt;&lt;/SPAN&gt; with elements &lt;STRONG&gt;ColumnSet, TextBlock&lt;/STRONG&gt; to display information submitted in the form &amp;amp; &lt;STRONG&gt;action button&lt;/STRONG&gt; Approve and Reject to take further action by a Microsoft teams user to proceed with Invitation for the Guest account creation. Find screenshot below from the adaptive card designer&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-DesignforApproval.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283751i05981D49C0025718/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-DesignforApproval.png" alt="AdaptiveCard-DesignforApproval.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;After the card is designed, copy the card payload from the designer and go to the flow and then add the action &lt;STRONG&gt;Post adaptive card and wait for a response&lt;/STRONG&gt; and make appropriate selection on the available fields as shown below
&lt;UL class="lia-list-style-type-disc"&gt;
&lt;LI&gt;&lt;STRONG&gt;Post as&lt;/STRONG&gt;: Flow bot&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Post in&lt;/STRONG&gt;: Channel&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Message&lt;/STRONG&gt;: Payload copied from designer. Replace the fields for usrName &amp;amp; userEmail selected from the dynamic content from the outputs of the action &lt;STRONG&gt;Get response details&lt;/STRONG&gt;. The created on textBlock element has the flow expression formatDateTime(utcNow(),'g') to display the current datetime information on the card.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse1.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283832iE97C226E1847A51C/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse1.png" alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse1.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse2.png" style="width: 601px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283834i108906E5F5F321C1/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse2.png" alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponse2.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Update Message&lt;/STRONG&gt;: Custom message which appear after an action taken in Microsoft Teams&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Team&lt;/STRONG&gt;: Select the Team where you would like to post the card&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Channel&lt;/STRONG&gt;: Select the channel from the Microsoft Team where you would like to have the approval adaptive card posted&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Card payload:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "weight": "Bolder",
            "text": "Approval for adding the External User",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "spacing": "None",
            "text": "Created Add flow expression to get current date",
            "isSubtle": true,
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "Name:",
                            "wrap": true,
                            "size": "Medium",
                            "weight": "Bolder"
                        },
                        {
                            "type": "TextBlock",
                            "text": "Email:",
                            "wrap": true,
                            "weight": "Bolder",
                            "size": "Medium"
                        }
                    ],
                    "width": "stretch"
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "usrName-Replace it from Microsoft Form",
                            "wrap": true
                        },
                        {
                            "type": "TextBlock",
                            "text": "userEmail-Replace it from Microsoft Form ",
                            "wrap": true
                        }
                    ]
                }
            ]
        }
    ],
    "actions": [
        {
            "type": "Action.Submit",
            "title": "Approve",
            "id": "btnApprove"
        },
        {
            "type": "Action.Submit",
            "title": "Reject",
            "id": "btnReject"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;The above adaptive card is used to get approval from the Organization teams user based on the information submitted by the external user in the Microsoft form to proceed with the next steps for sending the guest account invite. Now we will have to identify if the user has clicked the button Approve or Reject. This information can be easily obtained from the Outputs of the action.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: Adaptive card can also be sent using a Microsoft Graph API with the card payload in Attachments field&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&amp;amp;tabs=http" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&amp;amp;tabs=http&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;Adaptive card for Teams - Dynamic content Missing:&lt;/H3&gt;
&lt;P&gt;As of the time I am writing this article there is an issue in getting the output as dynamic content for the &lt;STRONG&gt;Post adaptive card and wait for a response&lt;/STRONG&gt; action if there is dynamic content added on the JSON Payload (Name, Email from Forms). The fix is to run the flow till the post adaptive card action and take an action on Microsoft teams by clicking either Approve or Reject and then go to the Flow run from the history as shown below&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponseRunHistory.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283841i0F0F0D886B748997/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponseRunHistory.png" alt="AdaptiveCard-PAFlow-POSTAdatptivecardandwaitforresponseRunHistory.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;From the above screenshot, we can see if the user has clicked the Approve or Reject button from the field &lt;STRONG&gt;submitActionId&lt;/STRONG&gt;. To get this value in Flow, use the expression&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;outputs('Post_adaptive_card_and_wait_for_a_response').body.submitActionId&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;@outputs('Post_adaptive_card_and_wait_for_a_response')?['body/submitActionId']&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Spaces in the name of the action is replaced with underscore.&lt;/P&gt;
&lt;P&gt;To get the userPrincipalName, the expression is&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;outputs('Post_adaptive_card_and_wait_for_a_response').body.responder.userPrincipalName&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;@outputs('Post_adaptive_card_and_wait_for_a_response')?['body/responder/userPrincipalName']&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To get the submitActionId, enter the expression outputs('Post_adaptive_card_and_wait_for_a_response').body.submitActionId in the compose action, then add a condition control to decide action based on users approval&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-cardactionoutput.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283843iEA966FE976A43528/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-cardactionoutput.png" alt="AdaptiveCard-cardactionoutput.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;I have observed this issue occurs in other team’s adaptive card actions as well, the above fix should work. Now we can implement the logic to send the Guest Invitation using Microsoft Graph API. To send the invite,&amp;nbsp;we will use the Azure AD application registered above.&lt;/P&gt;
&lt;H2&gt;Generate JSON Web token to Access Graph API:&lt;/H2&gt;
&lt;P&gt;Be ready with the ClientId, Client Secret and Tenant Id collected from the AD app registration you have done initially. The only authentication flow to generate a access token for application permissions is &lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#client-credentials" target="_blank" rel="noopener"&gt;Client credentials&lt;/A&gt;&lt;/SPAN&gt;.&lt;/P&gt;
&lt;P&gt;To generate a token&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Store the Client Secret on a String variable or a compose action&lt;/LI&gt;
&lt;LI&gt;Make a HTTP request using the HTTP connector with the following details. Make sure to replace the string for tenantId, azureAdAppclientId and azureAdAppclientSecret&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Add a HTTP connector action to the flow for making a POST request per the following information&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;HTTP Method&lt;/STRONG&gt;: POST&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;URI&lt;/STRONG&gt;: &lt;SPAN&gt;&lt;A href="https://login.microsoftonline.com/yourtenantId/oauth2/v2.0/token" target="_blank" rel="noopener"&gt;https://login.microsoftonline.com/yourtenantId/oauth2/v2.0/token&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Headers&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;Key&lt;/EM&gt;&lt;/U&gt;: Content-Type&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;Value&lt;/EM&gt;&lt;/U&gt;: application/x-www-form-urlencoded&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Body&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;tenant=yourtenantId&amp;amp;client_id=azureAdAppclientId&amp;amp;client_secret=@{decodeUriComponent(variables('azureAdAppclientSecret'))}&amp;amp;grant_type=client_credentials&amp;amp;scope=https://graph.microsoft.com/.default&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the client secret make sure to URL encode using the expression encodeUriComponent(variables(‘clientSecret’)) else the request will fail due to the presence of special characters.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MSGraph-GenerateJSONWebToken.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283871i7259E97855CDF538/image-size/large?v=v2&amp;amp;px=999" role="button" title="MSGraph-GenerateJSONWebToken.png" alt="MSGraph-GenerateJSONWebToken.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In the above screen, I have added a compose action to store the SharePoint site address to be used for granting the external user access to. To extract the token from the above request, add the parse JSON action with Content from the &lt;STRONG&gt;HTTP request body&lt;/STRONG&gt; and the following schema&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;{
    "type": "object",
    "properties": {
        "token_type": {
            "type": "string"
        },
        "scope": {
            "type": "string"
        },
        "expires_in": {
            "type": "integer"
        },
        "ext_expires_in": {
            "type": "integer"
        },
        "access_token": {
            "type": "string"
        },
        "refresh_token": {
            "type": "string"
        }
    }
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MSGraph-ParseJSONWebToken.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283872i0847D6A0FE6B53E1/image-size/large?v=v2&amp;amp;px=999" role="button" title="MSGraph-ParseJSONWebToken.png" alt="MSGraph-ParseJSONWebToken.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Include the access token when calling the Microsoft Graph API on the Headers section or raw as shown in the next section.&lt;/P&gt;
&lt;H2&gt;Send Invitation using Microsoft Graph API:&lt;/H2&gt;
&lt;P&gt;Before sending the invitation, validate if the user already exists in your organization AD tenant by using the email address of the external user with the help of the action &lt;STRONG&gt;Search for users&lt;/STRONG&gt; as shown below&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SearchforexternalUser.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283873i5D856C72A794F8F8/image-size/large?v=v2&amp;amp;px=999" role="button" title="SearchforexternalUser.png" alt="SearchforexternalUser.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If there is null response for the action &lt;STRONG&gt;Search for users&lt;/STRONG&gt;, then the user does not exist. This can be calculated using the expression length and by passing the value as a parameter, if it is equals zero then the external user does not exist. If the user already exists, we can directly proceed to granting the external user access to SharePoint.&lt;/P&gt;
&lt;P&gt;Graph API to check if a guest user already exists:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://graph.microsoft.com/v1.0/users?$filter=UserType eq 'Guest'&amp;amp;$filter=mail eq exteruseremailaddress@domain.com'" target="_self"&gt;https://graph.microsoft.com/v1.0/users?$filter=UserType eq 'Guest'&amp;amp;$filter=mail eq exteruseremailaddress@domain.com'&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&lt;A href="https://graph.microsoft.com/v1.0/users?$filter=startswith(mail,'fejom29487@troikos.com')" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/users?$filter=startswith(mail,'&lt;U&gt;exteruseremailaddress@domain.com&lt;/U&gt;')&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Find below the Graph API endpoint http request details to &lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/invitation-post?view=graph-rest-1.0&amp;amp;tabs=http" target="_blank" rel="noopener"&gt;invite the external user&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Method&lt;/STRONG&gt;: POST&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;URL&lt;/STRONG&gt;: &lt;SPAN&gt;&lt;A href="https://graph.microsoft.com/v1.0/invitations" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/invitations&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request Body&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;{
  "invitedUserDisplayName": "External User Name",
  "invitedUserEmailAddress": "External User Email Address",
  "sendInvitationMessage": true,
  "inviteRedirectUrl": "SharePoint site URL or any URL",
  "invitedUserMessageInfo": {
    "messageLanguage": "en-US",
    "customizedMessageBody": "Welcome to the M365PAL SharePoint site! Click the link below and sign in."
  }
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MSGraph-SendInvitationforExternaluser.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283874iB97155249F988658/image-size/large?v=v2&amp;amp;px=999" role="button" title="MSGraph-SendInvitationforExternaluser.png" alt="MSGraph-SendInvitationforExternaluser.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In HTTP request body, use the dynamic content of the form to populate the fields invitedUserDisplayName &amp;amp; Emailaddress. The invite redirectUri is the output of the compose action which has the SharePoint site url. I have added a delay of one minute before granting access to SharePoint site for the external user, this step is to make sure there is an entry in Azure AD for the external user/guest account.&lt;/P&gt;
&lt;P&gt;Custom connector can be used for calling the Graph API for sending invitations instead of using HTTP connector, you can refer to the post &lt;A href="https://ashiqf.com/2021/03/16/call-microsoft-graph-api-in-power-apps-and-power-automate-using-a-custom-connector/" target="_blank" rel="noopener"&gt;Call Microsoft Graph API in Power Apps and Power Automate using a Custom connector&lt;/A&gt; for detailed instructions.&lt;/P&gt;
&lt;H2&gt;Grant Access to SharePoint site for the external user:&lt;/H2&gt;
&lt;P&gt;As soon as the guest account invite is sent from the above Microsoft graph API request HTTP action, it is time to grant access to the SharePoint site for the external user. There is a SharePoint REST API endpoint to add a user to a SharePoint group (Owners, Member, Visitors), find below the request details&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request URL&lt;/STRONG&gt;:&amp;nbsp;&lt;A href="https://tenantname.sharepoint.com/sites/siteName/ _api/web/sitegroups/GetById(groupId)/users" target="_self"&gt;https://tenantname.sharepoint.com/sites/siteName/ _api/web/sitegroups/GetById(groupId)/users&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;For the groupId to the corresponding SharePoint group, refer to the following table&lt;/P&gt;
&lt;TABLE border="2"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="302"&gt;
&lt;P&gt;&lt;STRONG&gt;SharePoint Group&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="302"&gt;
&lt;P&gt;&lt;STRONG&gt;GroupId&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="302"&gt;
&lt;P&gt;Owners&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="302"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="302"&gt;
&lt;P&gt;Members&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="302"&gt;
&lt;P&gt;5&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="302"&gt;
&lt;P&gt;Visitors&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="302"&gt;
&lt;P&gt;4&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Headers&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;Key&lt;/EM&gt;&lt;/U&gt;: accept &lt;U&gt;&lt;EM&gt;value&lt;/EM&gt;&lt;/U&gt;: application/json;odata.metadata=none&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;EM&gt;Key&lt;/EM&gt;&lt;/U&gt;: content-type &lt;U&gt;&lt;EM&gt;value&lt;/EM&gt;&lt;/U&gt;: application/json&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Body&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;{'LoginName':'i:0#.f|membership|userPrinipalNameorEmailaddressofExternalUser'}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the external user, the email address used to send the invite works.&lt;/P&gt;
&lt;P&gt;Go back to the flow and add the action &lt;STRONG&gt;Send an HTTP request to SharePoint&lt;/STRONG&gt; to call the above REST api. Find below the screenshot of the action&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AddUsertoSharePointGroup.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283876i3A58AC17FEAE1E79/image-size/large?v=v2&amp;amp;px=999" role="button" title="AddUsertoSharePointGroup.png" alt="AddUsertoSharePointGroup.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The above action uses delegated permission, the user of the connection should have access to the SharePoint site. As of now, there is no Graph API for adding the user to a SharePoint group but you can register an app in Active directory and add permission for SharePoint to call the above REST API. Refer to the documentation &lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azuread" target="_blank" rel="noopener"&gt;Granting access via Azure AD App-Only&lt;/A&gt; for calling the REST API using the registered AD app.&lt;/P&gt;
&lt;H2&gt;Testing the flow:&lt;/H2&gt;
&lt;P&gt;The whole flow can now be tested by submitting the form which sends the adaptive card on Teams first as shown below&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AdaptiveCard-InTeamsChannel.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283877i2CAE3F5DAFF07A49/image-size/large?v=v2&amp;amp;px=999" role="button" title="AdaptiveCard-InTeamsChannel.png" alt="AdaptiveCard-InTeamsChannel.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After the card is approved, the invite is sent to the external user. After the external user accepts the invite, the user should be automatically redirected to the SharePoint site with the appropriate access. The access to the SharePoint site for the external user can be validated by the checking the membership of the SharePoint group in the site even before the user accepts the invitation. The site members can also be validated by accessing the URL for All users list:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://tenantName.sharepoint.com/sites/siteName/_layouts/15/people.aspx?MembershipGroupId=0" target="_blank" rel="noopener"&gt;https://tenantName.sharepoint.com/sites/siteName/_layouts/15/people.aspx?MembershipGroupId=0&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This approach of granting access to SharePoint site for external user can be applied to internal users by &lt;A href="https://support.microsoft.com/en-us/office/set-up-and-manage-access-requests-94b26e0b-2822-49d4-929a-8455698654b3" target="_blank" rel="noopener"&gt;turning off the access requests&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Limit External Sharing by domain:&lt;/H2&gt;
&lt;P&gt;The external sharing on SharePoint can be restricted based on domain of the external user. To enable the setting login into the SharePoint admin center &amp;gt; Policies &amp;gt; Sharing &amp;gt; Enable the checkbox Limit external sharing by domain &amp;gt; Add domain&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ExternalSharing-RestrictDomain.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283878i2BCE04FF59AD8213/image-size/large?v=v2&amp;amp;px=999" role="button" title="ExternalSharing-RestrictDomain.png" alt="ExternalSharing-RestrictDomain.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H1&gt;Onboard External users to a Microsoft Team:&lt;/H1&gt;
&lt;P&gt;To onboard the external user to a Microsoft Team, the only change to the above flow is, instead of adding the user to the SharePoint group the user must be added as a Member to the Microsoft 365 group connected to the Microsoft Teams. The graph API to &lt;A href="https://docs.microsoft.com/en-us/graph/api/team-post-members?view=graph-rest-1.0&amp;amp;tabs=http" target="_blank" rel="noopener"&gt;add a member&lt;/A&gt; to a Microsoft Team is&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request Type&lt;/STRONG&gt;: POST&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request URL&lt;/STRONG&gt;: &lt;A href="https://graph.microsoft.com/v1.0/teams/%7bteam-id%7d/members" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/teams/{team-id}/members&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The team-id is the Microsoft 365 group object Id, as there is always a Microsoft 365 group connected to a Microsoft Team.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Body&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;{
    "@odata.type": "#microsoft.graph.aadUserConversationMember",
    "roles": ["owner"],
    "user@odata.bind": "https://graph.microsoft.com/v1.0/users(userObjectIdofGuest')"
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The expression to get the user object Id of the external user as per the below screenshot is&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;outputs('HTTP-SendGuestInvitation').body.invitedUser.Id&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The expression can be used in a compose action to get the Object Id of the external user which can be used in the Graph API request to add the member to a Team.&amp;nbsp;&lt;STRONG&gt;HTTP-SendGuestInvitation&lt;/STRONG&gt; is the name of the HTTP Action.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="externalUserObjectId.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283882i30DB43DB52F61917/image-size/large?v=v2&amp;amp;px=999" role="button" title="externalUserObjectId.png" alt="externalUserObjectId.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Permission for the Azure AD App to add a member to a Microsoft Team:&lt;/H2&gt;
&lt;P&gt;The application permission Group.ReadWrite.All has to be added on the Azure AD app, if you are going to be using the same JSON webtoken generated above. There is delegated permission as well for adding members.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://graph.microsoft.com/Group.ReadWrite.All" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/Group.ReadWrite.All&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I recommend you read the following documentation from Microsoft for External sharing&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/manage-external-access" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/microsoftteams/manage-external-access&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/guest-access" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/microsoftteams/guest-access&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/communicate-with-users-from-other-organizations" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/microsoftteams/communicate-with-users-from-other-organizations&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;With this, the Power Automate flow should send the invitation as shown below to the external user.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="externalUserInvitationEmail.png" style="width: 605px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283883i12B00828DE4DB125/image-size/large?v=v2&amp;amp;px=999" role="button" title="externalUserInvitationEmail.png" alt="externalUserInvitationEmail.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If it is for a Microsoft Team, the external user should be licensed for teams service to open it on their teams client. The same flow can be also configured for Microsoft 365 group.&lt;/P&gt;
&lt;P&gt;This post was originally published in &lt;A href="https://ashiqf.com/2021/05/26/how-to-invite-external-users-to-a-sharepoint-site-or-microsoft-team-using-power-automate-and-graph-api/" target="_self"&gt;ashiqf.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 May 2021 15:25:16 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-invite-external-users-to-a-sharepoint-site-or-microsoft/ba-p/2385603</guid>
      <dc:creator>AshiqFaleel</dc:creator>
      <dc:date>2021-05-26T15:25:16Z</dc:date>
    </item>
    <item>
      <title>SPFx webpart form validation using React Formik</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/ba-p/2386945</link>
      <description>&lt;H2&gt;Introduction&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Formik is the world's most popular open-source form library for React and React Native. We can also use this library in our SPFx web part as well to manage form validations. Using this library we don't have to write custom validations. so let's start step-by-step implementation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;What is formik?&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Formik is a small library that helps us with the these parts: Getting values in and out of form state. Validation and error messages. Handling form submission.&lt;/P&gt;
&lt;P&gt;Formik is designed to manage forms with complex validation with ease.&lt;/P&gt;
&lt;P&gt;Formik supports synchronous and asynchronous form-level and field-level validation.&lt;/P&gt;
&lt;P&gt;Furthermore, it comes with baked-in support for schema-based form-level validation through Yup.&lt;/P&gt;
&lt;P&gt;For more details about Fromik refer to the below articles,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="Formik official documentation" href="https://formik.org/" target="_self"&gt;Formik official documentation&lt;/A&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="Manage Forms In React With Formik" href="https://www.c-sharpcorner.com/article/manage-forms-in-react-with-formik/" target="_self"&gt;Manage Forms In React With Formik&lt;/A&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="Formik validation Schema" href="https://formik.org/docs/guides/validation" target="_self"&gt;Formik validation Schema&lt;/A&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;SharePoint List Structure&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Create a list called&amp;nbsp;&lt;STRONG&gt;Tasks&amp;nbsp;&lt;/STRONG&gt;with below fields,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="width: 100%;" border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;&lt;STRONG&gt;Field Name(Internal name)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;&lt;STRONG&gt;Field Type&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;Title (default)&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;Single line of text&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;StartDate&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;
&lt;P&gt;Date and Time (Date only)&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;EndDate&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;Date and Time (Date only)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;ProjectName&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;Single line of text&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="50%" height="27px"&gt;TaskDetails&lt;/TD&gt;
&lt;TD width="50%" height="27px"&gt;Multiple lines of text&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After the creation of the list, we will start to create the SPFx web part.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Formik implementation with SPFx&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Open a command prompt&lt;BR /&gt;Move to the path where you want to create a project&lt;BR /&gt;Create a project directory using:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;md react-formik&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Move to the above-created directory using:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;cd react-formik&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now execute the below command to create an SPFx solution:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;yo @microsoft/sharepoint &lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will ask some questions, as shown below,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Project Setup.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283850iDC7320A79F49D015/image-size/large?v=v2&amp;amp;px=999" role="button" title="Project Setup.png" alt="Project Setup.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After a successful installation, we can open a project in any source code tool. Here, I am using the VS code, so I will execute the command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;code .&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now we will install the following packages:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;npm i formik&lt;BR /&gt;npm i yup&lt;BR /&gt;npm i @pnp/spfx-controls-react&lt;BR /&gt;npm i @microsoft/sp-dialog&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the end, our output will be like this,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Output.png" style="width: 844px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283854iF3FA39A2B052AAF5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Output.png" alt="Output.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After the successful installation, we will start our form implementation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. Create below files&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;I{webpartname}State.ts&lt;/EM&gt; inside &lt;STRONG&gt;src/webparts/reactFormik/components&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;SPService.ts&lt;/EM&gt; file inside &lt;STRONG&gt;src/webparts/shared/service&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;In the end, our structure will be looks like this,&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Project Structure.png" style="width: 347px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283851i147B68545317BE61/image-size/large?v=v2&amp;amp;px=999" role="button" title="Project Structure.png" alt="Project Structure.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Create a state interface as below inside&amp;nbsp;&lt;STRONG&gt;IReactFormikState.ts.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;export interface IReactFormikState {
  projectName?: string;
  startDate?: any;
  endDate?: any;
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. Create a method to create a task inside &lt;STRONG&gt;SPService.ts.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;import "@pnp/sp/webs";
import "@pnp/sp/lists";
import "@pnp/sp/items";
import "@pnp/sp/webs";
import "@pnp/sp/site-users/web";
import { Web } from "@pnp/sp/webs";

export class SPService {

    private web;

    constructor(url: string) {
        this.web = Web(url);
    }

    public async createTask(listName: string, body: any) {
        try {
            let createdItem = await this.web.lists
                .getByTitle(listName)
                .items
                .add(body);
            return createdItem;
        }
        catch (err) {
            Promise.reject(err);
        }
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4. Move to the&amp;nbsp;&lt;STRONG&gt;ReactFormikWebPart.ts&lt;/STRONG&gt;. In this, we will pass the current SP context and read site URL from user.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;import * as React from 'react';
import * as ReactDom from 'react-dom';
import { Version } from '@microsoft/sp-core-library';
import {
  IPropertyPaneConfiguration,
  PropertyPaneTextField
} from '@microsoft/sp-property-pane';
import { BaseClientSideWebPart } from '@microsoft/sp-webpart-base';

import * as strings from 'ReactFormikWebPartStrings';
import ReactFormik from './components/ReactFormik';
import { IReactFormikProps } from './components/IReactFormikProps';
import { sp } from "@pnp/sp/presets/all";

export interface IReactFormikWebPartProps {
  description: string;
  siteUrl: string;
}

export default class ReactFormikWebPart extends BaseClientSideWebPart&amp;lt;IReactFormikWebPartProps&amp;gt; {

  protected onInit(): Promise&amp;lt;void&amp;gt; {

    return super.onInit().then(_ =&amp;gt; {
      sp.setup({
        spfxContext: this.context
      });
    });
  }

  public render(): void {
    const element: React.ReactElement&amp;lt;IReactFormikProps&amp;gt; = React.createElement(
      ReactFormik,
      {
        description: this.properties.description,
        context: this.context,
        siteUrl: this.properties.siteUrl ? this.properties.siteUrl : this.context.pageContext.web.absoluteUrl
      }
    );

    ReactDom.render(element, this.domElement);
  }

  protected onDispose(): void {
    ReactDom.unmountComponentAtNode(this.domElement);
  }

  protected get dataVersion(): Version {
    return Version.parse('1.0');
  }

  protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
    return {
      pages: [
        {
          header: {
            description: strings.PropertyPaneDescription
          },
          groups: [
            {
              groupName: strings.BasicGroupName,
              groupFields: [
                PropertyPaneTextField('description', {
                  label: strings.DescriptionFieldLabel
                }),
                PropertyPaneTextField('siteUrl', {
                  label: strings.SiteUrlFieldLabel
                })
              ]
            }
          ]
        }
      ]
    };
  }
}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;5. Move to the&amp;nbsp;&lt;STRONG&gt;ReactFormik.tsx&lt;/STRONG&gt; file to render form and validations&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;yup syntaxs:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;1. For string:&amp;nbsp;yup.string().required('Required')&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;2. For date:&amp;nbsp;yup.date().required('Required').nullable()&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;Related to Formik&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;1. Fromik has its own handleReset and handleSubmit method so we don not have to manage manually&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;2. We have to set state value and error message from control so for that I have created a common method&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;1. In&amp;nbsp;the constructor, we will set the current SP context, bind the service and required methods and initialize the states.&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;2. Create&amp;nbsp;createRecord() to create task list item using SPService.&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;3. In the render(), first we will add all the controls like date picker, text field, people picker, and dropdown, etc inside &lt;STRONG&gt;&amp;lt;Formik&amp;gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp; &amp;nbsp; then We will set properties as below,&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;initialValues&lt;/STRONG&gt; - This is one type o state at here we will set empty or null or undefined as an initial level.&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;validationSchema&lt;/STRONG&gt; - At here we will do validations using &lt;STRONG&gt;yup&lt;/STRONG&gt;. so for this, I am creating one const and wills et this constant in this prop.&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp; &amp;nbsp; &lt;STRONG&gt;onSubmit&lt;/STRONG&gt; - At here we will call the method to create a record in the SharePoint list&lt;/P&gt;
&lt;P class="lia-align-justify lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;import * as React from 'react';
import styles from './ReactFormik.module.scss';
import { IReactFormikProps } from './IReactFormikProps';
import { IReactFormikState } from './IReactFormikState';
import { SPService } from '../../shared/service/SPService';
import { TextField } from '@fluentui/react/lib/TextField';
import { Stack, } from '@fluentui/react/lib/Stack';
import { Formik, FormikProps } from 'formik';
import { Label } from 'office-ui-fabric-react/lib/Label';
import * as yup from 'yup';
import { PeoplePicker, PrincipalType } from "@pnp/spfx-controls-react/lib/PeoplePicker";
import { DatePicker, Dropdown, mergeStyleSets, PrimaryButton, IIconProps } from 'office-ui-fabric-react';
import { sp } from '@pnp/sp';
import { Dialog } from '@microsoft/sp-dialog';

const controlClass = mergeStyleSets({
  control: {
    margin: '0 0 15px 0',
    maxWidth: '300px',
  },
});

export default class ReactFormik extends React.Component&amp;lt;IReactFormikProps, IReactFormikState&amp;gt; {

  private cancelIcon: IIconProps = { iconName: 'Cancel' };
  private saveIcon: IIconProps = { iconName: 'Save' };
  private _services: SPService = null;

  constructor(props: Readonly&amp;lt;IReactFormikProps&amp;gt;) {
    super(props);
    this.state = {
      startDate: null,
      endDate: null
    }
    sp.setup({
      spfxContext: this.props.context
    });

    this._services = new SPService(this.props.siteUrl);
    this.createRecord = this.createRecord.bind(this);
  }

  /** set field value and error message for all the fields */
  private getFieldProps = (formik: FormikProps&amp;lt;any&amp;gt;, field: string) =&amp;gt; {
    return { ...formik.getFieldProps(field), errorMessage: formik.errors[field] as string }
  }

  /** create record in sharepoint list */
  public async createRecord(record: any) {
    let item = await this._services.createTask("Tasks", {
      Title: record.name,
      TaskDetails: record.details,
      StartDate: record.startDate,
      EndDate: new Date(record.endDate),
      ProjectName: record.projectName,
    }).then((data) =&amp;gt; {
      Dialog.alert("Record inseterd successfully !!!");
      return data;
    }).catch((err) =&amp;gt; {
      console.error(err);
      throw err;
    });
  }

  public render(): React.ReactElement&amp;lt;IReactFormikProps&amp;gt; {
    /** validations */
    const validate = yup.object().shape({
      name: yup.string().required('Task name is required'),
      details: yup.string()
        .min('15', 'Minimum required 15 characters')
        .required('Task detail is required'),
      projectName: yup.string().required('Please select a project'),
      startDate: yup.date().required('Please select a start date').nullable(),
      endDate: yup.date().required('Please select a end date').nullable()
    })

    return (
      &amp;lt;Formik initialValues={{
        name: '',
        details: '',
        projectName: '',
        startDate: null,
        endDate: null
      }}
        validationSchema={validate}
        onSubmit={(values, helpers) =&amp;gt; {
          console.log('SUCCESS!! :-)\n\n' + JSON.stringify(values, null, 4));
          this.createRecord(values).then(response =&amp;gt; {
            helpers.resetForm()
          });
        }}&amp;gt;
        { formik =&amp;gt; (
          &amp;lt;div className={styles.reactFormik}&amp;gt;
            &amp;lt;Stack&amp;gt;
              &amp;lt;Label className={styles.lblForm}&amp;gt;Current User&amp;lt;/Label&amp;gt;
              &amp;lt;PeoplePicker
                context={this.props.context as any}
                personSelectionLimit={1}
                showtooltip={true}
                showHiddenInUI={false}
                principalTypes={[PrincipalType.User]}
                ensureUser={true}
                disabled={true}
                defaultSelectedUsers={[this.props.context.pageContext.user.email as any]}
              /&amp;gt;

              &amp;lt;Label className={styles.lblForm}&amp;gt;Task Name&amp;lt;/Label&amp;gt;
              &amp;lt;TextField
                {...this.getFieldProps(formik, 'name')} /&amp;gt;

              &amp;lt;Label className={styles.lblForm}&amp;gt;Project Name&amp;lt;/Label&amp;gt;
              &amp;lt;Dropdown
                options={
                  [
                    { key: 'Project1', text: 'Project1' },
                    { key: 'Project2', text: 'Project2' },
                    { key: 'Project3', text: 'Project3' },
                  ]
                }
                {...this.getFieldProps(formik, 'projectName')}
                onChange={(event, option) =&amp;gt; { formik.setFieldValue('projectName', option.key.toString()) }}
              /&amp;gt;

              &amp;lt;Label className={styles.lblForm}&amp;gt;Start Date&amp;lt;/Label&amp;gt;
              &amp;lt;DatePicker
                className={controlClass.control}
                id="startDate"
                value={formik.values.startDate}
                textField={{ ...this.getFieldProps(formik, 'startDate') }}
                onSelectDate={(date) =&amp;gt; formik.setFieldValue('startDate', date)}
              /&amp;gt;

              &amp;lt;Label className={styles.lblForm}&amp;gt;End Date&amp;lt;/Label&amp;gt;
              &amp;lt;DatePicker
                className={controlClass.control}
                id="endDate"
                value={formik.values.endDate}
                textField={{ ...this.getFieldProps(formik, 'endDate') }}
                onSelectDate={(date) =&amp;gt; formik.setFieldValue('endDate', date)}
              /&amp;gt;

              &amp;lt;Label className={styles.lblForm}&amp;gt;Task Details&amp;lt;/Label&amp;gt;
              &amp;lt;TextField
                multiline
                rows={6}
                {...this.getFieldProps(formik, 'details')} /&amp;gt;

            &amp;lt;/Stack&amp;gt;
            &amp;lt;PrimaryButton
              type="submit"
              text="Save"
              iconProps={this.saveIcon}
              className={styles.btnsForm}
              onClick={formik.handleSubmit as any}
            /&amp;gt;
            &amp;lt;PrimaryButton
              text="Cancel"
              iconProps={this.cancelIcon}
              className={styles.btnsForm}
              onClick={formik.handleReset}
            /&amp;gt;
          &amp;lt;/div&amp;gt;
        )
        }
      &amp;lt;/Formik &amp;gt;
    );
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;6. Move to the&amp;nbsp;&lt;STRONG&gt;ReactFormik.module.scss&lt;/STRONG&gt; file to add some relaetd CSS.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="css"&gt;@import '~office-ui-fabric-react/dist/sass/References.scss';
.reactFormik{
  .btnsForm {
    background-color: "[theme:themePrimary, default:#0078d7]";
    border-color: "[theme: themePrimary, default: #0078d7]";
    color: "[theme:white, default:white]" ;
    margin-left: 10px;
    margin-top: 10px;
  }
  .customErrorMeesage{
    color: var(--red-color);
    font-size: 10px;
    font-family: 'Light';
    padding: 2px;
  }
  .lblForm{
  font-size: 15px;
  margin:  5px 0px 5px 0px;
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now serve the application using the below command,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;gulp serve&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now test the webpart in SharePoint-SiteURL + /_layouts/15/workbench.aspx.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Output&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="SPFx-react-formik.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283856iA4FABBEFE508862F/image-size/large?v=v2&amp;amp;px=999" role="button" title="SPFx-react-formik.gif" alt="SPFx-react-formik.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Find the full source code &lt;A href="https://github.com/chandaniprajapati/spfx-react-formik" target="_self"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Summary&lt;BR /&gt;&lt;BR /&gt;&lt;/H2&gt;
&lt;P&gt;In this article, we have seen how to implement react formik library in SPFx.&lt;BR /&gt;&lt;BR /&gt;I hope this helps.&lt;BR /&gt;&lt;BR /&gt;Sharing is caring!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 May 2021 12:56:03 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/spfx-webpart-form-validation-using-react-formik/ba-p/2386945</guid>
      <dc:creator>ChandaniPrajapati</dc:creator>
      <dc:date>2021-05-26T12:56:03Z</dc:date>
    </item>
    <item>
      <title>Microsoft Identity Platform community call – May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-identity-platform-community-call-may-2021/ba-p/2381364</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ApTriggeredStep-up.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283764i1BAE6D95D7017ED4/image-size/large?v=v2&amp;amp;px=999" role="button" title="ApTriggeredStep-up.png" alt="ApTriggeredStep-up.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Call Summary:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This month’s in-depth topic:&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG&gt;Using Conditional Access Auth Context in your app for step-up authentication&lt;/STRONG&gt;&lt;SPAN&gt;.&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;Use the Azure AD Conditional access engine’s new Auth Context feature to trigger a demand for step-up authentication from within your application and services. Developers have often wondered if they were to only, selectively demand enhanced stronger authentication like MFA from their end users from within their applications.&amp;nbsp; This capability helps developers build low friction user experiences for some parts of their application, while keeping access to more secure operations and data behind stronger authentication controls. &amp;nbsp; Learn how to enable these scenarios in this session.&amp;nbsp; Microsoft Program Manager presenters – Caleb Baker and Kalyan Krishna.&amp;nbsp; This session was delivered and recorded on May 20, 2021.&amp;nbsp; Live and in chat Q&amp;amp;A throughout call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="video-embed-center video-embed"&gt;&lt;LI-VIDEO vid="https://youtu.be/_iO7CfoktTY" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://techcommunity.microsoft.com/gxcuf89792/attachments/gxcuf89792/Microsoft365PnPBlog/298/1/Use%20Conditional%20Access%20Auth%20Context%20in%20your%20app%20for%20step-up%20authentication.pptx" target="_self"&gt;Deck&lt;/A&gt;&amp;nbsp;&lt;/STRONG&gt;for this call&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Tech Community - &lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/azure-active-directory-identity/granular-conditional-access-for-sensitive-data-and-actions/ba-p/1751775" target="_blank" rel="noopener"&gt;Granular Conditional Access for sensitive data and actions&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Sample -&amp;nbsp; &lt;/SPAN&gt;&lt;A href="https://github.com/Azure-Samples/ms-identity-ca-auth-context/blob/main/README.md" target="_blank" rel="noopener"&gt;Use the Conditional Access auth context to perform step-up authentication for high-privilege operations in a Web API&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/developer-guide-conditional-access-authentication-context" target="_blank" rel="noopener"&gt;Developers’ guide to Conditional Access authentication context&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/authenticationcontextclassreference?view=graph-rest-beta" target="_blank" rel="noopener"&gt;MS Graph - &lt;/A&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/authenticationcontextclassreference?view=graph-rest-beta" target="_blank" rel="noopener"&gt;authenticationContextClassReference&lt;/A&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/authenticationcontextclassreference?view=graph-rest-beta" target="_blank" rel="noopener"&gt; resource type&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/claims-challenge" target="_blank" rel="noopener"&gt;Claims challenges, claims requests, and client capabilities&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/" target="_blank" rel="noopener"&gt;Microsoft identity platform documentation&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-overview" target="_blank" rel="noopener"&gt;Microsoft Authentication Libraries (MSAL)&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/sample-v2-code" target="_blank" rel="noopener"&gt;Microsoft identity platform code samples&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/security/zero-trust/identity-developer" target="_blank" rel="noopener"&gt;Building Zero Trust ready apps with the Microsoft identity platform&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/azure/active-directory/conditional-access/overview" target="_blank" rel="noopener"&gt;Introduction to Conditional Access&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/azure/active-directory/conditional-access/concept-conditional-access-cloud-apps" target="_blank" rel="noopener"&gt;Create a Conditional access Policy&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation" target="_blank" rel="noopener"&gt;Continuous Access Evaluation&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Submit your feedback and topic suggestions -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/IDDevCommunityCallSurvey" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/IDDevCommunityCallSurvey&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Mark your calendar.&amp;nbsp; The next Identity Platform Community Call is on June 17th&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Stay connected:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkdvcDJHcGdzM2VIUkwzU3lOYkJaVFEzM0Q2QXxBQ3Jtc0ttM1NyaTQ2RjFSOFh3a0l4c1pralBRQVI1bDNSQ2RaVm9OdzJrRkdtV1Z1SW5VdmdwamNNLTBEaFdaSmZMc0lQNzdRZ2dDYV9WZVF1ZVIwc2dPQTZBRUZ3b3hoWUVJdDJoQWZUcWdCR2JKdmwtUU43RQ&amp;amp;q=https%3A%2F%2Ftwitter.com%2Fmicrosoft365dev" target="_blank" rel="noopener nofollow noreferrer"&gt;https://twitter.com/microsoft365dev&lt;/A&gt;&lt;SPAN&gt;​ and&amp;nbsp;&lt;/SPAN&gt;@azuread&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;YouTube&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqa3RzWmpNU2VPRmh6dXBad3hKMmxySjBaQVl6Z3xBQ3Jtc0trVjYyeXZlSXZiX0JydHlyeHdqcTRSUnczX2xrVDloOWhzeGVCYXFibjBiM1VpXzFOd2dZX2dJdlNYQWYtekcyWXZOTHp3VkdoU2JsdmNVQ3dtdkw2ZHF0cVdCS29TQmJ1Z3hoVmJyd3JtYlFxUW92WQ&amp;amp;q=https%3A%2F%2Faka.ms%2FM365DevYouTube" target="_blank" rel="noopener nofollow noreferrer"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Blog&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Recurrent Invite&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 May 2021 13:49:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-identity-platform-community-call-may-2021/ba-p/2381364</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-26T13:49:58Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Weekly - Episode 128</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-128/ba-p/2381362</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumb-Ep128.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/283271iB4A74142455E1C5E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumb-Ep128.png" alt="Thumb-Ep128.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this installment of the weekly discussion revolving around the latest news and topics on&amp;nbsp;&lt;SPAN&gt;Microsoft 365&lt;/SPAN&gt;, hosts –&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt;&amp;nbsp;(Microsoft) | @vesajuvonen,&amp;nbsp;&lt;A href="http://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt;&amp;nbsp;(Microsoft) | @waldekm are joined by US-based, Microsoft Senior Product Designer on the SharePoint Team, &lt;A href="http://twitter.com/kswansondesign" target="_blank" rel="noopener"&gt;Katie Swanson&lt;/A&gt; (Microsoft) | @kswansondesign.&amp;nbsp;&amp;nbsp; Topics discussed in this session include:&amp;nbsp; The art of the possible, the design process and baking in customer feedback, accessibility testing, evolution of and possible future updates to SharePoint look book, diversity and inclusion in the PnP community and in IT generally. &amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft and the Community delivered 16 articles in the last week!&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Please remember to keep on providing us feedback on how we can help on this journey. We always welcome feedback on making the community more inclusive and diverse.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;LI-VIDEO vid="https://youtu.be/g04G-31-scA" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;SPAN style="font-family: inherit;"&gt;This episode was recorded on Monday, May 24, 2021.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Video at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube channel.&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Podcast format at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://pnpweekly.podbean.com.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;These videos and podcasts are published each week and are intended to be roughly 45 - 60 minutes in length.&amp;nbsp; Please do give us feedback on this video and podcast series and also do let us know if you have done something cool/useful so that we can cover that in the next weekly summary! The easiest way to let us know is to share your work on Twitter and add the hashtag&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/search?q=%23pnpweekly" target="_self" rel="nofollow noopener noreferrer"&gt;#PnPWeekly&lt;/A&gt;. We are always on the lookout for refreshingly new content. “&lt;EM&gt;Sharing is caring!”&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are all the links and people mentioned in this recording. Thanks, everyone for your contributions to the community!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Events:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;May 25-27, 2021-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mybuild.microsoft.com/?WT.mc_id=m365-29364-wmastyka" target="_self" rel="noopener noreferrer"&gt;Microsoft Build 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;June 1-2, 2021 -&amp;nbsp;&lt;A href="https://www.sharepointeurope.com/conference/schedule/" target="_blank" rel="noopener"&gt;European SharePoint Conference 2021 - Online&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;August 9-11, 2021 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.collabsummit.org/" target="_blank" rel="noopener nofollow noreferrer"&gt;North American Collaboration Summit&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;Register with coupon code "PnP" for 25% off from the prize at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://nacs.ticketspice.com/nacs2021" href="https://nacs.ticketspice.com/nacs2021" target="_blank" rel="noreferrer noopener nofollow"&gt;https://nacs.ticketspice.com/nacs2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-teams-blog/rebrand-apps-to-your-own-organization-s-branding-with-app/ba-p/2376296?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Rebrand apps to your own organization's branding with App customization in Teams&lt;/A&gt; - Vaibhav Agarwal (Microsoft)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/best-practices-for-using-global-navigation-in-the-sharepoint-app/ba-p/2361916?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Best practices for using global navigation in the SharePoint app bar&lt;/A&gt; - &lt;A href="https://twitter.com/Meltorac" target="_blank" rel="noopener"&gt;Melissa Torres&lt;/A&gt; (Microsoft) |&amp;nbsp;@Meltorac&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/publish-your-apps-to-the-microsoft-teams-store/?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Publish your apps to the Microsoft Teams store&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/announcing-new-file-components-msal-2-provider-and-sharepoint-framework-library-in-microsoft-graph-toolkit/?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Announcing new file components, MSAL 2 Provider, and SharePoint Framework library in Microsoft Graph Toolkit&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Community articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-garry-trinder/ba-p/2377740?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Garry Trinder&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/garrytrinder" target="_blank" rel="noopener"&gt;Garry Trinder&lt;/A&gt; (CPS) |&amp;nbsp;&lt;LI-USER uid="716447"&gt;&lt;/LI-USER&gt; &amp;amp; &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@LuiseFreese&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/do-you-need-ngrok-to-develop-microsoft-teams-apps/ba-p/2353206?WT.mc_id=m365-29364-wmastyka" target="_blank" rel="noopener"&gt;Do you need ngrok to develop Microsoft Teams apps?&lt;/A&gt; - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) |&amp;nbsp;@Bob1German&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://n8d.at/htwoo-ui-launched-fluent-design-in-html-and-css/" target="_blank" rel="noopener"&gt;HTWOO UI launched – Fluent Design in HTML and CSS&lt;/A&gt; - &lt;A href="https://twitter.com/StfBauer" target="_blank" rel="noopener"&gt;Stefan Bauer&lt;/A&gt; (N8D) |&amp;nbsp;@StfBauer&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cloudappie.nl/search-flows-connections/" target="_blank" rel="noopener"&gt;Find Power Automate Flows that are connected to your site or list&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/appieschot" target="_blank" rel="noopener"&gt;Albert-Jan Schot&lt;/A&gt; (Portiva) |&amp;nbsp;@appieschot&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.sharepointsiren.com/2021/05/power-apps-validation-and-json-parsing-with-regex/" target="_blank" rel="noopener"&gt;Power Apps Validation and JSON Parsing with Regex&lt;/A&gt; -&amp;nbsp; &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.sharepointsiren.com/2021/05/power-automate-sharepoint-get-column-changes/" target="_blank" rel="noopener"&gt;Power Automate SharePoint Get Column Changes&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://camerondwyer.com/2021/05/17/problems-restricting-sharepoint-people-column-to-a-specific-group/" target="_blank" rel="noopener"&gt;Problems Restricting SharePoint People Column to a Specific Group&lt;/A&gt; - &lt;A href="https://twitter.com/CameronDwyer" target="_blank" rel="noopener"&gt;Cameron Dwyer&lt;/A&gt; (OnePlace Solutions) |&amp;nbsp;@CameronDwyer&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://blog.mastykarz.nl/preconsent-multiple-scopes-microsoft-graph-toolkit/" target="_blank" rel="noopener"&gt;Preconsent multiple scopes with Microsoft Graph Toolkit&lt;/A&gt; - &lt;A href="https://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt; (Microsoft) |&amp;nbsp;@waldekm&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt; &lt;A href="https://blog.mastykarz.nl/publish-sharepoint-framework-library-packages/" target="_blank" rel="noopener"&gt;The right way to publish SharePoint Framework library packages&lt;/A&gt; - &lt;A href="https://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt; (Microsoft) |&amp;nbsp;@waldekm&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=1FRIDCJPXOQ" target="_blank" rel="noopener"&gt;Episode #155 - Microsoft Graph Toolkit Agenda Component&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;-&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@PaoloPia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://regarding365.com/pro-tips-what-to-do-when-you-dont-feel-heard-at-work-dd841bf47cd1" target="_blank" rel="noopener"&gt;Pro tips: What to do when you don’t feel heard at work&lt;/A&gt; - &lt;A href="https://twitter.com/sarahhaase" target="_blank" rel="noopener"&gt;Sarah Haase&lt;/A&gt;&amp;nbsp;| @sarahhaase,&amp;nbsp;&lt;A href="https://twitter.com/AntonioMaio2" target="_blank" rel="noopener"&gt;Antonio Maio&lt;/A&gt;&amp;nbsp;| @AntonioMaio2 and&amp;nbsp;&lt;A href="https://twitter.com/mikemaadarani" target="_blank" rel="noopener"&gt;Mike Maadarani&lt;/A&gt;&amp;nbsp;| @mikemaadarani&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://joannecklein.com/2021/05/18/microsoft-365-fiscal-year-retention/" target="_blank" rel="noopener"&gt;Microsoft 365 Fiscal Year Retention&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/JoanneCKlein" target="_blank" rel="noopener"&gt;Joanne C Klein&lt;/A&gt; |&amp;nbsp;@JoanneCKlein&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/powerplatform-samples" target="_self" rel="noopener noreferrer"&gt;Power Platform Sample Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for finding easily samples from the GitHub - contributions from the community are welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;PnP Sharing is Caring initiative&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Getting started guidance and training for using GitHub and contributing to the community&lt;/LI&gt;
&lt;LI&gt;Want to ask a question or in general engage with the community - Add a note in the Microsoft 365 PnP Community hub at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out all the great community calls, SDKs, and tooling for Microsoft 365 from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for Microsoft 365 engineering or visitors – please let us know. We will do our best to address your requests or questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Sharing is caring!"&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 25 May 2021 09:35:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-128/ba-p/2381362</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-25T09:35:30Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Community Spotlight: Garry Trinder</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-garry-trinder/ba-p/2377740</link>
      <description>&lt;P aria-level="1"&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="garrytrinder.jpg" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/282835i34D870B2B40127D7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="garrytrinder.jpg" alt="garrytrinder.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:true,&amp;quot;134233118&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Which community project do you maintain?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;CLI for Microsoft 365&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;How does it help people?&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;CLI for Microsoft 365 is a cross platform, command line interface that helps developers and administrators manage their Microsoft 365 tenants and SharePoint Framework projects, using any operating system and any command line shell.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What have you been working on lately?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I have recently been working on making the CLI more accessible to new users and new contributors to the project.&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;We recently released our public Docker images, Docker enables us to bundle a pre-configured version of CLI for Microsoft 365 together with all its required dependencies into a publicly downloadable image, which you can then use to create an isolated environment on your local machine, called a container, where you can use the CLI for Microsoft 365 without cluttering your machine with dependencies, and all performed by executing just a single command.&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;One of the difficulties of getting started with a new project is setting up the development environment, installing dependencies and hoping that you've followed all the instructions correctly. We know that this can be time consuming but also put off potential contributors to the project, so we've looked at ways in which we can make contributor onboarding as simple as possible, so we have provided a definition for creating an instant development environment that contains all the dependencies needed to contribute to CLI for Microsoft 365, whether that is making code changes or making an update to the documentation, we have you covered. We also automate the initial configuration steps for you when the development environment is being created, so we run npm install to install the necessary packages from npm, npm run build to build the CLI source and create a symbolic link by running npm link to ensure that when you execute m365 it uses the code in the src directory. You can use our development environment in the cloud using GitHub Codespaces or locally using Visual Studio Code Remote Development Containers.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What do you do at work?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;At work I am a Solutions Architect and Development Team lead for CPS, a Microsoft Gold Partner. I work primarily with Microsoft 365 and Microsoft Azure, in recent years I have been mainly focused on integration and automation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Why are you a part of the M365 community?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I believe that by sharing our own knowledge and experiences, we can improve the quality of the solutions created by the community. I have been privileged to have been part of the community for many years and I have directly benefited from others sharing their knowledge with me, it is this that drives me to contribute to the community so that others can benefit in the way that I have.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What was you first community contribution?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I submitted a pull request to add a new command to CLI for Microsoft 365 which enables users to delete a Microsoft Teams channel.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;One tip for someone who’d like to start contributing&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Don't be afraid to ask questions, the Microsoft 365 community is incredibly welcoming and everyone wants to help each other, there are no stupid questions.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 22 May 2021 11:54:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-garry-trinder/ba-p/2377740</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-22T11:54:37Z</dc:date>
    </item>
    <item>
      <title>Re: Improving the Page Properties web part</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/improving-the-page-properties-web-part/bc-p/2375881#M293</link>
      <description>&lt;P&gt;Do you think it would be possible to integrate SharePoint Multiline Text Fields to your extented Page Property WebPart?&lt;/P&gt;&lt;P&gt;The Standard Page Property Webparts does not allow to display Multiline Text Columns...&lt;/P&gt;</description>
      <pubDate>Fri, 21 May 2021 14:49:27 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/improving-the-page-properties-web-part/bc-p/2375881#M293</guid>
      <dc:creator>Karl-Gerd Schneider</dc:creator>
      <dc:date>2021-05-21T14:49:27Z</dc:date>
    </item>
    <item>
      <title>SharePoint Framework Community Call – 20th of May, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-20th-of-may-2021/ba-p/2373087</link>
      <description>&lt;P&gt;SharePoint Framework Special Interest Group (SIG) bi-weekly community call recording from May 20th is now available from the Microsoft 365 Community YouTube channel at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt;. You can use SharePoint Framework for building solutions for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Microsoft Teams&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;SharePoint&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Online.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/cAwKgUNR9jU" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call summary:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Preview the new &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt; co-developed by Microsoft Teams and Sharepoint engineering.&amp;nbsp;&amp;nbsp; Register now for May/June trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;.&amp;nbsp; View the &lt;A href="https://aka.ms/modernworkbuildsessions" target="_blank" rel="noopener"&gt;Microsoft Build sessions guide&lt;/A&gt; (Modern Work Digital Brochure) – Keynotes, breakouts, on-demand, roundtables and 1:1 consultations.&amp;nbsp; PnPjs Client-Side Libraries v2.5.0 GA and CLI for Microsoft 365 v3.10.0 preview were released this month.&amp;nbsp; &amp;nbsp;Also latest updates on SPFx roadmap (v1.13.0 Preview in summer) and Viva Connections extensibility shared.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Four new/updated &lt;STRONG&gt;PnP SPFx web part samples delivered&lt;/STRONG&gt; in last 2 weeks.&amp;nbsp; Great work!&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Latest project updates include:&amp;nbsp;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(&lt;STRONG&gt;Bold&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;indicates update from previous report 2 weeks ago)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;PnP Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Current version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;SharePoint Framework (SPFx)&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v1.12.1&amp;nbsp;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v1.13.0 Preview in summer &lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnPjs Client-Side Libraries&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v2.5.0&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v3.0.0 developments underway &lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;CLI for Microsoft 365&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;v3.9.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;&lt;STRONG&gt;v3.10.0 preview released&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.7.0, v3.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.7.0 (SPFx v1.11), v3.1.0 (SPFx v1.12.1)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Property Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.6.0, v3.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.6.0 (SPFx v1.11), v3.1.0 (SPFx v1.12.1)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;PnP SPFx Generator&lt;/TD&gt;
&lt;TD&gt;v1.16.0&lt;/TD&gt;
&lt;TD&gt;Angular 11 support&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnP Modern Search&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v3.19 and v4.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;April and March 20th&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The host of this call is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) @mediocrebowler.&amp;nbsp; Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210520-together-mode.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/282489iB008DEDCCE8B8950/image-size/large?v=v2&amp;amp;px=999" role="button" title="210520-together-mode.gif" alt="210520-together-mode.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks everybody for being part of the Community and helping making things happen. You are absolutely awesome!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – June&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xCOEtTWFJSREg2UFY2NkpPUk5GNk9YVS4u" target="_blank" rel="noopener"&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Teams Dev - June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Using Microsoft Graph Toolkit to easily access files in Sites and in OneDrive&lt;/STRONG&gt; – a.k.a. OneDrive finder - find and explore OneDrives, folders and files using Microsoft Graph Toolkit.&amp;nbsp; Use Graph queries to get hostname, Sites on hostname, OneDrive item-id, and Sites Root item-id.&amp;nbsp; Use 2 beta controls from MGT for search – Mgt-File-List and MGT-File.&amp;nbsp; Refine search results by file extension, items on page, etc.&amp;nbsp; Display style – light/dark mode.&amp;nbsp; Recommendations on managing file list cache and permissions.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Building Microsoft Teams user bulk membership update tool with SPFx and Microsoft Graph&lt;/STRONG&gt; – a.k.a. the Teams Membership Updater tool – a web part for Teams’ site owners that pulls member updates from a selected CSV file.&amp;nbsp; Upon load, the web part calls Graph to pull the list of Teams you are a member/owner.&amp;nbsp; &amp;nbsp;Uses Graph batch functions to remove orphaned members and then to add new members.&amp;nbsp; &amp;nbsp;Uses SPFx Reusable controls and react-papaparse. &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Building Microsoft Graph get client web part with latest Graph Client SDK&lt;/STRONG&gt; – use Microsoft Graph Toolkit SharePoint provider to access and leverage new functionality of Graph JS SDK in SPFx. &amp;nbsp;Web part sample developed using React Framework that showcases how to use the latest&amp;nbsp;microsoft-graph-client in SPFx.&amp;nbsp; The client enables throttling management (no 429s), Chaos management, uses latest types, getting RAW responses from API, Content-Type is already set for PUT, and a lot more!&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;SPFx extension samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-extensions&lt;/A&gt;)&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@2F5B53C90739358292524B2CDF7F85DA/images/emoticons/cry_40x40.gif" alt=":cry:" title=":cry:" /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;SPFx web part samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-webparts&lt;/A&gt;)&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@D0941B27F467CBA2580A8C085A80A0CF/images/emoticons/happyface_40x40.gif" alt=":happyface:" title=":happyface:" /&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-list-items-menu-sp2019" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;List Items Menu (SP2019 Version)&lt;/STRONG&gt;&lt;/A&gt; - &lt;A href="http://twitter.com/joaojmendes" target="_blank" rel="noopener"&gt;João Mendes&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="442957"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-news-banner" target="_blank" rel="noopener"&gt;News Banner&lt;/A&gt;&lt;/STRONG&gt; - &lt;A href="http://twitter.com/joaojmendes" target="_blank" rel="noopener"&gt;João Mendes&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="442957"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-list-form" target="_blank" rel="noopener"&gt;List Form&lt;/A&gt; &lt;/STRONG&gt;- Ari Gunawan&amp;nbsp;|&amp;nbsp;AriGunawan&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-calendar" target="_blank" rel="noopener"&gt;Calendar&lt;/A&gt; &lt;/STRONG&gt;- &lt;A href="http://twitter.com/acupof_dev" target="_blank" rel="noopener"&gt;Eli H. Schei&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@acupof_dev&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;NEW Issue Templates! &lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Thank you for your great work.&amp;nbsp; Samples are often showcased in Demos.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Agenda items:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Latest updates on SharePoint Framework -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener nofollow noreferrer"&gt;Vesa Juvonen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @vesajuvonen –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=338" target="_self"&gt;5:38&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnPjs Client-Side Libraries -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/jfj1997" target="_self" rel="nofollow noreferrer noopener"&gt;Julie Turner&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Sympraxis Consulting) | @jfj1997 –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=567" target="_self"&gt;9:27&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;CLI for Microsoft 365 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=689" target="_self"&gt;11:29&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Controls -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=748" target="_self"&gt;12:28&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Modern Search -&amp;nbsp;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=804" target="_self"&gt;13:24&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/bernierh" target="_blank" rel="noopener nofollow noreferrer"&gt;Hugo Bernier&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Tahoe Ninjas) | @bernierh&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=870" target="_self"&gt;14:30&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Using Microsoft Graph Toolkit to easily access files in Sites and in OneDrive – &lt;A href="http://twitter.com/aaclage" target="_blank" rel="noopener"&gt;André Lage&lt;/A&gt; (Datalynx AG) | @aaclage&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;– &lt;A href="https://youtu.be/cAwKgUNR9jU?t=1107" target="_self"&gt;18:27&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Building Microsoft Teams user bulk membership update tool with SPFx and Microsoft Graph – &lt;A href="http://twitter.com/techienickb" target="_blank" rel="noopener"&gt;Nick Brown&lt;/A&gt; (Cardiff University) | @techienickb&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;– &lt;A href="https://youtu.be/cAwKgUNR9jU?t=2046" target="_self"&gt;34:06&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Building Microsoft Graph get client web part with latest Graph Client SDK – &lt;A href="http://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt; (Microsoft) | @sebastienlevert&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt; –&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;A href="https://youtu.be/cAwKgUNR9jU?t=2850" target="_self"&gt;47:30&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90ksbJaG1P1CIlwi2?e=iuz33z" target="_blank" rel="nofollow noopener noreferrer"&gt;The presentation used for this community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Article - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/navigate-onedrive-data-with-microsoft-graph-and-mgt-file-list/ba-p/2296730" target="_blank" rel="noopener"&gt;Navigate OneDrive data with Microsoft Graph and Mgt-File-List Beta version&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sample – &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-onedrive-finder" target="_blank" rel="noopener"&gt;OneDrive finder&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sample - &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-teams-membership-updater" target="_blank" rel="noopener"&gt;Teams Membership Updater&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/json-batching" target="_blank" rel="noopener"&gt;Combine multiple requests in one HTTP call using JSON batching&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Article - &lt;A href="https://www.sebastienlevert.com/2021/04/18/latest-microsoft-graph-client-spfx/" target="_blank" rel="noopener"&gt;Using the latest microsoft-graph-client in SPFx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Library - &lt;A href="https://github.com/microsoftgraph/msgraph-sdk-javascript" target="_blank" rel="noopener"&gt;Microsoft Graph JavaScript Client Library&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sample - &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-graph-mgt-client" target="_blank" rel="noopener"&gt;Graph MGT Client&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Gallery -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 127 with MVP guest &lt;A href="http://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;Rick Van Rousselt&lt;/A&gt; (Advantive)&amp;nbsp;| @RickVanRousselt | &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-127-rick-van-rousselt/ba-p/2361251" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-127-17th-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/modernworkbuildsessions" target="_blank" rel="noopener"&gt;Microsoft Build sessions guide&lt;/A&gt; (Modern Work Digital Brochure) - aka.ms/modernworkbuildsessions&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;SharePoint Framework - v1.12.1 npm install –g&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/41501" target="_blank" rel="noopener"&gt;@microsoft&lt;/A&gt;/generator-sharepoint@next&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/blogs/cli-microsoft-365-3/" target="_blank" rel="noopener noreferrer"&gt;CLI for Microsoft 365 v3&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/codetour" target="_blank" rel="noopener noreferrer"&gt;CodeTour&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;Sharing is Caring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/sharing-is-caring&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;Tools -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://microsoft-search.github.io/pnp-modern-search/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnP Modern Search v4&lt;/A&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;&amp;nbsp; |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/pnp-search&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;M365 PnP site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-starter-kit/tree/v2" target="_blank" rel="noopener noreferrer"&gt;SharePoint Starter Kit v2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Blog: "&lt;A href="https://aka.ms/mgtLap" target="_blank" rel="noopener noreferrer"&gt;A Lap Around Microsoft Graph Toolkit" blog series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team model with new community leads&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365-community-docs" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community Content&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(non-Dev docs)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx web part samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx extension samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpjs/" target="_blank" rel="noopener noreferrer"&gt;GitHub PnPjs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Tutorials&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(12 videos)&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Extensions&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(6 videos)&lt;/LI&gt;
&lt;LI&gt;Docs -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/sharepoint/dev/training/training/?wt.mc_id=YT_CCrecording" target="_blank" rel="noopener noreferrer"&gt;Tutorials and training material for SharePoint Development&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-training" target="_blank" rel="noopener noreferrer"&gt;SPFX Training Package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;SPFx Web Parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;SPFx Extensions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-library-components" target="_blank" rel="noopener noreferrer"&gt;SPFx Library Components&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Documentation -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnp.github.io/pnpjs/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnPjs v2 documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevTraining" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer training&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/O365DevProgram" target="_blank" rel="noopener noreferrer"&gt;Office 365 Developer Program&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noreferrer noopener"&gt;Latest documentation on SharePoint Framework&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Found an issue with SharePoint Dev? - please let us know at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-issues" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/spdev-issues&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-property-controls/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable web part property controls&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-controls-react/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable react controls for SharePoint Framework solutions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://dev.office.com/blogs/webcast-reusable-controls-for-your-sharepoint-framework-solutions" target="_blank" rel="noreferrer noopener"&gt;Reusable controls webcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/office365-cli/" target="_blank" rel="noreferrer noopener nofollow"&gt;Office 365 CLI&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/generator-spfx" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx Yeoman Generator&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Extends the out-of-the-box experience with open-source community capabilities&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-uservoice" target="_blank" rel="noreferrer noopener"&gt;SharePoint Dev UserVoice&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for new feature requests&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Other mentioned topics:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-docs/issues" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev issue list&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming calls | Recurrent invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;June 3&lt;SUP&gt;rd&amp;nbsp;&lt;/SUP&gt;at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;June 9&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;June 10&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;June 15&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;June 16&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;June 17th at 9:00 am PDT |&lt;A style="background-color: #ffffff;" href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PnP SharePoint Framework Special Interest Group bi-weekly calls are targeted at anyone who is interested in the JavaScript-based development towards Microsoft Teams, SharePoint Online, and also on-premises. SIG calls are used for the following objectives.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SharePoint Framework engineering update from Microsoft&lt;/LI&gt;
&lt;LI&gt;Talk about PnP JavaScript Core libraries&lt;/LI&gt;
&lt;LI&gt;Office 365 CLI Updates&lt;/LI&gt;
&lt;LI&gt;SPFx reusable controls&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Yeoman generator&lt;/LI&gt;
&lt;LI&gt;Share code samples and best practices&lt;/LI&gt;
&lt;LI&gt;Possible engineering asks for the field - input, feedback, and suggestions&lt;/LI&gt;
&lt;LI&gt;Cover any open questions on the client-side development&lt;/LI&gt;
&lt;LI&gt;Demonstrate SharePoint Framework in practice in Microsoft Teams or SharePoint context&lt;/LI&gt;
&lt;LI&gt;You can download a recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noreferrer noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;. Welcome and join the discussion!&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 21st of May 2021&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 21 May 2021 09:44:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-20th-of-may-2021/ba-p/2373087</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-21T09:44:47Z</dc:date>
    </item>
    <item>
      <title>Do you need ngrok to develop Microsoft Teams apps?</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/do-you-need-ngrok-to-develop-microsoft-teams-apps/ba-p/2353206</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="ngrok-signpost.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280648i7FD7BC64F1633AE9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-signpost.png" alt="ngrok-signpost.png" /&gt;&lt;/span&gt;If you've started down the path of developing applications for Microsoft Teams, you may have seen a tool called&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.ngrok.com/" target="_blank" rel="nofollow noopener"&gt;ngrok&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;as a prerequisite in various tutorials and lab exercises. It's also integrated with a number of tools such as the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/toolkit/visual-studio-code-overview?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Microsoft Teams Toolkit&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/tutorials/get-started-yeoman?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;yo teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;generator; even the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-debug-emulator?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Bot Framework Emulator&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;has an ngrok option.&lt;/P&gt;
&lt;P&gt;This article will explain what ngrok is, why it's useful, and what to do instead if you or your company are uncomfortable using it. Also, please check out the companion video for this article, which includes live demos of Teams development with and without ngrok.&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://www.youtube.com/watch?v=A5U-3o-mHD0" align="center" size="small" width="200" height="113" uploading="false" thumbnail="http://i.ytimg.com/vi/A5U-3o-mHD0/hqdefault.jpg" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-grokking-ngrok" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#grokking-ngrok" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Grokking ngrok&lt;/H2&gt;
&lt;P&gt;First the shocking truth: Microsoft Teams applications don't run in Teams. OK maybe it's not shocking, but it's true. Teams applications are made up of regular web pages and web services that you can host anywhere on the Internet. Teams tabs and task modules (dialog boxes) are just embedded web pages; bots and messaging extensions are web services. This allows developers to use their choice of web development stack, and to reuse code and skills.&lt;/P&gt;
&lt;P&gt;Web developers typically host a small web server on the same computer where they edit their code to run and debug their applications. For Microsoft Teams developers in particular, ngrok is very handy in this situation. Here's why:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;ngrok provides the encryption needed for https, which is required for Teams applications. It's set up using a trusted TLS certificate so it just works immediately in any web browser.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;ngrok provides a tunnel from the Internet to your local computer which can accept incoming requests that are normally blocked by an Internet firewall. The requests in this case are HTTP POSTs that come from the Azure Bot Service. Though tunneling is not required per se, there has to be some way for the Azure Bot Service to send requests to the application.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;ngrok provides name resolution with a DNS names ending in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ngrok.io&lt;/CODE&gt;, so it's easy to find the public side of the Internet tunnel.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;ngrok makes mobile device testing easier since any Internet-connected phone or tablet can reach your app via the tunnel. There's no need to mess with the the phone's network connections; it just works.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;These conveniences have made ngrok the darling of many Microsoft Teams developers. It lets them compile, run, and debug software locally without worrying about any of these details.&lt;/P&gt;
&lt;P&gt;The tunneling part, however, lacks the guard rails expected by many IT professionals, especially if they're managing a traditional corporate network that relies on a shared firewall or proxy server for security. While ngrok only provides access to the local computer where it's run, an insider "bad actor" could launch attacks from such a machine. For that reason, some IT departments block all access to ngrok.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Many colleagues have suggested other tunneling applications such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://blog.botframework.com/2019/04/16/debugging-your-locally-hosted-v4-bot-using-azure-relays/" target="_blank" rel="nofollow noopener"&gt;Azure Relay&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://localtunnel.github.io/www/" target="_blank" rel="nofollow noopener"&gt;localtunnel&lt;/A&gt;. While they may do the job, they still open a tunnel from the public Internet to your development computer, and thus the same security concerns usually arise. This article will only consider approaches that don't involve tunneling from the Internet.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A id="user-content-tunneling-explained" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#tunneling-explained" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Tunneling explained&lt;/H2&gt;
&lt;P&gt;Most computers that are connected to the Internet aren't connected directly. Network traffic passes through some kind of firewall or NAT router to reach the actual Internet. The firewall allows outgoing requests to servers on the Internet but blocks all incoming requests. This is largely a security measure, but it has other advantages as well.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ngrok-without-ngrok-2.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280649i3FA96F5C6738587F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-without-ngrok-2.png" alt="ngrok-without-ngrok-2.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;A typical web developer runs some kind of web server on their local computer. They can access that web server using the hostname&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost&lt;/CODE&gt;, which routes messages through a "loopback" service instead of sending them out on the network. As you can see in the picture, these messages don't go through the Internet at all.&lt;/P&gt;
&lt;P&gt;But what if, in order to test the application, it needs to get requests from the Internet? Bots are an example of this; the requests come from the Azure Bot service in the cloud, not from a local web browser or other client program. Another place this comes up is when implementing webhooks such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/webhooks?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Microsoft Graph change notifications&lt;/A&gt;; the notifications are HTTP(s) requests that come from the Internet.&lt;/P&gt;
&lt;P&gt;The problem is these incoming requests are normally blocked by the firewall. If you've ever opened a port on your home router to allow a gadget to receive incoming connections, this is the same situation.&lt;/P&gt;
&lt;P&gt;With ngrok running, the incoming requests go through the ngrok service and into your locally running copy of the ngrok application. The ngrok application calls the local server, allowing the developer to run and debug the web server locally.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_1" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ngrok-with-ngrok.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280650i239B3FDE8859CD96/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-with-ngrok.png" alt="ngrok-with-ngrok.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In the case of Teams development, tabs and task modules only require a local loopback connection, whereas bots and messaging extensions have to handle incoming requests from the Internet. Each is explained in more detail later in this article.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-using-ngrok" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#using-ngrok" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Using ngrok&lt;/H2&gt;
&lt;P&gt;ngrok is a command line program that works on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://ngrok.com/download" target="_blank" rel="nofollow noopener"&gt;Windows, Mac OS, Linux and FreeBSD&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Suppose your local web server is at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://localhost:3978/" target="_blank" rel="nofollow noopener"&gt;http://localhost:3978&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(the default for bots). Then run this ngrok command line:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-shell position-relative"&gt;
&lt;PRE&gt;ngrok http 3978&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;You will then see a screen like this:&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_2" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ngrok-screenshot.png" style="width: 972px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280651iF6EDF6ADA709D5F7/image-size/large?v=v2&amp;amp;px=999" role="button" title="ngrok-screenshot.png" alt="ngrok-screenshot.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The "Forwarding" lines show what's happening. Requests arriving at http://(something).ngrok.io or https://(something).ngrok.io will be forwarded to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://localhost:3978/" target="_blank" rel="nofollow noopener"&gt;http://localhost:3978&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;where your bot code is running. At this point you would put the "something.ngrok.io" address into your Azure bot configuration, Teams app manifest etc. as the location, and leave the command running while you debug your application.&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-ngrok-url" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#ngrok-url" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;ngrok url&lt;/H3&gt;
&lt;P&gt;The external ngrok url will always look like this:&lt;/P&gt;
&lt;DIV class="snippet-clipboard-content position-relative"&gt;
&lt;PRE&gt;&lt;CODE&gt;https://(something).ngrok.io
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;With the free ngrok service, the value of (something) is different every time you run ngrok, and you're limited to an 8-hour session. Every time you get a new hostname you need to update your configuration; depending on what you're doing and how many places you had to enter the hostname, this can be a chore. The paid plans allow you to reserve names that will persist, so you can just start ngrok and and you're ready to go.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Hint: If you're doing a tutorial using the free version of ngrok, make a note of every place you use the ngrok URL. That way you can easily remember where to update it when it changes.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The example above assumes that your local server is running http on the specified port. If your local server is running https you need a different command or it won't connect:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-shell position-relative"&gt;
&lt;PRE&gt;ngrok http https://localhost:3978&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H3&gt;&lt;A id="user-content-host-header-rewriting" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#host-header-rewriting" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Host header rewriting&lt;/H3&gt;
&lt;P&gt;The HTTP(s) protocol includes a header called&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Host&lt;/CODE&gt;, which should contain the host (domain) name and port of the web server. This is used for routing requests to the right server, and for allowing a single web server to serve multiple web sites and services.&lt;/P&gt;
&lt;P&gt;If your debug server ignores the host header, you can ignore this section. But some servers will require the header to match the host name, such as&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost:3978&lt;/CODE&gt;. The challenge is that if the request was sent to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;12345.ngrok.io&lt;/CODE&gt;, the originator will probably put that in the host header when the server is expecting&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost:3978&lt;/CODE&gt;. To handle this, ngrok provides a command line argument that replaces the host headers with the local host name. Simply add the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;-host-header&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;command switch to enable this.&lt;/P&gt;
&lt;P&gt;For example,&lt;/P&gt;
&lt;DIV class="highlight highlight-source-shell position-relative"&gt;
&lt;PRE&gt;ngrok http -host-header=localhost:3978 3978&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If you see the messages go through to your local web server but it doesn't respond, it may be expecting a specific host header.&lt;/P&gt;
&lt;P&gt;All the command options are detailed in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://ngrok.com/docs" target="_blank" rel="nofollow noopener"&gt;ngrok documentation&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-network-tracing" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#network-tracing" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Network tracing&lt;/H3&gt;
&lt;P&gt;You might notice that the ngrok screen shows a trace of requests that went through the tunnel; in this case they're HTTP POST requests from the Azure Bot Service, and the local server returned a 200 (OK) response. This is handy because you can see a 500 error from your server code by just glancing at the ngrok screen.&lt;/P&gt;
&lt;P&gt;You might also notice the "Web interface" url on the ngrok screen. It provides a full network trace of what went through the tunnel, which can be very helpful in debugging.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_3" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ngrok-trace.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280652i0893B21FD8BCBEB1/image-size/large?v=v2&amp;amp;px=999" role="button" title="ngrok-trace.png" alt="ngrok-trace.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-developing-tabs-and-web-page-based-teams-features" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#developing-tabs-and-web-page-based-teams-features" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Developing Tabs and Web-Page based Teams features&lt;/H2&gt;
&lt;P&gt;Some Teams application features are based on web pages provided by your application:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Tabs and Tab Configuration Pages&lt;/LI&gt;
&lt;LI&gt;Task Modules (dialog boxes)&lt;/LI&gt;
&lt;LI&gt;Connector Configuration Pages&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These features are backed by ordinary web pages that are displayed in an IFrame within the Microsoft Teams user interface. Tabs using the Azure Active Directory Single Sign-On (SSO) option also need to implement a web service to do a token exchange. Accessing these via&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is no problem; no tunnel is required.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_4" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ngrok-without-ngrok-sso.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280657iDEB744F06E02E7BF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-without-ngrok-sso.png" alt="ngrok-without-ngrok-sso.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;However Teams does require the web server to use a trusted https connection or it won't display. ngrok translates trusted https requests into local http requests, so it just works. But if you'd rather not have a tunnel to the Internet as part of your setup, you can do this all locally. It's just more work.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-setting-up-a-trusted-https-server" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#setting-up-a-trusted-https-server" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Setting up a trusted https server&lt;/H3&gt;
&lt;P&gt;On a NodeJS server, you can usually enable https by editing the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;.env&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file and setting the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;HTTPS&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;property to true. For .NET projects in Visual Studio, under project properties on the "Debug" tab, check the "Enable SSL" box to enable https.&lt;/P&gt;
&lt;P&gt;But alas, just turning on the https protocol is generally not enough to satisfy this requirement; the connection must be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;trusted&lt;/EM&gt;. Trust is established by a digital certificate; if the certificate comes from a trusted authority, is up-to-date, and matches the hostname in the URL, the little padlock in your web browser lights up and all is well. If not, you get errors that you can bypass in most web browsers, but not in Microsoft Teams.&lt;/P&gt;
&lt;P&gt;The people over at ngrok acquired their certificate from a trusted authority, and it's set to match hostnames ending in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ngrok.io&lt;/CODE&gt;, so it just works without any fuss. The local web server, on the other hand, will most likely have a self-signed, untrusted certificate. So the trick is to get your browser and/or Microsoft Teams to trust it.&lt;/P&gt;
&lt;P&gt;An option that often works is to browse to the local server from a regular web browser, click the security error, and tell the browser to trust the certificate. You can then run Teams in the same browser and bypass the issue. If the Teams client shares the same certificate store as your browser, it will also work. However these default certificates generally expire after a month or so, and the process will need to be repeated.&lt;/P&gt;
&lt;P&gt;A better option is to generate your own certificate and tell your computer to trust it. That way you can control the expiration date and reuse the certificate on multiple projects, so you only need to do the setup once. This is explained in the article,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/tabs-without-ngrok-article" target="_blank" rel="nofollow noopener"&gt;Setting up SSL for tabs in the Teams Toolkit for Visual Studio Code&lt;/A&gt;. The instructions are for a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://create-react-app.dev/" target="_blank" rel="nofollow noopener"&gt;Create React App&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;application using the Teams Toolkit but they shouldn't be too difficult to adapt to other tool chains since the certificate creation and trust parts are the same regardless.&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-mobile-device-testing" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#mobile-device-testing" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Mobile device testing&lt;/H3&gt;
&lt;P&gt;It's prudent to test Teams applications using the mobile versions of Teams (iOS and Android) to make sure everything looks good and works properly. ngrok makes this a breeze; since your local service is exposed on the public Internet, you can test using any device with an Internet connection, no special setup required.&lt;/P&gt;
&lt;P&gt;If you'd prefer not to expose your local server to the Internet, you can always connect your phone locally using wifi and leave the Internet out of it. This picture shows two phones; phone 1 is connected via ngrok and phone 2 is connected locally.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_5" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ngrok-mobile-device.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280654i1AE51E8511B8A5A6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-mobile-device.png" alt="ngrok-mobile-device.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;To set up local access you'll need a server name other than&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost&lt;/CODE&gt;&lt;SPAN style="font-family: inherit;"&gt;, and you'll need to open a path on the local network from your phone to your local web server. Here are the high-level steps; the details vary depending on your phone OS, development computer OS, and network configuration.&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Connect your mobile device via wifi to the same network as your development computer.&lt;/LI&gt;
&lt;LI&gt;Open an incoming port on your development computer's built-in firewall (port 3000, 3978, 8080, or whatever your local web server is using).&lt;/LI&gt;
&lt;LI&gt;Determine the local IP address of your development computer; ideally reserve it so it doesn't change. This can be accomplished in the DHCP section of most home routers or by using a fixed IP address.&lt;/LI&gt;
&lt;LI&gt;Set up a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;hosts&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;entry (phones have them too!) or local DNS name to point to your development computer. Again, many home routers have the ability to register a local DNS name so you don't have to configure it in each device.&lt;/LI&gt;
&lt;LI&gt;Make sure the https certificate is for this same hostname and not just&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;localhost&lt;/CODE&gt;, and install it as a trusted certificate on your phone.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;While this might not seem easy, it is possible! And it's a one-time setup that you can use over and over. But you can see that ngrok makes it a whole lot easier.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-developing-bots-and-messaging-extensions-with-and-without-ngrok" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#developing-bots-and-messaging-extensions-with-and-without-ngrok" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Developing Bots and Messaging Extensions with and without ngrok&lt;/H2&gt;
&lt;P&gt;Several features of Teams applications are based on a web service within your application that is called from the cloud. These are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Bots (called by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Azure Bot Service&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;Messaging Extensions (called by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Azure Bot Service&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/webhooks?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Microsoft Graph change notifications&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-outgoing-webhook?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Outgoing webhooks&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;All of these are implemented as REST services and could be built with any tool chain, but the requests will come from the cloud, so you need to have a port listening on the Internet to receive those requests.&lt;/P&gt;
&lt;DIV id="tinyMceEditorBob German_6" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ngrok-bot.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280655i86D8A65A92A15B6D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ngrok-bot.png" alt="ngrok-bot.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;For this reason there's currently no local debugging option in Microsoft Teams that doesn't involve opening a port on the Internet or using some sort of tunnel, ngrok or otherwise. The same is true for&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-outgoing-webhook?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;outgoing webhooks&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;, which are outgoing from Teams to your app).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;If ngrok isn't on your road map, don't worry, there are still options available!&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-option-1-use-the-bot-framework-emulator" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#option-1-use-the-bot-framework-emulator" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Option 1. Use the Bot Framework Emulator&lt;/H3&gt;
&lt;P&gt;If you're building a bot, consider using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-debug-emulator?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Bot Framework Emulator&lt;/A&gt;, which allows you to run bots locally without using the Azure Bot Service. Instead of running your bot in Teams, you run it in the emulator. The drawback is that the emulator doesn't currently understand some Teams-specific features such as messaging extensions or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/bots/bot-basics?WT.mc_id=m365-27674-rogerman#teams-specific-activity-handlers" target="_blank" rel="nofollow noopener"&gt;other Invoke activities&lt;/A&gt;. However it does a great job running conversational bots! Adaptive cards work as well, though Invoke card actions do not.&lt;/P&gt;
&lt;P&gt;If your bot isn't too Teams-specific, consider using the Bot Framework Emulator for most debugging and just do final integration testing in Teams, perhaps when the bot deployed in a staging environment which is set up for handling incoming requests.&lt;/P&gt;
&lt;H3&gt;&lt;A id="user-content-option-2-dont-debug-locally" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#option-2-dont-debug-locally" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Option 2. Don't debug locally&lt;/H3&gt;
&lt;P&gt;Another approach is to move away from the strategy of local debugging entirely. For example, you could publish your app to Microsoft Azure app service and use the remote debugger. Here are the instructions for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://code.visualstudio.com/docs/azure/remote-debugging?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Visual Studio Code (NodeJS)&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/visualstudio/azure/vs-azure-tools-debug-cloud-services-virtual-machines?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Visual Studio 2019 (.NET)&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;You could even set up a development virtual machine (VM) in Azure or your cloud service of choice and open an incoming port for the Azure Bot Service. Or just run ngrok in the VM, away from the concerns of a corporate network.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-how-many-services-do-you-have" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#how-many-services-do-you-have" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;How many services do you have?&lt;/H2&gt;
&lt;P&gt;Teams applications generated by the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/tutorials/get-started-yeoman?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;yo teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;generator have a single web server, so if your app has a combination of features - say, tabs and a bot - you can use one ngrok tunnel or one for all your application features.&lt;/P&gt;
&lt;P&gt;Teams applications generated by the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/toolkit/visual-studio-code-overview?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Microsoft Teams Toolkit&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;generate multiple web servers (one for tabs, another for bots, and a third for the SSO web service if you use it). If you want to use ngrok, you'll need a tunnel for each one. This requires the paid service and you'll have to start up multiple copies each time you begin debugging. Another option is to use a single ngrok tunnel for your bot, potentially with the free service, and then use local connections for the tab and SSO web service.&lt;/P&gt;
&lt;P&gt;Of course you don't have to use either of these tools; they're really just a convenience! You can use any tools you wish and create the Teams application package in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/app-studio-overview?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;App Studio&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or by editing your own&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;manifest.json&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file and zipping it up with a couple icons.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-summary" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#summary" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Summary&lt;/H2&gt;
&lt;P&gt;While ngrok isn't a requirement for Teams development, it does make it a lot easier. However if you can't or don't want to open up a tunnel from the Internet, there are other strategies. Many of these, such as local https servers with self-signed certificates, have been around for a long time and may already be familiar.&lt;/P&gt;
&lt;P&gt;There is nothing magic about Teams development! It was designed to use standard web tooling, and you can use the same tools that you'd use for any web development project. Trust your knowledge of web development to come up with a configuration that works for you. Just be aware of which services will be called from the Internet and plan accordingly.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-references" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/What%20is%20ngrok%20and%20do%20I%20need%20it/article.md#references" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;References&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/tabs-without-ngrok-article" target="_blank" rel="nofollow noopener"&gt;Setting up SSL for tabs in the Teams Toolkit for Visual Studio Code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-debug-channel-ngrok?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Debug a bot from any channel using ngrok&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;A href="https://blog.botframework.com/2018/08/28/testing-authentication-to-your-bot-using-the-bot-framework-emulator/?WT.mc_id=m365-27674-rogerman" target="_blank" rel="nofollow noopener"&gt;Testing authentication to your bot using the Bot Framework Emulator&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 20 May 2021 17:41:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/do-you-need-ngrok-to-develop-microsoft-teams-apps/ba-p/2353206</guid>
      <dc:creator>Bob German</dc:creator>
      <dc:date>2021-05-20T17:41:50Z</dc:date>
    </item>
    <item>
      <title>Power Apps Community Call – May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-community-call-may-2021/ba-p/2369713</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="powerautomate-call-recording-19th-may.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/282230iD6B45FAD869A91FA/image-size/large?v=v2&amp;amp;px=999" role="button" title="powerautomate-call-recording-19th-may.png" alt="powerautomate-call-recording-19th-may.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Call Summary:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Topics covered in this month’s community call include - Building multilingual Power Apps, Using Environment Variables in&amp;nbsp;Canvas Apps, Using&amp;nbsp;Environment Variables in&amp;nbsp;Flows, Recent Power Apps News and Community Contributions and Latest on &lt;A href="https://aka.ms/powerplatform-samples" target="_blank" rel="noopener"&gt;PnP Power Platform Samples Contributions&lt;/A&gt;.&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Demo Extravaganza&amp;nbsp;2021&lt;/STRONG&gt;.&amp;nbsp; Entries accepted now, Finalist voting starts – June 1&lt;SUP&gt;st&lt;/SUP&gt;, Finalist voting ends – June 30&lt;SUP&gt;th&lt;/SUP&gt;, Finals / Winner(s) to be Announced – July 21, 2021 at 08:00 PT.&amp;nbsp; &amp;nbsp;This session included Q&amp;amp;A in chat.&amp;nbsp; The call was&lt;SPAN&gt; hosted by &lt;/SPAN&gt;Todd Baginski (Canviz)&lt;SPAN&gt;.&amp;nbsp; Demo presenters included &lt;/SPAN&gt;Haniel Croitoru (Protiviti), Charles Sterling (Microsoft), and Reza Dorrani (Catapult). &amp;nbsp;This call was rec&lt;SPAN&gt;orded &lt;/SPAN&gt;on May 19, 2021&lt;SPAN&gt;.&amp;nbsp; Thank for attending the call or viewing it on demand.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/rrdpkOS9pnk" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Demos:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Building multilingual Power Apps - &lt;/STRONG&gt;a high-level architecture for multilingual forms supported by one or more SharePoint lists (containing language terminology) in back-end.&amp;nbsp; Multiple apps/forms can pull from same lists.&amp;nbsp; Leverages native SharePoint functionality – lookups to pull data.&amp;nbsp; Picks up chosen language from computer Office 365 settings, so renders on all device platforms.&amp;nbsp; &amp;nbsp;Uses basic SharePoint and Office 365 connectors in Power apps.&amp;nbsp; &amp;nbsp;Easy to update, ensures consistency across apps.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Using&amp;nbsp;Environment Variables in&amp;nbsp;Canvas Apps -&amp;nbsp;&lt;/STRONG&gt;in this demo, Charles creates a new environment variable and a Power App to query Environment Variable values then demonstrates how environment variables may be used at runtime.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Using&amp;nbsp;Environment Variables in Power Automate Flows - &lt;/STRONG&gt;create Environment Variables (to connect to SharePoint sites/data) and add them to Power Apps Solutions.&amp;nbsp; Within your Canvas Apps, Flows, and Bots, select to incorporate your Environment Variables.&amp;nbsp;&amp;nbsp; Environment variables simplify moves from Dev to Test to Prod environments by handling environment configuration updates to Flows, Bots, and Apps.&amp;nbsp; See how Environment Variables are created, added to an App and a Flow.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Recent News &amp;amp; Cool Stuff:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Power Apps Demo Extravaganza 2021- &lt;A href="https://aka.ms/PowerAppsDemoExtravaganza" target="_blank" rel="noopener"&gt;aka.ms/PowerAppsDemoExtravaganza&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Importing &amp;amp; Exporting Power Apps With Datasource Environment Variables -&lt;A href="https://aka.ms/PAvariableswalkthrough" target="_blank" rel="noopener"&gt;aka.ms/PAvariableswalkthrough&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;New Robotic Process Automation training&amp;nbsp;- &lt;A href="https://aka.ms/RPAinaDayPackage" target="_blank" rel="noopener"&gt;aka.ms/RPAinaDayPackage&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Adoption Maturity Model: Repeatable patterns for successful Power Platform adoption - &lt;A href="https://aka.ms/PACATAdoption" target="_blank" rel="noopener"&gt;aka.ms/PACATAdoption&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Enter now for Demo Extravaganza 2021 | &lt;A href="https://aka.ms/PowerAppsDemoExtravaganza" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsDemoExtravaganza&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Spanish Bizz Summit – June 4 – 5, &lt;A href="https://bizzsummit.es/" target="_blank" rel="noopener"&gt;https://bizzsummit.es/&lt;/A&gt; &amp;nbsp;&amp;nbsp;Contact: Eickhel Mendoza&lt;/LI&gt;
&lt;LI&gt;Join us for our next call: June 16, 2021 at 08:00am PDT | &lt;A href="https://aka.ms/powerappscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/powerappscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Join us for our next call: May 19, 2021 at 08:00am PDT |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/powerappscommunitycall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/powerappscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Agenda:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Building multilingual Power Apps -&amp;nbsp; &lt;A href="http://twitter.com/HCroitoru" target="_self"&gt;Haniel Croitoru&lt;/A&gt; (Protiviti) | @HCroitoru –&amp;nbsp;&lt;A href="https://youtu.be/rrdpkOS9pnk?t=184" target="_self"&gt;3:04&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Using Environment Variables in&amp;nbsp;Canvas Apps - &lt;A href="http://twitter.com/chass" target="_self"&gt;Charles Sterling&lt;/A&gt; (Microsoft) | @chass – &lt;A href="https://youtu.be/rrdpkOS9pnk?t=1270" target="_self"&gt;21:10&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Using&amp;nbsp;Environment Variables in&amp;nbsp;Flows - &lt;A href="http://twitter.com/RezaDorrani" target="_self"&gt;Reza Dorrani&lt;/A&gt; (Catapult) | &lt;LI-USER uid="285374"&gt;&lt;/LI-USER&gt; – &lt;A href="https://youtu.be/rrdpkOS9pnk?t=1732" target="_self"&gt;28:52&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Recent Power Apps News and Community Contributions - &lt;A href="http://twitter.com/chass" target="_self"&gt;Charles Sterling&lt;/A&gt; (Microsoft) | @chass –&amp;nbsp;&lt;A href="https://youtu.be/rrdpkOS9pnk?t=2788" target="_self"&gt;46:28&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Latest PnP Power Platform Samples – &lt;A href="http://twitter.com/aprildunnam" target="_self"&gt;April Dunnam&lt;/A&gt; (Microsoft) | @aprildunnam –&amp;nbsp;&lt;A href="https://youtu.be/rrdpkOS9pnk?t=2945" target="_self"&gt;49:05&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Referenced in this session:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/powerapps/maker/data-platform/EnvironmentVariables" target="_blank" rel="noopener"&gt;Environment variables overview&lt;/A&gt; | &lt;A href="https://docs.microsoft.com/en-us/powerapps/maker/data-platform/EnvironmentVariables" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/powerapps/maker/data-platform/EnvironmentVariables&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Blog - &lt;A href="https://powerapps.microsoft.com/en-us/blog/announcing-data-source-environment-variables/" target="_blank" rel="noopener"&gt;Announcing data source environment variables&lt;/A&gt; | &lt;A href="https://powerapps.microsoft.com/en-us/blog/announcing-data-source-environment-variables/" target="_blank" rel="noopener"&gt;https://powerapps.microsoft.com/en-us/blog/announcing-data-source-environment-variables/&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Learn more:&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;See the full blog post for this call on the Tech Community Blog -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft’s&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://powerplatform.microsoft.com/" target="_blank" rel="noopener noreferrer"&gt;Power Platform website&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Apps Responsive Design -&amp;nbsp;&lt;SPAN&gt;https://&lt;/SPAN&gt;&lt;A href="https://bit.ly/responsivepowerapps" target="_blank" rel="noopener nofollow noreferrer"&gt;bit.ly/responsivepowerapps&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Power Apps Training Resources -&amp;nbsp;&lt;A href="https://aka.ms/PowerAppsTraining" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/PowerAppsTraining&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Apps Community -&amp;nbsp;&lt;A href="https://community.powerapps.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://Community.PowerApps.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Power Apps Community Samples -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/PowerAppsCommunitySamples" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/PowerAppsCommunitySamples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Power Apps Community Videos -&lt;/SPAN&gt;&lt;A href="https://aka.ms/PowerAppsCommunityVideos" target="_blank" rel="noopener noreferrer"&gt;&amp;nbsp;https://aka.ms/PowerAppsCommunityVideos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Addicts Hangout -&amp;nbsp;&lt;A href="https://wearepoweraddicts.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://wearepoweraddicts.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;#LessCodeMorePower Video Series -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PL8IYfXypsj2Cr4DUqMKYkGM-Wejfim2QX" target="_blank" rel="noopener nofollow noreferrer"&gt;https://www.youtube.com/playlist?list=PL8IYfXypsj2Cr4DUqMKYkGM-Wejfim2QX&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Share more - draw attention to your great work -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/hashtag/PowerAppsCC?src=hashtag_click" target="_self" rel="nofollow noopener noreferrer"&gt;#PowerAppsCC&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Stay connected:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter:&amp;nbsp;&lt;A href="https://twitter.com/MSPowerPlat" target="_blank" rel="noopener nofollow noreferrer"&gt;https://twitter.com/MSPowerPlat&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkdvcDJHcGdzM2VIUkwzU3lOYkJaVFEzM0Q2QXxBQ3Jtc0ttM1NyaTQ2RjFSOFh3a0l4c1pralBRQVI1bDNSQ2RaVm9OdzJrRkdtV1Z1SW5VdmdwamNNLTBEaFdaSmZMc0lQNzdRZ2dDYV9WZVF1ZVIwc2dPQTZBRUZ3b3hoWUVJdDJoQWZUcWdCR2JKdmwtUU43RQ&amp;amp;q=https%3A%2F%2Ftwitter.com%2Fmicrosoft365dev" target="_blank" rel="noopener nofollow noreferrer"&gt;https://twitter.com/microsoft365dev&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;YouTube -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqa3RzWmpNU2VPRmh6dXBad3hKMmxySjBaQVl6Z3xBQ3Jtc0trVjYyeXZlSXZiX0JydHlyeHdqcTRSUnczX2xrVDloOWhzeGVCYXFibjBiM1VpXzFOd2dZX2dJdlNYQWYtekcyWXZOTHp3VkdoU2JsdmNVQ3dtdkw2ZHF0cVdCS29TQmJ1Z3hoVmJyd3JtYlFxUW92WQ&amp;amp;q=https%3A%2F%2Faka.ms%2FM365DevYouTube" target="_blank" rel="noopener nofollow noreferrer"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Blogs - &lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Recurrent Invite -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/powerappscommunitycall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/powerappscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Sun, 23 May 2021 18:10:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-community-call-may-2021/ba-p/2369713</guid>
      <dc:creator>Todd Baginski</dc:creator>
      <dc:date>2021-05-23T18:10:45Z</dc:date>
    </item>
    <item>
      <title>Microsoft Identity Platform community call - April 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-identity-platform-community-call-april-2021/ba-p/2315934</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="EventHubBlockDiagram.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277421i08CD6318505EF533/image-size/large?v=v2&amp;amp;px=999" role="button" title="EventHubBlockDiagram.png" alt="EventHubBlockDiagram.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Call Summary:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This month’s in-depth topic:&amp;nbsp; &lt;/SPAN&gt;Get Change notifications delivered via Azure Event Hubs&lt;SPAN&gt;.&amp;nbsp; &lt;/SPAN&gt;Brief introduction to Graph change notification (webhooks) and Change notifications delivered via Azure Event hubs&lt;SPAN&gt;.&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;Microsoft Program Manager presenters - George Juma and Kalyan Krishna.&amp;nbsp; This session was delivered and recorded on April 15, 2021.&amp;nbsp; Live and in chat Q&amp;amp;A throughout call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://www.youtube.com/watch?v=d_T_DYwmN3w" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;In-depth topic:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Get Change notifications delivered via Azure Event Hubs&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A new Microsoft Graph platform capability gives developers using change notification features in Microsoft Graph the option to get change notifications delivered to their applications more quickly and at scale using Azure Event hub.&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;With Microsoft Graph, changes (in data in Microsoft Graph) are tracked with webhooks, a.k.a., change notifications.&amp;nbsp; &amp;nbsp;Presently you get change notifications via a API REST end-point exposed on the internet.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Azure Event Hub is a real-time events ingestion and distribution service built for scale.&amp;nbsp; Ideal for high throughput (no dropped notifications due to timeouts), no public URL (security), no missed notifications if temporally off-line.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Operationally, Microsoft Graph Change Tracking places notifications in Event Hub and your app retrieves messages from Event Hub rather &lt;/SPAN&gt;&lt;SPAN&gt;than from publicly exposed end points on the internet.&amp;nbsp; &amp;nbsp;Y&lt;/SPAN&gt;&lt;SPAN&gt;ou need not poll for changes, change notifications are pushed to your app. &amp;nbsp;You need only subscribe to notifications.&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In the end-to-end demo, the presenter steps through app registration, provisioning of an Azure Event Hub, an Azure Storage and a container, add a Shared Access Policy, create an Azure Key Vault (secure connection strings), add subscription connection string and IDs of resources to the app. &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.slideshare.net/OfficeDev/change-notifications-in-azure-event-hubsapril-2021" target="_self"&gt;Deck&lt;/A&gt; for this call&lt;/LI&gt;
&lt;LI&gt;Documentation -&amp;nbsp; &lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/webhooks?view=graph-rest-1.0" target="_blank" rel="noopener"&gt;Use the Microsoft Graph API to get change notifications&lt;/A&gt; | &lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/webhooks?view=graph-rest-1.0" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/graph/api/resources/webhooks?view=graph-rest-1.0&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/change-notifications-delivery" target="_blank" rel="noopener"&gt;Get change notifications delivered in different ways&lt;/A&gt; | &lt;A href="https://docs.microsoft.com/en-us/graph/change-notifications-delivery" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/graph/change-notifications-delivery&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Training - &lt;A href="https://github.com/microsoftgraph/msgraph-training-changenotifications/tree/event-hub" target="_blank" rel="noopener"&gt;Microsoft Graph Training Module - Using Change Notifications and Track Changes with Microsoft Graph&lt;/A&gt;&amp;nbsp; | &lt;A href="https://github.com/microsoftgraph/msgraph-training-changenotifications/tree/event-hub" target="_blank" rel="noopener"&gt;https://github.com/microsoftgraph/msgraph-training-changenotifications/tree/event-hub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about" target="_blank" rel="noopener"&gt;Azure Event Hubs — A big data streaming platform and event ingestion service&lt;/A&gt; | &lt;A href="https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Submit your feedback and topic suggestions - &lt;A href="https://aka.ms/IDDevCommunityCallSurvey" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCallSurvey&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Mark your calendar.&amp;nbsp; The next Identity Platform Community Call is on May 20th&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Stay connected:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter &lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkdvcDJHcGdzM2VIUkwzU3lOYkJaVFEzM0Q2QXxBQ3Jtc0ttM1NyaTQ2RjFSOFh3a0l4c1pralBRQVI1bDNSQ2RaVm9OdzJrRkdtV1Z1SW5VdmdwamNNLTBEaFdaSmZMc0lQNzdRZ2dDYV9WZVF1ZVIwc2dPQTZBRUZ3b3hoWUVJdDJoQWZUcWdCR2JKdmwtUU43RQ&amp;amp;q=https%3A%2F%2Ftwitter.com%2Fmicrosoft365dev" target="_blank" rel="noopener"&gt;https://twitter.com/microsoft365dev&lt;/A&gt;&lt;SPAN&gt;​ and &lt;/SPAN&gt;@azuread&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;YouTube &lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqa3RzWmpNU2VPRmh6dXBad3hKMmxySjBaQVl6Z3xBQ3Jtc0trVjYyeXZlSXZiX0JydHlyeHdqcTRSUnczX2xrVDloOWhzeGVCYXFibjBiM1VpXzFOd2dZX2dJdlNYQWYtekcyWXZOTHp3VkdoU2JsdmNVQ3dtdkw2ZHF0cVdCS29TQmJ1Z3hoVmJyd3JtYlFxUW92WQ&amp;amp;q=https%3A%2F%2Faka.ms%2FM365DevYouTube" target="_blank" rel="noopener"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;SPAN&gt;​ &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Blogs &lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevBlog" target="_blank" rel="noopener"&gt;https://aka.ms/M365DevBlog&lt;/A&gt; &lt;SPAN&gt;and &lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Recurrent Invite&amp;nbsp; &lt;A style="background-color: #ffffff;" href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 May 2021 14:02:12 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-identity-platform-community-call-april-2021/ba-p/2315934</guid>
      <dc:creator>ViewPorter</dc:creator>
      <dc:date>2021-05-20T14:02:12Z</dc:date>
    </item>
    <item>
      <title>Microsoft Graph community call – May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-community-call-may-2021/ba-p/2326814</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="TitleSlideThumbnail.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278787i35F88DE879CC446E/image-size/large?v=v2&amp;amp;px=999" role="button" title="TitleSlideThumbnail.png" alt="TitleSlideThumbnail.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This month's community call features presentations on &lt;/SPAN&gt;Application Consent Deep Dive (demystifying permissions and consent when accessing Microsoft Graph) and on Considerations for Creating Online Meetings (&lt;STRONG&gt;Integration into Outlook or into other 3&lt;SUP&gt;rd&lt;/SUP&gt; party experiences)&lt;/STRONG&gt;.&amp;nbsp; Q&amp;amp;A in this call after demos, at end and in chat.&amp;nbsp; The call was&lt;SPAN&gt; hosted by &lt;/SPAN&gt;&lt;A href="http://twitter.com/BrianTJackett" target="_blank" rel="noopener"&gt;Brian T. Jackett&lt;/A&gt; (Microsoft) | &lt;LI-USER uid="4556"&gt;&lt;/LI-USER&gt;. &lt;SPAN&gt;Microsoft Presenters were &lt;/SPAN&gt;Philippe Signoret and Fabian Williams.&amp;nbsp; R&lt;SPAN&gt;ecorded &lt;/SPAN&gt;on May 4, 2021&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Topics:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;App Consent Deep Dive - &lt;/STRONG&gt;demystifying permissions and consent when accessing Microsoft Graph.&amp;nbsp; Most Graph permissions allow access to &lt;EM&gt;lots&lt;/EM&gt; of data.&amp;nbsp; Learn how apps and services access Microsoft Graph resources - application permissions and delegated permissions, requesting permissions, granting permissions, and restricting data access scope.&amp;nbsp; General concepts – direct access, access on behalf of user, app and user authorizations, permission types, service principals, consents and more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Considerations for creating Online Meetings - &lt;/STRONG&gt;Based on specific meeting requirements, create an Online Meeting through the Calendar Events API or through the Cloud Communications API (Teams).&amp;nbsp; Step through 7 questions to ask yourself to decide when to use what method.&amp;nbsp; The decision is largely based on the need for a rich integrated Microsoft client (Outlook/Teams) experience vs 3&lt;SUP&gt;rd&lt;/SUP&gt; party application integration including Microsoft chat integration.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/MPVh2XmhWhg" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;H2 id="toc-hId-864645880"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Interested in Presenting during this call?&amp;nbsp;&amp;nbsp; Contact &lt;A href="mailto:Brian.Jackett@microsoft.com" target="_blank" rel="noopener"&gt;Brian.Jackett@microsoft.com&lt;/A&gt; or &lt;A href="mailto:Jeremy.Thake@microsoft.com" target="_blank" rel="noopener"&gt;Jeremy.Thake@microsoft.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://register.build.microsoft.com/" target="_blank" rel="noopener"&gt;Register for Microsoft Build&lt;/A&gt; Digital Event - May 25 – 27, 2021.&amp;nbsp;&amp;nbsp; &lt;A href="https://mybuild.microsoft.com/" target="_blank" rel="noopener"&gt;https://mybuild.microsoft.com/&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Mark your calendar – next Microsoft Graph community call is on June 1 at 08:00am PDT - &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="toc-hId--942808583"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;From demos:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/event?view=graph-rest-1.0" target="_blank" rel="noopener"&gt;Calendar API&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/api/application-post-onlinemeetings?view=graph-rest-1.0&amp;amp;tabs=http" target="_blank" rel="noopener"&gt;Cloud Communications API&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/choose-online-meeting-api" target="_blank" rel="noopener"&gt;Choose an API in Microsoft Graph to create and join online meetings&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/throttling" target="_blank" rel="noopener"&gt;Microsoft Graph throttling guidance&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits" target="_blank" rel="noopener"&gt;Exchange Online limits&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://techcommunity.microsoft.com/Cloud%20Communications%20service%20limits" target="_blank" rel="noopener"&gt;Cloud Communications service limits&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;From Q&amp;amp;A&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Documentation – &lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/place" target="_blank" rel="noopener"&gt;place resource type&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/outlook-get-free-busy-schedule" target="_blank" rel="noopener"&gt;Get free/busy schedule of users and resources&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/api/calendar-getschedule" target="_blank" rel="noopener"&gt;calendar: getSchedule&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/graph/api/user-findmeetingtimes" target="_blank" rel="noopener"&gt;user: findMeetingTimes&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="toc-hId-1544704250"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;General Resources:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Suggestions – &lt;A href="https://aka.ms/M365Dev-Suggestions" target="_blank" rel="noopener"&gt;https://aka.ms/M365Dev-Suggestions&lt;/A&gt; &amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Graph TAP Program - &lt;A href="https://aka.ms/GraphTAPForm" target="_blank" rel="noopener"&gt;https://aka.ms/GraphTAPForm&lt;/A&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft 365 Developer Podcast &lt;A style="background-color: #ffffff;" href="http://www.m365devpodcast.com/" target="_blank" rel="noopener"&gt;http://www.m365devpodcast.com/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Mailbag - &lt;A href="http://aka.ms/MSGraphMailbag" target="_blank" rel="noopener"&gt;http://aka.ms/MSGraphMailbag&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Q &amp;amp; A – Graph - &lt;A href="https://aka.ms/askgraph/" target="_blank" rel="noopener"&gt;https://aka.ms/askgraph/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Learn Module - &lt;A href="https://docs.microsoft.com/learn/modules/msgraph-toolkit-intro/" target="_blank" rel="noopener"&gt;Get started with Microsoft Graph Toolkit&lt;/A&gt; | &lt;A href="https://aka.ms/mgt-learn" target="_blank" rel="noopener"&gt;https://aka.ms/mgt-learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Repo - &lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit v2.1&lt;/A&gt; | &lt;A href="https://aka.ms/mgt" target="_blank" rel="noopener"&gt;https://aka.ms/mgt&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Documentation – &lt;A href="https://docs.microsoft.com/en-us/graph/toolkit/overview" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit Overview&lt;/A&gt; | &lt;A href="https://aka.ms/mgt-docs" target="_blank" rel="noopener"&gt;https://aka.ms/mgt-docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Playground – &lt;A href="https://mgt.dev/?path=/story/components-mgt-agenda--simple" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit Playground&lt;/A&gt; | &lt;A href="https://mgt.dev" target="_blank" rel="noopener"&gt;https://mgt.dev&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="toc-hId--262750213"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Stay Connected:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;See the full blog post for this call at -&amp;nbsp;&lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkdvcDJHcGdzM2VIUkwzU3lOYkJaVFEzM0Q2QXxBQ3Jtc0ttM1NyaTQ2RjFSOFh3a0l4c1pralBRQVI1bDNSQ2RaVm9OdzJrRkdtV1Z1SW5VdmdwamNNLTBEaFdaSmZMc0lQNzdRZ2dDYV9WZVF1ZVIwc2dPQTZBRUZ3b3hoWUVJdDJoQWZUcWdCR2JKdmwtUU43RQ&amp;amp;q=https%3A%2F%2Ftwitter.com%2Fmicrosoft365dev" target="_blank" rel="noopener nofollow noreferrer"&gt;https://twitter.com/microsoft365dev&lt;/A&gt;&amp;nbsp;&lt;SPAN&gt;@Microsoft365Dev​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;YouTube -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevYouTube" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Blogs -&amp;nbsp;&lt;/SPAN&gt;&lt;U&gt;&lt;/U&gt;&lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Recurrent Invite to this community call -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;All Microsoft 365 developer community calls –&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevCalls" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/M365DevCalls&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 May 2021 14:03:15 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-community-call-may-2021/ba-p/2326814</guid>
      <dc:creator>BrianTJackett</dc:creator>
      <dc:date>2021-05-20T14:03:15Z</dc:date>
    </item>
    <item>
      <title>Re: Excel Scripts and Cloud Flows - Data Manipulation</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/excel-scripts-and-cloud-flows-data-manipulation/bc-p/2370381#M291</link>
      <description>&lt;P&gt;Very useful! Power automate is extremely powerful. With Office Scripts, too, it makes it an invincible combination!!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 23:24:43 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/excel-scripts-and-cloud-flows-data-manipulation/bc-p/2370381#M291</guid>
      <dc:creator>MrAnalytics</dc:creator>
      <dc:date>2021-05-19T23:24:43Z</dc:date>
    </item>
    <item>
      <title>Office Add-ins community call – May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-ins-community-call-may-2021/ba-p/2369804</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="office-add-ins-call-recording-12th-may.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/282115i9A74EBEC516EFBFC/image-size/large?v=v2&amp;amp;px=999" role="button" title="office-add-ins-call-recording-12th-may.png" alt="office-add-ins-call-recording-12th-may.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Agenda:&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;May’s call, hosted by &lt;STRONG&gt;David Chesnut&lt;/STRONG&gt;, featured the following presenters and topics:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Abid Rahman&lt;/STRONG&gt; announced the GA of keyboard shortcuts and shared plans for the feature going forward. – &lt;A href="https://youtu.be/Y6nee7VQkFE?t=59" target="_blank" rel="noopener"&gt;00:59&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Sohail Zafar&lt;/STRONG&gt; announced the GA of contextual tabs and updates about the feature and plans going forward. – &lt;A href="https://youtu.be/Y6nee7VQkFE?t=663" target="_blank" rel="noopener"&gt;11:03&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Special guest presenter Damien Bird (DamoBird365)&lt;/STRONG&gt; demonstrated how to use Office Scripts with Power Automate to generate and fill in an invoice with data from SharePoint, and then save to a PDF. &amp;nbsp;– &lt;A href="https://youtu.be/Y6nee7VQkFE?t=1197" target="_blank" rel="noopener"&gt;19:57&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Juan Balmori&lt;/STRONG&gt; shared Outlook updates on event-based activation and announced new preview events. – &lt;A href="https://youtu.be/Y6nee7VQkFE?t=2109" target="_blank" rel="noopener"&gt;35:09&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/Y6nee7VQkFE" align="center" size="large" width="600" height="338" uploading="false" thumbnail="https://i.ytimg.com/vi/Y6nee7VQkFE/hqdefault.jpg" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Q&amp;amp;A (Question &amp;amp; Answers)&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately, we had some issues with the chat during the call. We apologize to folks who were not able to ask a question. If you have a question, you can reach out to us by using our short &lt;A href="https://aka.ms/officeaddinsform" target="_blank" rel="noopener"&gt;survey form&lt;/A&gt;. We’ll address any questions in the form during the next call.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Is it possible to see a demonstration of debugging Outlook add-ins in the Outlook application on mobile devices? Ideally for a local developer instance of an add-in server rather than one publicly accessible (since a hurdle is getting the mobile device to communicate successfully with lab instance of add-in server). We've encountered issues on Android with certificates running lab instances of add-ins so would like to see a demonstration of recommended approach to testing on mobile devices.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thanks for this request! We're working to schedule this demo this on a future call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;When the Outlook REST API is decommissioned in November 2022, what API should add-ins deployed to customer hosted Exchange Servers (2016/2019) use for mobile support? Will the Outlook REST API remain active for Exchange Server and just be decommissioned for O365 accounts?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We're still working through details on this, and we plan to share more guidance in the future.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Is there any movement on supporting reading values, such as AppDomains and custom properties, from the add-in manifest at runtime through Office.js? The request has come up over the years on forums and been raised on UserVoice. We would prefer to write a key and value to the manifest, instead of passing values to URL endpoints, as this opens the door to people injecting their own values outside of the manifest to those endpoints.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This feature is not on our backlog. We migrated UserVoice requests that had over 100 votes to our new &lt;A href="https://aka.ms/m365dev-suggestions" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Platform Ideas Forum&lt;/A&gt;. We'd ask that you &lt;STRONG&gt;Submit an Idea&lt;/STRONG&gt; on this page and recreate your request. If there’s enough interest from the community we'll definitely consider it. Thanks!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is the roadmap for Office.js for PowerPoint? When will it achieve feature parity with VSTO APIs?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;VSTO is a huge API surface, which is why we approach building out the Office JS API based on prioritized scenarios. It’s tremendously helpful to understand the scenarios you are trying to unlock and what API’s you need. That helps us prioritize. Please let us know which scenarios you need enabled on our &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform/label-name/office%20add-ins%20development" target="_blank" rel="noopener"&gt;Ideas page&lt;/A&gt; and use the “Office Add-ins development” label. We’re planning to deliver increased API surface area for PowerPoint going forward.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;In Excel on the web, when you close an Office Add-In, it creates a bar on the left side of Excel and puts an icon for the add-in on that bar, allowing the user to quickly show or hide add-ins from there. Will this be available in Excel on the desktop?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thanks for this feature request! Can you let us know more about this on our &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform/label-name/office%20add-ins%20development" target="_blank" rel="noopener"&gt;ideas page&lt;/A&gt; and provide a screen shot to help us understand better?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Will you support Excel.Range.Interior characters and the ability to apply formatting at the character level?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thanks for this request! We’re looking into supporting this. Can you please create a request for this on our &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform/label-name/office%20add-ins%20development" target="_blank" rel="noopener"&gt;ideas page&lt;/A&gt;?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Resources:&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Keyboard shortcuts&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/office/dev/add-ins/design/keyboard-shortcuts" target="_blank" rel="noopener"&gt;Custom keyboard shortcuts in Office Add-ins - Office Add-ins | Microsoft Docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/excel-keyboard-shortcuts" target="_blank" rel="noopener"&gt;PnP sample: Use keyboard shortcuts for Office add-in actions&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Custom contextual tabs&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/office/dev/add-ins/design/contextual-tabs" target="_blank" rel="noopener"&gt;Create custom contextual tabs in Office Add-ins - Office Add-ins | Microsoft Docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/office-contextual-tabs" target="_blank" rel="noopener"&gt;PnP sample: Create custom contextual tabs on the ribbon&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Office Scripts demo by Damien Bird&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Excel demo: &lt;A href="https://damobird365.birdhoose.co.uk/exceldemo" target="_blank" rel="noopener"&gt;https://damobird365.birdhoose.co.uk/exceldemo&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/channel/UC-NCKrEw6CM8fidaIk-yrUQ" target="_blank" rel="noopener"&gt;DamoBird365 - YouTube&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Outlook event-based activation&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/outlook-add-ins-overview" target="_blank" rel="noopener"&gt;Outlook add-ins overview - Office Add-ins | Microsoft Docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch" target="_blank" rel="noopener"&gt;Configure your Outlook add-in for event-based activation (preview) - Office Add-ins | Microsoft Docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP sample: &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/outlook-set-signature" target="_blank" rel="noopener"&gt;Use Outlook event-based activation to set the signature (preview)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Office Add-ins community call&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;Recurring, monthly community call calendar invite&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/officeaddinsform" target="_blank" rel="noopener"&gt;Community call topic requests and questions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Community call recordings on the &lt;A href="https://aka.ms/OfficeDevYouTube" target="_blank" rel="noopener"&gt;YouTube Office Dev channel&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Office Add-ins feedback&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Technical questions – Microsoft Q&amp;amp;A (&lt;A href="https://docs.microsoft.com/answers/topics/office-js-dev.html" target="_blank" rel="noopener"&gt;office-js-dev&lt;/A&gt;), (&lt;A href="https://docs.microsoft.com/answers/topics/office-addins-dev.html" target="_blank" rel="noopener"&gt;office-addins-dev&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;Issues – &lt;A href="https://github.com/OfficeDev/office-js/issues" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Recommendations and suggestions – &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Platform ideas&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The next Office Add-ins community call is on &lt;STRONG&gt;Wednesday, June 9, 2021 &lt;/STRONG&gt;at 8:00AM PDT. Get the calendar invite at &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscommunitycall&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Thu, 20 May 2021 09:16:05 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-ins-community-call-may-2021/ba-p/2369804</guid>
      <dc:creator>David Chesnut</dc:creator>
      <dc:date>2021-05-20T09:16:05Z</dc:date>
    </item>
    <item>
      <title>Microsoft Teams Community Call - May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-teams-community-call-may-2021/ba-p/2365081</link>
      <description>&lt;P&gt;Recording of the Microsoft Teams monthly community call from May 18, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="teams-18th-recording-promo.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281701iE6894D4BFFB2D7FA/image-size/large?v=v2&amp;amp;px=999" role="button" title="teams-18th-recording-promo.png" alt="teams-18th-recording-promo.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Latest news from Microsoft engineering on Microsoft Teams updates and community assets.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Register for &lt;A href="https://build.microsoft.com/" target="_blank" rel="noopener"&gt;Microsoft Build&lt;/A&gt;.&amp;nbsp; &amp;nbsp;Sign up for May trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;. &amp;nbsp;&amp;nbsp;Visit the &lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener"&gt;Microsoft Teams samples gallery&lt;/A&gt; to get started with Microsoft Teams development.&amp;nbsp; See the new &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt; co-developed by Microsoft Teams and Sharepoint engineering.&amp;nbsp; Get the Microsoft Teams Toolkit (Controls) – “&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/design/design-teams-app-overview" target="_blank" rel="noopener"&gt;Designing your Microsoft Teams app&lt;/A&gt;” with layout guidance and reusable assets. &amp;nbsp;&amp;nbsp;Three great demos delivered during this session.&amp;nbsp; The host of this call was &lt;A href="http://twitter.com/vesajuvonen" target="_self"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen. Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/adVfHsp8PfM" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Register for Microsoft Build, May 25 – 27, 2021 - &lt;A href="https://build.microsoft.com" target="_blank" rel="noopener"&gt;https://build.microsoft.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – June&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xCOEtTWFJSREg2UFY2NkpPUk5GNk9YVS4u" target="_blank" rel="noopener"&gt;June 8&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Teams Dev – June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Call attention to your great work by using the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/hashtag/PnPWeekly?src=hashtag_click" target="_blank" rel="noopener nofollow noreferrer"&gt;#PnPWeekly&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;on Twitter.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Teams Development Samples:&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(&lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/teams-samples&lt;/A&gt;)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Your community is looking for Samples!&amp;nbsp; Please share your good work&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210518-together-mode.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281703i39422C9402F0A302/image-size/large?v=v2&amp;amp;px=999" role="button" title="210518-together-mode.gif" alt="210518-together-mode.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Always a highlight to see you here.&amp;nbsp; Enjoy Microsoft Build.&amp;nbsp; Looking forward to seeing you in person at an event one day.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;delivered in this session&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Introduction to Microsoft Teams Developer Portal &lt;/STRONG&gt;- Meet the new and improved app management console for developers.&amp;nbsp; Access the tools portal from a browser and from within Microsoft Teams client.&amp;nbsp; &amp;nbsp;This is the place to add - register and configure your Teams apps.&amp;nbsp; New safeguards to prevent apps from having same app IDs. &amp;nbsp;&amp;nbsp;Key areas differentiating portal from App Studio called out.&amp;nbsp; Access App Source from portal.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Elevate user experiences with Universal Actions on Teams and Outlook&lt;/STRONG&gt; - deck, demo and documentation about consistent message (action) handling across apps (Teams, Outlook and more) using Adaptive Cards with the new Action.Execute action type.&amp;nbsp; User takes action on either Teams or Outlook and action is reflected on the other platform.&amp;nbsp; &amp;nbsp;&amp;nbsp;Vacation approval scenario shows contextual views and sequential workflows on Teams. &amp;nbsp;Excellent documentation, quick start guide and code samples. &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Getting started on building Microsoft Teams meeting apps&lt;/STRONG&gt; – step through meeting extensions - pre-meeting (tab – a poll), in-meeting (side panel tab, pop-up, extension, and bot) and post-meeting (tab).&amp;nbsp; &amp;nbsp;Understand needed manifest updates.&amp;nbsp;&amp;nbsp; Microsoft Forms is a great meeting extension.&amp;nbsp; Demo - create a meeting, add the Forms app to it and observe how Forms does configuration.&amp;nbsp; &amp;nbsp;Meeting extensions are built on top of tabs, bots and messaging extensions.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Thank you for your work. Samples are often showcased in Demos.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Topics&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;covered in this call&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;News and updates -&lt;SPAN&gt;&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_self" rel="nofollow noopener noreferrer"&gt;Vesa Juvonen&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @vesajuvonen -&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/adVfHsp8PfM?t=215" target="_self"&gt;3:35&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Introduction to Microsoft Teams Developer Portal – &lt;A href="http://twitter.com/KarthigBalendr1" target="_blank" rel="noopener"&gt;Karthig Balendran&lt;/A&gt; (Microsoft) | @KarthigBalendr1 - &lt;A href="https://youtu.be/adVfHsp8PfM?t=620" target="_self"&gt;10:20&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Elevate user experiences with Universal Actions on Teams and Outlook – Shiladitya Saha (Microsoft) - &lt;A href="https://youtu.be/adVfHsp8PfM?t=1410" target="_self"&gt;23:30&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Getting started on building Microsoft Teams meeting apps – &lt;A href="http://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;Rick van Rousselt&lt;/A&gt; (Advantive) | &amp;nbsp;@RickVanRousselt - &lt;A href="https://youtu.be/adVfHsp8PfM?t=2214" target="_self"&gt;36:54&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kpMzzF54-dSWtST?e=nTudgC" target="_blank" rel="nofollow noopener noreferrer"&gt;Slides used in this ​community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Site – &lt;A href="http://dev.teams.microsoft.com/home" target="_blank" rel="noopener"&gt;Developer Portal for Microsoft Teams&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/universal-actions-for-adaptive-cards/overview" target="_blank" rel="noopener"&gt;Universal Actions for Adaptive Cards&lt;/A&gt;&amp;nbsp;&lt;U&gt;&lt;/U&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;U&gt;&lt;/U&gt;Quick Start Guide - &lt;A style="background-color: #ffffff;" href="https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/universal-actions-for-adaptive-cards/work-with-universal-actions-for-adaptive-cards" target="_blank" rel="noopener"&gt;Work with Universal Actions for Adaptive Cards&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog - &lt;A href="https://www.rickvanrousselt.com/" target="_blank" rel="noopener"&gt;Rick's blog&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 127 with guest MVP&amp;nbsp;&lt;A href="http://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;Rick van Rousselt&lt;/A&gt; (Advantive) | @RickVanRousselt | &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-127-rick-van-rousselt/ba-p/2361251" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-127-17th-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://adoption.microsoft.com/extensibility-look-book?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365/extensibility&lt;/LI&gt;
&lt;LI&gt;Controls - &amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/Designing%20your%20Microsoft%20Teams%20app" target="_blank" rel="noopener"&gt;Designing your Microsoft Teams app&lt;/A&gt; |&amp;nbsp;&lt;A href="https://aka.ms/teams/ui/design" target="_blank" rel="noopener"&gt;https://aka.ms/teams/ui/design&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/teams-dev-samples/" target="_blank" rel="noopener nofollow noreferrer"&gt;Microsoft Teams Samples Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/teams-samples&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General resources&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Learn -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/learn/browse/?products=office-teams&amp;amp;resource_type=learning%20path&amp;amp;roles=developer&amp;amp;expanded=office&amp;amp;wt.mc_id=devcomteams_learningpaths_webpage_mw" target="_self" rel="noopener noreferrer"&gt;Microsoft Teams development Learning Paths&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension" target="_blank" rel="noopener noreferrer"&gt;Microsoft Teams Toolkit for Visual Studio Code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/samples/app-templates?wt.mc_id=devcomteams_viewapptemplates_webpage_mw" target="_self" rel="noopener noreferrer"&gt;Microsoft Teams app templates&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams-training" target="_blank" rel="noopener noreferrer"&gt;Yo Teams video training package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365devyoutube" target="_self" rel="noopener noreferrer"&gt;Microsoft 365 Developer videos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365devyoutube&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 community (PnP) videos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp/videos&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams" target="_blank" rel="noopener noreferrer"&gt;yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/yoteams&lt;/LI&gt;
&lt;LI&gt;Video -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://youtu.be/w0OrFkzNC10" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started using yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener nofollow noreferrer"&gt;Wictor Wilén&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Avanade)| @wictor&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming Calls | Recurrent Invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;May 20&lt;SUP&gt;t&lt;/SUP&gt;&lt;SUP&gt;h&lt;/SUP&gt; at 9:00 am PDT |&amp;nbsp;&lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;June 9&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;June 10&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call –&lt;/STRONG&gt; June 15&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Microsoft Teams monthly community calls are targeted at anyone who's interested in Microsoft Teams development topics. This includes Microsoft Teams, Bots, App templates, Samples, and more.&amp;nbsp; Details on the Microsoft 365 community from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365pnp&lt;/A&gt;. We also welcome community demos, if you are interested in doing a live demo in these calls!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can download recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/SPAN&gt;. Welcome and join in the discussion. If you have any questions, comments, or feedback, feel free to provide your input as comments to this post as well. More details on the Microsoft 365 community and options to get involved are available from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 19th of May 2021&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 07:52:01 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-teams-community-call-may-2021/ba-p/2365081</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-19T07:52:01Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Weekly - Episode 127 - Rick Van Rousselt</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-127-rick-van-rousselt/ba-p/2361251</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumb-Ep127.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281342iD8D828E60044062F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumb-Ep127.png" alt="Thumb-Ep127.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this installment of the weekly discussion revolving around the latest news and topics on&amp;nbsp;&lt;SPAN&gt;Microsoft 365&lt;/SPAN&gt;, hosts –&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt;&amp;nbsp;(Microsoft) | @vesajuvonen,&amp;nbsp;&lt;A href="http://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt;&amp;nbsp;(Microsoft) | @waldekm are joined by Belgium-based, MVP, author, Microsoft Teams developer, and CTO with Advantive, &lt;A href="http://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;Rick Van Rousselt&lt;/A&gt; | @RickVanRousselt.&amp;nbsp;&amp;nbsp; Topics discussed in this session can be summarized with one word.&amp;nbsp; &amp;nbsp;Change!&amp;nbsp; The leap from Teams tab (iFrame) to Extension (Bot Framework) development, or transition from Skype to Teams, in the customer’s mind.&amp;nbsp; &amp;nbsp;Many customers are now circling back to Microsoft partners for guidance on optimizing Microsoft 365 and Microsoft Teams, yet interestingly at differing rates Worldwide.&amp;nbsp; Clearly in part, adoption is cultural. &amp;nbsp;&amp;nbsp;As well, the partner business has changed from having a development to a consultative focus, from selling and executing long term to short term projects, and the staff from specialists to generalists.&amp;nbsp; &amp;nbsp;&amp;nbsp;The pace of change is fast, challenging and rewarding. &amp;nbsp;&amp;nbsp;Case in point on the pace of change - Microsoft and the PnP Community delivered a box busting 29 articles in this last week!&amp;nbsp; This session was recorded on Monday, May 17, 2021.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Please remember to keep on providing us feedback on how we can help on this journey. We always welcome feedback on making the community more inclusive and diverse.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;LI-VIDEO vid="https://youtu.be/m0cAGLr2O98" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;SPAN style="font-family: inherit;"&gt;This episode was recorded on Monday, May 17, 2021.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Video at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube channel.&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Podcast format at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://pnpweekly.podbean.com.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;These videos and podcasts are published each week and are intended to be roughly 45 - 60 minutes in length.&amp;nbsp; Please do give us feedback on this video and podcast series and also do let us know if you have done something cool/useful so that we can cover that in the next weekly summary! The easiest way to let us know is to share your work on Twitter and add the hashtag&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/search?q=%23pnpweekly" target="_self" rel="nofollow noopener noreferrer"&gt;#PnPWeekly&lt;/A&gt;. We are always on the lookout for refreshingly new content. “&lt;EM&gt;Sharing is caring!”&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are all the links and people mentioned in this recording. Thanks, everyone for your contributions to the community!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Events:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;May 25-27, 2021-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mybuild.microsoft.com/?WT.mc_id=m365-28827-wmastyka" target="_self" rel="noopener noreferrer"&gt;Microsoft Build 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;June 1-2, 2021 -&amp;nbsp;&lt;A href="https://www.sharepointeurope.com/conference/schedule/" target="_blank" rel="noopener"&gt;European SharePoint Conference 2021 - Online&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;August 9-11, 2021 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.collabsummit.org/" target="_blank" rel="noopener nofollow noreferrer"&gt;North American Collaboration Summit&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;Register with coupon code "PnP" for 25% off from the prize at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://nacs.ticketspice.com/nacs2021" href="https://nacs.ticketspice.com/nacs2021" target="_blank" rel="noreferrer noopener nofollow"&gt;https://nacs.ticketspice.com/nacs2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-blog/behind-the-scenes-on-microsoft-viva-with-microsoft-mechanics/ba-p/2323255?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Behind the scenes on Microsoft Viva with Microsoft Mechanics&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/SethPat" target="_blank" rel="noopener"&gt;Seth Patton&lt;/A&gt; (Microsoft) |&amp;nbsp;@SethPat&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-blog/microsoft-365-admin-center-network-connectivity-is-now-generally/ba-p/2344877?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Microsoft 365 admin center network connectivity is now generally available&lt;/A&gt; - &lt;A href="https://twitter.com/pndrw" target="_blank" rel="noopener"&gt;Paul Andrew&lt;/A&gt; (Microsoft) |&amp;nbsp;@pndrw&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-teams-blog/customer-key-support-for-microsoft-teams-now-generally-available/ba-p/2349855?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Customer Key support for Microsoft Teams now Generally Available!&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/experience-the-magic-of-espc21-online-training-free-and-paid/ba-p/2352710?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Experience the magic of ESPC21 Online training – free and paid options&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/viva-topics-is-the-on-hovercraft-of-knowledge-the-intrazone/ba-p/2342941?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;“Viva Topics is the on-hovercraft of knowledge” :studio_microphone:&lt;/img&gt; – The Intrazone podcast&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman,&amp;nbsp;&lt;A href="https://twitter.com/cmcnulty2000" target="_blank" rel="noopener"&gt;Chris McNulty&lt;/A&gt; (Microsoft) | @cmcnulty2000 &amp;amp;&amp;nbsp;CJ Tan (Microsoft)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-net-sdk-v4-adds-enhanced-features-now-in-preview/?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Microsoft Graph .NET SDK v4 adds enhanced features – now in preview&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-renewal-offering-for-your-apps-publisher-attestation-and-microsoft-365-certification/?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;New renewal offering for your app’s Publisher Attestation and Microsoft 365 Certification&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-mailbag-azure-ad-applications-and-users-for-testing/?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Microsoft Graph Mailbag – Azure AD applications and users for testing&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/briantjackett" target="_blank" rel="noopener"&gt;Brian T. Jackett&lt;/A&gt; (Microsoft) |&amp;nbsp;&lt;LI-USER uid="4556"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/five-new-features-enhancing-adaptive-cards-in-microsoft-teams/?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Five new features enhancing Adaptive Cards in Microsoft Teams&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/Ojasvi" target="_blank" rel="noopener"&gt;Ojasvi Choudhary&lt;/A&gt; (Microsoft) |&amp;nbsp;@Ojasvi&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Community articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/excel-scripts-and-cloud-flows-data-manipulation/ba-p/2356956?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Excel Scripts and Cloud Flows - Data Manipulation&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/damobird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt;&amp;nbsp;(Aberdeen City Council) |&amp;nbsp;&lt;LI-USER uid="1035201"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-arjun-menon/ba-p/2356938?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Arjun Menon&lt;/A&gt; - &lt;A href="https://twitter.com/arjunumenon" target="_blank" rel="noopener"&gt;Arjun Menon&lt;/A&gt; (Tata Consultancy Services) | @arjunumenon &amp;amp; &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@LuiseFreese&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/react-groups-and-teams-filters/ba-p/2355920?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;React Groups and Teams Filters&lt;/A&gt; - &lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/1047184?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Alison Collins&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/getting-started-with-azure-shell-and-pnp-powershell-with/ba-p/2315482?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Getting Started with Azure Shell and PnP PowerShell with Certificates&lt;/A&gt; - &lt;A href="https://twitter.com/pkbullock" target="_blank" rel="noopener"&gt;Paul Bullock&lt;/A&gt; (Capa Creative) |&amp;nbsp;@pkbullock&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/setting-up-https-for-teams-tabs-projects-without-ngrok/ba-p/2351012?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Setting up https for Teams Tabs projects - without ngrok&lt;/A&gt; - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) |&amp;nbsp;@Bob1German&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-automate-skip-the-parse-json-action-to-reference-data/ba-p/2336866?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Power Automate: skip the Parse JSON action to reference data&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/lohndjango" target="_blank" rel="noopener"&gt;Django Lohn&lt;/A&gt; (InSpark) |&amp;nbsp;&lt;LI-USER uid="179280"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-news-ticker-app-spfx-extensions/ba-p/2337566?WT.mc_id=m365-28827-wmastyka" target="_blank" rel="noopener"&gt;Community Sample: News Ticker app (SPFx Extensions)&lt;/A&gt; - Ari Gunawan&amp;nbsp;&lt;SPAN&gt;(DevStack) |&amp;nbsp;@AriGunawan&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://ashiqf.com/2021/05/09/resubmit-your-failed-power-automate-flow-runs-automatically-using-m365-cli-and-rest-api/amp/#top" target="_blank" rel="noopener"&gt;Resubmit your failed Power Automate flow runs automatically using M365 CLI and REST API&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/AshiqFaleel" target="_blank" rel="noopener"&gt;Mohamed Ashiq Faleel&lt;/A&gt; (Tata Consultancy Services) |&amp;nbsp;&lt;LI-USER uid="435366"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://blog.yannickreekmans.be/spfx-people-search-web-part-v2-5-0/" target="_blank" rel="noopener"&gt;SPFx People Search web part, v2.5.0&lt;/A&gt; - &lt;A href="https://twitter.com/yannickreekmans" target="_blank" rel="noopener"&gt;Yannick Reekmans&lt;/A&gt; (Qubix) |&amp;nbsp;@yannickreekmans&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://mmsharepoint.wordpress.com/2021/05/17/configure-teams-applications-with-azure-app-configuration-nodejs/" target="_blank" rel="noopener"&gt;Configure Teams Applications with Azure App Configuration (nodeJS)&lt;/A&gt; - &lt;A href="https://twitter.com/Moeller2_0" target="_blank" rel="noopener"&gt;Markus Möller&lt;/A&gt; (Avanade) |&amp;nbsp;@Moeller2_0&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://zerg00s.github.io/sp-modern-classes/" target="_blank" rel="noopener"&gt;SharePoint Online CSS Classes&lt;/A&gt; - &lt;A href="https://twitter.com/Zerg00s" target="_blank" rel="noopener"&gt;Denis Molodtsov&lt;/A&gt; (Point Alliance) |&amp;nbsp;@Zerg00s&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://michelcarlo.com/2021/05/15/teams-power-apps-building-theme-and-context-aware-apps/" target="_blank" rel="noopener"&gt;Teams + Power Apps: Building context/theme aware apps&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/michelcarlo" target="_blank" rel="noopener"&gt;Michel Mendes&lt;/A&gt; (Storm Technology Ltd) |&amp;nbsp;&lt;LI-USER uid="65753"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://aakashbhardwaj619.github.io/2021/05/15/Teams-Activity-Notifications-Azure.html" target="_blank" rel="noopener"&gt;Teams Activity Notifications using Azure Services&lt;/A&gt; - &lt;A href="https://twitter.com/aakash_316" target="_blank" rel="noopener"&gt;Aakash Bhardwaj&lt;/A&gt; (Microsoft) |&amp;nbsp;@aakash_316&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/pnp/pnpjs/blob/main/CHANGELOG.md" target="_blank" rel="noopener"&gt;PnPjs 2.5 change log&lt;/A&gt; - &lt;/SPAN&gt;&lt;A href="https://twitter.com/jfj1997" target="_blank" rel="noopener"&gt;Julie Turner&lt;/A&gt; (Sympraxis Consulting) |&amp;nbsp;@jfj1997&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://spblog.net/post/2021/05/12/spfx-fast-serve-3-0-it-s-all-about-simplicity" target="_blank" rel="noopener"&gt;spfx-fast-serve 3.0: it's all about simplicity&lt;/A&gt; - &lt;A href="https://twitter.com/sergeev_srg" target="_blank" rel="noopener"&gt;Sergei Sergeev&lt;/A&gt; (Mastaq) |&amp;nbsp;@sergeev_srg&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://veronicageek.com/microsoft-365/sharepoint-online/find-who-deleted-files-in-sharepoint-online-using-powershell-pnp-from-the-recycle-bin/2021/05/" target="_blank" rel="noopener"&gt;Find who deleted files in SharePoint Online using PowerShell PnP (from the recycle bin)&lt;/A&gt; - &lt;A href="https://twitter.com/veronicageek" target="_blank" rel="noopener"&gt;Veronique Lengelle&lt;/A&gt; (CPS) |&amp;nbsp;@veronicageek&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=H6EDU40JE2E" target="_blank" rel="noopener"&gt;Episode #154 - Introducing the Microsoft Graph Toolkit&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@PaoloPia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=DT6BpixFbHY" target="_blank" rel="noopener"&gt;Power Automate SharePoint Get Column Changes&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=d4e1whKVJU4" target="_blank" rel="noopener"&gt;Flow Approval Dashboard in Power Apps for SharePoint&lt;/A&gt; - &lt;A href="https://twitter.com/rezadorrani" target="_blank" rel="noopener"&gt;Reza Dorrani&lt;/A&gt; (Catapult Systems) |&amp;nbsp;&lt;LI-USER uid="285374"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://regarding365.com/lesson-1-the-attitude-of-a-decision-maker-can-impact-the-entire-platform-experience-5a891e12e677" target="_blank" rel="noopener"&gt;Lesson 1: The attitude of a decision maker can impact the entire platform experience&lt;/A&gt; - &lt;A href="https://twitter.com/MeganStrant" target="_blank" rel="noopener"&gt;Megan Strant&lt;/A&gt; (Strant Consulting) |&amp;nbsp;&lt;LI-USER uid="579847"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/powerplatform-samples" target="_self" rel="noopener noreferrer"&gt;Power Platform Sample Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for finding easily samples from the GitHub - contributions from the community are welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;PnP Sharing is Caring initiative&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Getting started guidance and training for using GitHub and contributing to the community&lt;/LI&gt;
&lt;LI&gt;Want to ask a question or in general engage with the community - Add a note in the Microsoft 365 PnP Community hub at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out all the great community calls, SDKs, and tooling for Microsoft 365 from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for Microsoft 365 engineering or visitors – please let us know. We will do our best to address your requests or questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Sharing is caring!"&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 18 May 2021 11:34:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-127-rick-van-rousselt/ba-p/2361251</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-18T11:34:22Z</dc:date>
    </item>
    <item>
      <title>Excel Scripts and Cloud Flows - Data Manipulation</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/excel-scripts-and-cloud-flows-data-manipulation/ba-p/2356956</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281007i368C3E73001AFF26/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have you discovered that the existing Power Automate actions for Excel are limited to Excel Tables?&amp;nbsp; Are you looking to take your cloud flow interactions with Excel to the next level?&amp;nbsp; Maybe it's time to start looking at &lt;A href="https://support.microsoft.com/en-us/office/introduction-to-office-scripts-in-excel-9fbe283d-adb8-4f13-a75b-a81c6baf163a" target="_blank"&gt;Excel Scripts&lt;/A&gt; which are currently accessible to Power Automate as a Preview Feature.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What are Excel Scripts?&amp;nbsp; Using either the built in recording tool or TypeScript programming language you can create a script to update cells, rows or ranges of data or indeed insert formulas into cells.&amp;nbsp; You can even use Excel to perform some of the features missing to Power Automate like &lt;A href="https://www.tachytelic.net/2021/04/power-automate-sort-array-objects/" target="_blank"&gt;sorting an array&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have prepared a two part video series demo'ing how you can use Power Automate and Excel Scripts to both send data to a plain excel file and populate cells, rows and ranges but also in return, again using Excel Scripts, how you can create a table in an Excel file and return the available data either as a results array for your next action in your Cloud Flow OR by using the list all rows action based on the newly created table.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;First Video&lt;/STRONG&gt; on Populating Excel from Cloud Flows is available here:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IFRAME src="https://www.youtube.com/embed/Q7GLQnvJJF0" width="560" height="315" frameborder="0" allowfullscreen="" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The below Cloud Flow is relatively straight forward for this first part demo.&amp;nbsp; We have an array of Rows for our Excel Worksheet and this demonstrates one of many ways to pass data to Excel via the Script Action.&amp;nbsp; The real benefit of creating a bespoke function in Excel Scripts is that the Script Action is dynamic.&amp;nbsp; It will return the fields you have defined in the action window and ensure the datatype provided is correct, i.e. string or number.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DamoBird365_0-1621076762535.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280853iF746EEC5EF6A49E0/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_0-1621076762535.png" alt="DamoBird365_0-1621076762535.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the sample Typescript Excel Script built below, you can try this for yourself.&amp;nbsp; The script will populate unique cells, columns and rows with data based on the 4 variable types defined, examplevar1-4 as strings, numbers, multivariables and arrays.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;function main(workbook: ExcelScript.Workbook,

  examplevar1: string,
  examplevar2: number,
  examplevar3: multivariable, //Header of Table
  examplevar4: arrayvar[] //Multiple rows in Table

) {

  let selectedSheet = workbook.getActiveWorksheet();
  
  // Set cells A1,B2,C3,D4 on selectedSheet
  selectedSheet.getRange("A1").setValue(examplevar1);
  selectedSheet.getRange("B2").setValue(examplevar2);
  selectedSheet.getRange("C3").setValue(examplevar1 + ' ' + examplevar2);
  selectedSheet.getRange("D4").setValue(examplevar2 + 1111);

  //An example function to reverse the strings
  function reverseString(str: string) {
    return str.split("").reverse().join("");
  }

  //Create Vertical Header Row with Multi Variables
  const formattedColumn = [
    [reverseString(examplevar3.multivar3var1)], 
    [reverseString(examplevar3.multivar3var2)],
    [reverseString(examplevar3.multivar3var3)],
    [reverseString(examplevar3.multivar3var4)],
    [reverseString(examplevar3.multivar3var5)],
    [reverseString(examplevar3.multivar3var6)]];

  selectedSheet.getRange("F1:F6").setValues(formattedColumn);

  //Create Horizontal Header Row with Multi Variables 
  const formattedHeader = [[examplevar3.multivar3var1, examplevar3.multivar3var2, examplevar3.multivar3var3, examplevar3.multivar3var4, examplevar3.multivar3var5, examplevar3.multivar3var6]];
    
  selectedSheet.getRange("A8:F8").setValues(formattedHeader);

  //Populate rows below Header Row with Array Variable 
  const starterrow = 9; //starting row for "table" data
  
  for (let i = 0; i &amp;lt; examplevar4.length; i++) {
    const currentObject = examplevar4[i];

    const formattedrow = [[currentObject.arr4var1, currentObject.arr4var2, currentObject.arr4var3, currentObject.arr4var4, currentObject.arr4var5, currentObject.arr4var6,]];

    const rowRange = `A${starterrow + i}:F${starterrow + i}`;
    selectedSheet.getRange(rowRange).setValues(formattedrow);
  }

  //Return a response to the Cloud Flow
  return "DamoBird365 Loaded " + examplevar4.length + " Records Loaded into Excel and Demo Completed OK"
}

//Defining Interfaces for MultiVar and Array

interface multivariable {
  multivar3var1: string,
  multivar3var2: string,
  multivar3var3: string,
  multivar3var4: string,
  multivar3var5: string,
  multivar3var6: string
}

interface arrayvar {
  arr4var1: number,
  arr4var2: string,
  arr4var3: string,
  arr4var4: string,
  arr4var5: string,
  arr4var6: string
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Second video&lt;/STRONG&gt; on retrieving data back from Excel files without a table.&amp;nbsp; Identify the active cells, define and create a table via the script and return the data to your cloud flow as either a result to the script action or via the traditional list rows actions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IFRAME src="https://www.youtube.com/embed/UspiIlj6hSQ" width="560" height="315" frameborder="0" allowfullscreen="" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Cloud flow on this occasion does not require any data input as its purpose is to return data back to the flow.&amp;nbsp; Whilst the data could be fully repurposed in Excel, as a &lt;STRONG&gt;Power Automate enthusiast&lt;/STRONG&gt;, I have used a select action to reformat the Array and rename the keys.&amp;nbsp; Both the Select Action and the List Rows Action demonstrate the two methods for retrieving data from Excel where no table was present previously.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DamoBird365_1-1621076794170.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280854iCAA66655C04C0872/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_1-1621076794170.png" alt="DamoBird365_1-1621076794170.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Again, in the sample Typescript Excel Script built below, you can quickly test out the functionality of creating a table and returning data to your cloud flow.&amp;nbsp; The code is commented to help you understand how the solution is built.&amp;nbsp; Please note I am not a coder but with the available resources online, I was quickly able to understand how to put this together.&amp;nbsp; The recording tool is also useful for getting an understanding of some of the functions available.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;function main(workbook: ExcelScript.Workbook) {

  // Get the first worksheet 
  const selectedSheet = workbook.getFirstWorksheet();

  //get active range of WorkSheet
  let range = workbook.getActiveWorksheet().getUsedRange();

  // Get last used row of WorkSheet
  let lastrow = range.getRowCount();

  // Find first reference of ID in selectedSheet i.e. header row
  let IDCell = selectedSheet.getRange("A1").find("ID", { completeMatch: true, matchCase: true, searchDirection: ExcelScript.SearchDirection.forward });

  // Get the current active cell in the workbook.
  //and format current cell without Sheet1! reference
  let activeCell = IDCell.getAddress().replace("Sheet1!", "");

  //get table range  
  const TableRange = `${activeCell}:F${lastrow}`;

  // Create a table using the data range.
  let newTable = workbook.addTable(selectedSheet.getRange(TableRange), true);
  newTable.setName("NewTableInExcel");

  // Get the first (and only) table in the worksheet.
  let table = selectedSheet.getTables()[0];

  // Get the data from the table.
  let tableValues = table.getRange().getValues();

  //Return a response to the Cloud Flow
  return tableValues

}

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Where do you find Excel Scripts Functionality?&lt;/STRONG&gt;&amp;nbsp; It's an Excel Online feature.&amp;nbsp; Load up Excel and click on the Automate Tab.&amp;nbsp; Here you can view all scripts, record some actions and edit new or existing scripts that have been built.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DamoBird365_0-1621236507649.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281004i15807D706F28766B/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_0-1621236507649.png" alt="DamoBird365_0-1621236507649.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Wondering where they live?&lt;/STRONG&gt;&amp;nbsp; Jump onto OneDrive and take a look at Documents/Office Scripts where you can export/import and share.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DamoBird365_1-1621236596024.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/281005iF9129292C1DC059D/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_1-1621236596024.png" alt="DamoBird365_1-1621236596024.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Want to see a proof of concept ?&amp;nbsp; Take a look at my Invoicing Demo &lt;A href="https://damobird365.birdhoose.co.uk/2021/03/24/power-automate-office-scripts-populate-an-excel-template-dynamically-using-type-script/" target="_blank"&gt;here&lt;/A&gt; where I show you how you could autocompete an excel invoice template using scripts.&amp;nbsp; I recently covered this in a live demo with the Monthly (12th May) Microsoft Office Scripts Dev Team and included a bonus feature, converting the excel files to PDF using the same flow without premium actions.&amp;nbsp; Look out for this video on &lt;A href="https://www.youtube.com/c/Microsoft365Developer/videos" target="_blank"&gt;here&lt;/A&gt; soon.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please let me know if you found this useful and what you might use Excel Scripts for next.&lt;/P&gt;</description>
      <pubDate>Mon, 17 May 2021 07:50:54 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/excel-scripts-and-cloud-flows-data-manipulation/ba-p/2356956</guid>
      <dc:creator>DamoBird365</dc:creator>
      <dc:date>2021-05-17T07:50:54Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Community Spotlight: Arjun Menon</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-arjun-menon/ba-p/2356938</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arjun.jpg" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280855i50A8EDC8EF23A55D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Arjun.jpg" alt="Arjun.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Which community project do you maintain?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;CLI for Microsoft 365&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;How does it help people?&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It is a cross platform tool which is used by Developers and IT Pros with which you can configure Microsoft 365, manage SharePoint Framework projects and build automation scripts.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What have you been working on lately?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Script for notifying the tenant status for IT Pros&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What do you do at work?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;I am a consultant for Microsoft 365 services. Apart from that I am also part of a team who primarily develops the Digital workplace Apps related to Microsoft Teams.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Why are you a part of the M365 community?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Because of the Awesome work the Microsoft 365 community is doing selflessly. More than that the inclusiveness which the community provides for all the contributors irrespective of who you are and where you are from. I have seen lot of my peers and colleagues who have got benefited from the work of the community and nothing is better than being part of the community owing to their awesome work across the Microsoft 365 areas.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What was you first community contribution?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;First active contribution was back in July 2020 (17 July 2020 to be precise). From then on, there was no looking back for me.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;One tip for someone who’d like to start contributing&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Do not underestimate your contribution. You may think your contribution is so simple and it will not be beneficial to anyone (Let me confess, I also thought the same initially). With that you are underestimating the power of simplicity. It will be beneficial and may save a lot of time for someone who might be on the other side of the globe and can save his / her / theirs time. Be kind to people who contribute and support and be compassionate. Remember, people who are part of their community is doing this just out of sheer passion and ensure that you show gratitude and empathy.&amp;nbsp;&lt;BR /&gt;Remember community is there to help you and to support. I got that during my initial days and I am sure any contributor also will get similar treatment which I have received during my starting days.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 15 May 2021 11:08:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-arjun-menon/ba-p/2356938</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-15T11:08:47Z</dc:date>
    </item>
    <item>
      <title>React Groups and Teams Filters</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/react-groups-and-teams-filters/ba-p/2355920</link>
      <description>&lt;P&gt;In this article I’ll go over both of the filters you can find in my React Groups and Teams Filters webpart. The webpart is useful for&amp;nbsp;&lt;SPAN data-usefontface="true" data-contrast="none"&gt;site managers, admins, and users to find their sites and it’s&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;​i&lt;/SPAN&gt;&lt;SPAN data-usefontface="true" data-contrast="none"&gt;nformation.&amp;nbsp;&lt;/SPAN&gt;The first filter switches the All Groups in my Organization to My Groups and the second filters the visibility of the groups ( Public/Private/All )&lt;/P&gt;
&lt;P&gt;In the screenshot below you can see the code for the buttons.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="img1.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280774i6C0240580AC8F4D4/image-size/large?v=v2&amp;amp;px=999" role="button" title="img1.png" alt="img1.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 class="has-text-align-center lia-align-center"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 class="has-text-align-center lia-align-center"&gt;Visibility Filters&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The first three buttons are the visibility filters. They filter the MyGroupResultsFiltered to be the button text you clicked. For example, if you click the ‘Public’ button MyGroupResultsFiltered will be filtered to include only groups with the visibility set as ‘Public’.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border: none;" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%" style="border: none;"&gt;&lt;SPAN&gt;Let’s dive deeper into what’s happening. On click of, for instance, Private, the button calls the SwitchGroupList2 function (line 69) and passes through ‘Private’ as a parameter.&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD width="50%" style="border: none;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="img2.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280775i666631F4E7738F6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="img2.png" alt="img2.png" /&gt;&lt;/span&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;That parameter ‘Private’ is now called ‘Switch’ and next we check if that equals ‘All’.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If it does and you clicked the button titled ‘All’, we want to set the state of AllGroupsresults to the state holding all of the items. We do this because if I were to filter the AllGroupsresults to private and then switch to public and filter that, we’re just filtering a filtered list and you won’t get back any results. AllGroupsresults hold all of the results for Groups in my Organization and AllGroupsresultsFiltered is the filtered version of that list. In other words, when we get back the Groups ( both Groups in my Org and My Groups ) we make a copy of this list that we can filter however we would like and we can call on that list and filter it and assign it to the AllGroupsresultsFiltered value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the selected filter is anything other than ‘All’ we go ahead and create a constant that is assigned the filtered list. What this filter does is it maps through AllGroupsresults and checks if every group has the visibility that you selected, keeps the groups that has the visibility, and assigns the value to SwitchedALL. Same thing for MyGroupResults; It maps through MyGroupResults and filters the groups to be the ones that match the visibility you selected. Next, we set the state of AllGroupsresultsFiltered and MyGroupResultsFiltered to be SwitchedALL and SwitchedMY, respectively. In our case, we selected the button with the text ‘Private’ so AllGroupsresultsFiltered and MyGroupResultsFiltered will reflect this change and only show the groups with the visibility ‘Private’.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The last part is, after the if/else statement, we want to set the state ‘mode’ to be the selected filter. We’re doing this so that the button we clicked will have the ‘SelectedFilter’ styling. How we do this is by inputting a ternary operator in the code so that, depending on if the mode equals ‘Private’, we change the styling. If you selected the Private button the SwitchGroupList2 function will set the mode to be ‘Private’ and, consequently, rendering the button with the class ‘Selected Filter’.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="img3.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280777i621BDAEABE92A2A4/image-size/large?v=v2&amp;amp;px=999" role="button" title="img3.png" alt="img3.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2 class="has-text-align-center lia-align-center"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 class="has-text-align-center lia-align-center"&gt;Option Filter&lt;/H2&gt;
&lt;TABLE style="border: none;" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%" height="180px" style="border: none;"&gt;&lt;SPAN&gt;On the bottom right of the heading before the groups you will either see a button titled ‘My Groups’ or ‘Groups In My Organization’.&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD width="50%" height="180px" style="border: none;"&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="option filter.png" style="width: 902px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280780iA0796B9CD323BD3E/image-size/large?v=v2&amp;amp;px=999" role="button" title="option filter.png" alt="option filter.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P class="lia-align-center"&gt;&lt;SPAN&gt;This button allows you to toggle between either displaying groups you are a member of or groups in your organization. On click of this button you call the SwitchGroupList function. ( Not the SwitchGroupList2 function mentioned earlier )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border: none;" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%" style="border: none;"&gt;&lt;SPAN&gt;In this function we check if the title in state is ‘Groups In My Organization’. The title is what is displayed, meaning that if the button text is ‘View My Groups’ the title is ‘Groups In My Organization’.&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD width="50%" style="border: none;"&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="switch group list.png" style="width: 520px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280781i156E78B9D2C729F6/image-size/large?v=v2&amp;amp;px=999" role="button" title="switch group list.png" alt="switch group list.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;If the title is ‘Groups In My Organization’ we change it to be ‘My Groups’. The opposite also applies- if the title is ‘My Groups’ we go ahead and change it to be ‘Groups In My Organization’.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;Why is this part of the code? For two reasons: the first is because we want to toggle the button text and header text between ‘Groups In My Organization’ and ‘My Groups’ and also so that we can display the right information.&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border: none;" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="50%" style="border: none;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ternary.png" style="width: 845px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280782iA7EEBF7CD09C6FAF/image-size/large?v=v2&amp;amp;px=999" role="button" title="ternary.png" alt="ternary.png" /&gt;&lt;/span&gt;&lt;/TD&gt;
&lt;TD width="50%" style="border: none;"&gt;&lt;SPAN&gt;In the render there is a ternary operator that checks if the current selected option is ‘My Groups’.&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;SPAN&gt;If this is true it maps through MyGroupResultsFiltered and displays the groups. If not, it renders All of the groups in your organization.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;SPAN&gt;I hope you liked this article and it helped you out with your filters!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;SPAN&gt;You can view the code here: &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-groups-teams" target="_blank" rel="noopener"&gt;https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-groups-teams&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 15 May 2021 11:02:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/react-groups-and-teams-filters/ba-p/2355920</guid>
      <dc:creator>Alison_Collins</dc:creator>
      <dc:date>2021-05-15T11:02:17Z</dc:date>
    </item>
    <item>
      <title>Getting Started with Azure Shell and PnP PowerShell with Certificates</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/getting-started-with-azure-shell-and-pnp-powershell-with/ba-p/2315482</link>
      <description>&lt;P&gt;I recently encountered a scenario recently where I was looking to do a quick technical check on some advice I was giving to another member of the community regarding PowerShell – especially capturing the output of PnP PowerShell commands and store in a text file.&amp;nbsp; When I responded to the tweet, I was away from my computer, but I did have my iPad (with keyboard) with me and wanted to see if I could use PnP PowerShell with Azure Shell – you may have guessed the result by – YES you can. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was not using best security practice at the time to log in (username/password), which would not work if I had MFA on the account (which I should have ☹). I will include better practice configuration to include certificates and an Azure AD App in this article.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;What you will need&lt;/H2&gt;
&lt;P&gt;So, let's get started; you will need a few things to get going,&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Subscription&lt;/STRONG&gt; - this is necessary for a storage account that preserves your files between sessions and is mandatory for Azure cloud shell to work.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Resource Group &lt;/STRONG&gt;– the grouping of resources in Azure&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure KeyVault&lt;/STRONG&gt; - to store a certificate for a secure connection to M365 services.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP PowerShell&lt;/STRONG&gt; - the newest PnP power shell module, this article uses v1.5.0&lt;/LI&gt;
&lt;LI&gt;Permissions to &lt;STRONG&gt;&lt;EM&gt;consent&lt;/EM&gt;&lt;/STRONG&gt; an app as this uses an Azure AD app for the authentication.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows Machine&lt;/STRONG&gt; – for creating the app and certificate.&lt;/LI&gt;
&lt;LI&gt;If setting up services locally by PowerShell, then &lt;A href="https://www.powershellgallery.com/packages/Az/5.8.0" target="_blank" rel="noopener"&gt;install the Az module&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Setting Up&lt;/H2&gt;
&lt;P&gt;There are a few tasks we are going to do to set up working with Azure Shell, Azure AD App and Certificates.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Activate Azure Shell&lt;/H3&gt;
&lt;P&gt;First, let's go ahead and activate the Azure Shell; we will use this to set up the required resources as well:&lt;/P&gt;
&lt;P&gt;Navigate to &lt;A href="https://shell.azure.com" target="_blank" rel="noopener"&gt;https://shell.azure.com&lt;/A&gt; or click on the icon in the Azure Portal.&lt;/P&gt;
&lt;DIV id="tinyMceEditorPaul Bullock_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;Then run through the first setup of the Azure Shell:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell - First Welcome.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280437iFD9F0ECE9A07CDCD/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell - First Welcome.png" alt="Welcome screen Azure Shell" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Welcome screen Azure Shell&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Select PowerShell.&amp;nbsp;Then run through the first setup of the Azure Shell:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell - Simple Setup.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280438i3656B18BEB0A9634/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell - Simple Setup.png" alt="Simple setup screen for storage" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Simple setup screen for storage&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you choose "Create storage" at this point, then this will set up the storage account and resource group for you, using Azure's naming standards and region. If you want to specify:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Subscription&lt;/LI&gt;
&lt;LI&gt;Region&lt;/LI&gt;
&lt;LI&gt;Resource Group&lt;/LI&gt;
&lt;LI&gt;Storage account&lt;/LI&gt;
&lt;LI&gt;File share name&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell Advanced Settings.png" style="width: 981px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280439i150A0689B838C458/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell Advanced Settings.png" alt="Azure Shell Advanced Setup" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell Advanced Setup&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Then select Advanced settings. I like to name resources myself in a standard manner. For this article, I am going to use the advanced options and specify:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Region: "North Europe"&lt;/LI&gt;
&lt;LI&gt;Resource Group Name: "azure-cloud-shell"&lt;/LI&gt;
&lt;LI&gt;Storage Account: “pkbtenantcloudshell”&lt;/LI&gt;
&lt;LI&gt;File Share: "pkbtenantcloudshellfiles"&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Note: the naming of some of these resources is very strict, e.g., 3 -24 characters, no spaces, lowercase.&lt;/P&gt;
&lt;P&gt;Click "Create Storage"&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell - Setup Complete.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280440i048CB9009640E9C7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell - Setup Complete.png" alt="Azure Shell - Setup Complete" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - Setup Complete&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now the Azure Shell is ready to use.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Installing PnP-PowerShell&lt;/H3&gt;
&lt;P&gt;Next, we need to install the PnP PowerShell module in Azure Cloud shell, enter:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Install-Module -Name PnP.PowerShell&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The great thing about Azure Cloud Shell is the installation is persistent between sessions, so you will only have to do this once. However, you will need to upgrade the module periodically.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Installing PnP PowerShell module.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280441iF46A15B70C052DDA/image-size/large?v=v2&amp;amp;px=999" role="button" title="Installing PnP PowerShell module.png" alt="Azure Shell - Install PnP PowerShell" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - Install PnP PowerShell&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;For information on installing PnP-PowerShell, check out the documentation site for more details: &lt;A href="https://pnp.github.io/powershell/" target="_blank" rel="noopener"&gt;https://pnp.github.io/powershell/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Create a KeyVault&lt;/H3&gt;
&lt;P&gt;Next, we want somewhere secure to store a certificate – Azure KeyVault.&lt;BR /&gt;&lt;BR /&gt;A KeyVault is a secure method of storing keys, secrets and certificates. We intend to keep the certificate used for this setup in the vault. Another benefit of using this method, in larger organisations, where other teams manage apps or the security aspect of the tenant, they can set up this vault and retain control over the certificate and app creation.&lt;/P&gt;
&lt;P&gt;You can, if you prefer, navigate to the Azure Portal and use the marketplace to create a new KeyVault resource; &lt;A href="https://docs.microsoft.com/en-gb/azure/key-vault/general/quick-create-portal#sign-in-to-azure" target="_blank" rel="noopener"&gt;check out this quick start guide&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;OR set this up in Azure Cloud Shell run the following commands:&lt;/P&gt;
&lt;P&gt;Firstly, to check that the service is available in your preferred region, run the following:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;New-AzKeyVault -VaultName 'pkbtenant-keyvault' -ResourceGroupName 'azure-cloud-shell' -Location 'North Europe'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then, provision a new KeyVault (if you have one already, then skip this step) and give yourself access to Secrets and Certificates.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Set-AzKeyVaultAccessPolicy -VaultName 'pkbtenant-keyvault' -UserPrincipalName 'paul.bullock@tenant.co.uk' -PermissionsToCertificates All -PermissionsToSecrets All&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="New KeyVault - AzShell.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280442i5F85D789B10B2B5D/image-size/large?v=v2&amp;amp;px=999" role="button" title="New KeyVault - AzShell.png" alt="Azure Shell - Create KeyVault" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - Create KeyVault&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Please refer to the documentation if you want to be more specific around the KeyVault – &lt;A href="https://docs.microsoft.com/en-gb/azure/key-vault/general/quick-create-portal#create-a-vault" target="_blank" rel="noopener"&gt;Azure Portal&lt;/A&gt; | &lt;A href="https://docs.microsoft.com/en-us/powershell/module/az.keyvault/?view=azps-5.9.0" target="_blank" rel="noopener"&gt;PowerShell&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;We will be importing a certificate in a later section.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Create Azure AD App with Register-PnPAzureApp&lt;/H3&gt;
&lt;P&gt;There are a few options when setting up the authentication to connect with PnP PowerShell:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure AD App&lt;/STRONG&gt; – using your app (recommended), which will use the APPLICATION permissions, meaning the connection will use the permissions the app does.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP Management Shell&lt;/STRONG&gt; – the multi-tenant app PnP provides – this uses DELEGATE permissions meaning the connection will need to log in as the user and will only have access to services THE user has access to.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If you need clarification on the difference between the types of permissions, I highly recommend checking out an awesome community call demo from Philippe Signoret, Program Manager of the Microsoft Identity team: &lt;A href="https://youtu.be/_BfI4L7j1Po" target="_blank" rel="noopener"&gt;https://youtu.be/_BfI4L7j1Po&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So why are use an Azure AD app? Using the Azure Shell restricts some authentication options when connecting to services with PnP PowerShell, such as interactive login, because it cannot display a pop-up window.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PnP PowerShell - cannot use Azure Shell.png" style="width: 887px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280443i78DB2E453BCA80E9/image-size/large?v=v2&amp;amp;px=999" role="button" title="PnP PowerShell - cannot use Azure Shell.png" alt="Azure Shell - doesn't support interactive login" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - doesn't support interactive login&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The "-PnPManagementShell" parameter is an option; this uses the device login method BUT will require you to navigate to another site/page to authenticate, including going back to grab the code – then enter your login credentials further steps if MFA is enabled. IMHO feels a bit cumbersome to do this each time I want to do a task in the Shell, especially on an iPad/phone.&lt;/P&gt;
&lt;H3&gt;&lt;BR /&gt;Create an Azure AD App&lt;/H3&gt;
&lt;P&gt;To set up the app quickly with PnP PowerShell, you need to use a &lt;STRONG&gt;&lt;EM&gt;Windows machine&lt;/EM&gt;&lt;/STRONG&gt; to run the cmdlet &lt;EM&gt;"Register-PnPAzureApp"&lt;/EM&gt; which generates the certificate, creates the Azure AD app, sets API permissions, will pop up to consent to the app permissions.&lt;/P&gt;
&lt;P&gt;Note: you may have to install the PnP PowerShell locally if you do not already have it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To set up the app, run the following command using the PnP PowerShell cmdlet:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$result = Register-PnPAzureADApp -ApplicationName "PnP PowerShell Azure Shell Access" -Tenant yourtenant.co.uk -OutPath .\ -DeviceLogin -ValidYears 2 -CertificatePassword (ConvertTo-SecureString -String "yourpassword" -AsPlainText -Force)

$result #output the result – Specifically grab the AzureAppId/ClientId – you will need this later&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Register App - Windows.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280444iFAFA3BF7106E24A4/image-size/large?v=v2&amp;amp;px=999" role="button" title="Register App - Windows.png" alt="PowerShell - Registering Azure App" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;PowerShell - Registering Azure App&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;During this operation, two windows will pop-up to authenticate with the device login method and consent to the app permissions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want to check the app in Azure AD, navigate to: &lt;A href="https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps" target="_blank" rel="noopener"&gt;https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps&lt;/A&gt; and find the app called "PnP PowerShell Azure Shell Access"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note: This app uses the minimum API permissions (APPLICATION) as the default; if you want to perform operations with groups or flow as an example, you will need to add these permissions to the app.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure App Permissions - Application.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280445i52EBAC099476F437/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure App Permissions - Application.png" alt="Azure App - API permissions" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure App - API permissions&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;For more details on generating the app, check out the &lt;A href="https://pnp.github.io/powershell/articles/authentication.html" target="_blank" rel="noopener"&gt;authentication section of the documentation&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Adding Certificate to KeyVault&lt;/H2&gt;
&lt;P&gt;Now that we have the app setup, we need to upload the certificate to the KeyVault.&lt;/P&gt;
&lt;P&gt;Navigate to the KeyVault in the portal&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure KeyVault - Certificates.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280446i5CE2E9BF2C10AD95/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure KeyVault - Certificates.png" alt="Azure KeyVault - Navigating to Certificates" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure KeyVault - Navigating to Certificates&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Select "Import"&lt;/LI&gt;
&lt;LI&gt;Enter a name "azureshell-pnpps-connection"&lt;/LI&gt;
&lt;LI&gt;Select the generated certificate "PnP PowerShell Azure Shell Access.pfx"&lt;/LI&gt;
&lt;LI&gt;Enter the certificate password&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Click Create&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="KeyVault-Importing Certificate.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280447i46604D4A6DF19734/image-size/large?v=v2&amp;amp;px=999" role="button" title="KeyVault-Importing Certificate.png" alt="Azure Key Vault - Upload Certificate" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Key Vault - Upload Certificate&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This is ready to use in a later section.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Reducing the time to get going on new sessions&lt;/H2&gt;
&lt;P&gt;When I start the Azure Shell, I want to minimize the number of lines, to connect to the services securely and get going quickly.&lt;/P&gt;
&lt;H3&gt;Parameter Splatting&lt;/H3&gt;
&lt;P&gt;Parameter splatting is a method to pass a collection of parameters for a PowerShell command into a variable and apply this to the cmdlet you intend to run. Example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Get-NiceMessage -Param1 "good" -Param2 "morning" -Param3 "community"

# Splatting alternative
$MyParams = @{
	Param1 = "good",
	Param2 = "morning",
	Param3 = "community"	
}
Get-NiceMessage @MyParams&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will save time if you repeatedly apply the same parameters on the cmdlets, reducing the time to write the command and your scripts cleaner to read.&amp;nbsp; To read more about this PowerShell feature, &lt;A href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_splatting?view=powershell-7.1" target="_blank" rel="noopener"&gt;check out the documentation&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;PowerShell Profiles&lt;/H3&gt;
&lt;P&gt;Interestingly, I did not know about this feature until the MOTD message appeared on the Azure Shell. I wanted to understand this further so dug deeper and I have managed to find a way to create a startup script that will make it easier to connect to Office 365.&lt;/P&gt;
&lt;P&gt;With profiles, we can setup a script to run when the Azure Shell is started, so this is an awesome opportunity to add all of the connection information when the Shell starts including retrieval, of the certificates from the KeyVault.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To create a profile that is used across sessions but for your user account use:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;# Create Profile
mkdir (Split-Path $profile.CurrentUserAllHosts)
New-Item -ItemType File -Path $PROFILE.CurrentUserAllHosts -Force
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell - Setup Profile.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280449i288B73A558036A56/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell - Setup Profile.png" alt="Azure Shell - Setup Profiles" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - Setup Profiles&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Once created, you can open an editor in the path above to the new profile script location.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then using the following example, using a combination of parameter splatting and profiles, you can setup everything you need to connect to the service:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;# Connect to KeyVault Data
try{

    $vaultName = "pkbtenant-keyvault" # Replace with your KeyVault name
    $appName = "PnP PowerShell Azure Shell Access" 
    $appId = (Get-AzADApplication -DisplayName $appName).ApplicationId
    $tenantId = (Get-AzContext).Tenant.Id
    $certName = "azureshell-pnpps-connection"
    $baseSite = "https://tenant.sharepoint.com" # Replace with your tenant
    $base64Cert = Get-AzKeyVaultSecret -VaultName $vaultName -Name $certName -AsPlainText

    # Use of parameter splatting
    $ConnectInfo = @{
        ClientId = $appId
        CertificateBase64Encoded = $base64Cert
        Tenant = $tenantId
    }

    Write-Host "Ready to connect to M365/SharePoint" -ForegroundColor Green
}catch{
    Write-Host "Failed to get the KeyVault data" -ForegroundColor Yellow
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Editor – Ctrl-S (Save) then Ctrl-Q (Quit)&lt;/P&gt;
&lt;P&gt;Restart Shell&lt;/P&gt;
&lt;P&gt;After setting up the profile, reboot your Shell and you should see a prompt to indicate the prerequisites are ready to use for a connection (green text).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To learn more about profiles check out the &lt;A href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7" target="_blank" rel="noopener"&gt;documentation for profiles&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Connecting to the service&lt;/H3&gt;
&lt;P&gt;Once you have all these elements setup, you can connect with PnP PowerShell with one short line:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Connect-PnPOnline @ConnectInfo https://tenant.sharepoint.com

# -OR-

Connect-PnPOnline @ConnectInfo $baseSite&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Azure Shell - Connect.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280450i17FC10FF54B9CF61/image-size/large?v=v2&amp;amp;px=999" role="button" title="Azure Shell - Connect.png" alt="Azure Shell - connecting with PnP PowerShell" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Azure Shell - connecting with PnP PowerShell&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The settings are persistent across sessions/devices (like an Azure app on iPad), so once setup, you can open Azure Shell and reconnect to the service and make the changes in the Shell quickly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Btw, at the beginning I mentioned about capturing the output to the text file, this is particularly useful if you are grabbing a lot of info in your session or need to show the changes you made, here is how to do it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Start-Transcript "log.txt"
Get-PnPWeb
Stop-Transcript
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will save the file to the current location in the Azure Shell. Use Export-File to download it, or the UI button.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Enjoy!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 14 May 2021 10:48:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/getting-started-with-azure-shell-and-pnp-powershell-with/ba-p/2315482</guid>
      <dc:creator>Paul Bullock</dc:creator>
      <dc:date>2021-05-14T10:48:18Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 Developer Community Call recording – 13th of May, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-13th-of-may/ba-p/2349231</link>
      <description>&lt;P&gt;Recording of the Microsoft 365 – General M365 development Special Interest Group (SIG) community call from May 13, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="recording-may-13th-call.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280722iC1E5F3C1025FA173/image-size/large?v=v2&amp;amp;px=999" role="button" title="recording-may-13th-call.png" alt="recording-may-13th-call.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Latest news from Microsoft 365 engineering and updates on open-source projects: PnP .NET libraries, PnP PowerShell, modernization tooling, on yo Teams, on Microsoft Graph Toolkit, and on Microsoft Teams Samples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check out the new&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;, visit the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener noreferrer"&gt;Microsoft Teams samples gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to get started with Microsoft Teams development, and register now for May trainings on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener nofollow noreferrer"&gt;Sharing-is-caring&lt;/A&gt;.&amp;nbsp; Open-source project activity is focused on prepping for May releases in Microsoft Build time frame.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Open-source project status:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Current Version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Framework&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.4.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Bug fixes, Prepping for v1.5.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Core SDK&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Bug fixes, Prepping for v1.2.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP PowerShell&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.5.0 (just added Cmdlets for Viva Connections and Syntex)&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Prepping for v1.6.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - generator-teams&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v3.0.3 GA, v3.1.0 Preview&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Preview with Viva Connections support&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - yoteams-build-core&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - msteams-react-base-component&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v3.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Microsoft Graph Toolkit (MGT)&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v2.1.0 GA, v2.2.0 Preview&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v2.2.0 planned Build release&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, one new Teams sample delivered.&amp;nbsp; The host of this call was&lt;SPAN&gt;&lt;A href="http://twitter.com/DavidWarnerII" target="_self"&gt; David Warner II&lt;/A&gt; (Catapult Systems) | @DavidWarnerII. &lt;/SPAN&gt;&amp;nbsp; Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/pg1M9AuTaO4" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – June&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT – June&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Teams Dev - June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Call attention to your great work by using the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/hashtag/PnPWeekly?src=hashtag_click" target="_blank" rel="noopener nofollow noreferrer"&gt;#PnPWeekly&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;on Twitter.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Teams Development Samples:&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(&lt;A href="https://aka.ms/TeamsSampleBrowser" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/TeamsSampleBrowser&lt;/A&gt;)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/tab-activity-feed" target="_blank" rel="noopener"&gt;Kudos App (Teams Activity Feed API)&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt; (Microsoft) | &lt;LI-USER uid="926766"&gt;&lt;/LI-USER&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PnPCall-May13th-Small.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280751iBE805EADDF5CB097/image-size/large?v=v2&amp;amp;px=999" role="button" title="PnPCall-May13th-Small.gif" alt="PnPCall-May13th-Small.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Great to see all the faces in the community.&amp;nbsp; Hopefully soon we will get to see each other in person. &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;delivered in this session&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Inspire, inform and prepare employees transition to the new hybrid Workplace transformation site &lt;/STRONG&gt;&lt;STRONG&gt;- &lt;/STRONG&gt;learn about the customizable SharePoint Hybrid Workplace site template (in look book) and new end user training (available on support.microsoft.com and in Microsoft 365 Learning Pathways playlists) to help customers and colleagues’ transition to a new way of working. &amp;nbsp;&amp;nbsp;Article insights based on customer conversations and research by Microsoft. &amp;nbsp;&amp;nbsp;Training categories (playlists) – meetings &amp;amp; collaboration, wellness and productivity, security &amp;amp; data protection.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Querying and Paging data with PnP Core SDK&lt;/STRONG&gt; – after downloading the PnPCoreAuth package, installing and configuring the needed services, obtain the PnPContext from PnPContextFactory and start using the library.&amp;nbsp; There are multiple options for querying data.&amp;nbsp; PnP Core SDK Query Model options – Load*, Get*, LINQ, and Nested/hierarchical queries.&amp;nbsp; PnP Core SDK Paging Model options - Implicit asynchronous paging*, Full load of data/synchronous implicit paging, and Manual paging with Take/Skip.&amp;nbsp; &amp;nbsp;*Preferred.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Advanced tricks for form formatting and customization&lt;/STRONG&gt; – some items in a list should not show up on a form.&amp;nbsp; You can delete, hide or conditionally show values (based on entries in other fields) on a form.&amp;nbsp; Column and Form formatting are vastly different.&amp;nbsp; Learn ways to detect what values are in the list vs what values are on the form and also how to create read only sections on a form.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Thank you for your work. Samples are often showcased in Demos.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Topics&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;covered in this call&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PnP .NET library updates -&lt;SPAN&gt;&lt;A href="http://twitter.com/paolopia" target="_self"&gt; Paolo Pialorsi&lt;/A&gt; (PiaSys.com) @paolopia&lt;/SPAN&gt;&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/pg1M9AuTaO4?t=285" target="_self"&gt;4:45&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP PowerShell updates - &lt;A href="http://twitter.com/paolopia" target="_self"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys.com) @paolopia&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/pg1M9AuTaO4?t=395" target="_self"&gt;6:35&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;yo Teams updates -&amp;nbsp;&lt;A href="http://twitter.com/paolopia" target="_self"&gt;Paolo Pialorsi&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(PiaSys.com) @paolopia&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;- &lt;A href="https://youtu.be/pg1M9AuTaO4?t=444" target="_self"&gt;7:24&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit updates -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/beth_panx" target="_blank" rel="noopener nofollow noreferrer"&gt;Beth Pan&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/803637" target="_blank" rel="noopener"&gt;@beth_panx&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/pg1M9AuTaO4?t=514" target="_self"&gt;8:34&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Teams Samples -&lt;SPAN&gt;&lt;A href="http://twitter.com/Bob1German" target="_self"&gt; Bob German&lt;/A&gt; (Microsoft) @Bob1German&lt;/SPAN&gt;&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/pg1M9AuTaO4?t=586" target="_self"&gt;9:46&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Inspire, inform and prepare employees transition to the new hybrid Workplace transformation site – Holland Kaviani (Microsoft) &amp;amp; &lt;A href="http://twitter.com/mwolodarsky" target="_blank" rel="noopener"&gt;Matt Wolodarsky&lt;/A&gt; (Microsoft) | @mwolodarsky - &lt;A href="https://youtu.be/pg1M9AuTaO4?t=754" target="_self"&gt;12:34&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Querying and Paging data with PnP Core SDK – &lt;A href="http://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) | @PaoloPia - &lt;A href="https://youtu.be/pg1M9AuTaO4?t=1521" target="_self"&gt;25:21&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Advanced tricks for form formatting and customization – &lt;A href="http://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;Chris Kent&lt;/A&gt; (DMI) | @theChrisKent&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;- &lt;A href="https://youtu.be/pg1M9AuTaO4?t=2602" target="_self"&gt;43:22&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kl3f0lIJy0IsdJR?e=4BmKBO" target="_blank" rel="nofollow noopener noreferrer"&gt;Slides used in this ​community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog post - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/help-employees-transition-to-hybrid-work-using-a-new-sharepoint/ba-p/2181914" target="_blank" rel="noopener"&gt;Help employees transition to hybrid work using a new SharePoint site template and end-user training&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Look book (website template) - &lt;A href="https://aka.ms/WorkplaceTransformationSite" target="_blank" rel="noopener"&gt;WORKPLACE TRANSFORMATION SITE&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Article - &lt;A href="https://www.microsoft.com/en-us/microsoft-365/blog/2020/07/08/future-work-good-challenging-unknown/" target="_blank" rel="noopener"&gt;The future of work—the good, the challenging &amp;amp; the unknown&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Support site – &lt;A href="https://support.microsoft.com/office/view-usage-data-for-your-sharepoint-site-884b5a0e-ab1d-40a1-8c60-f8e46fb014f3" target="_blank" rel="noopener"&gt;Hybrid workplace guides&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://pnp.github.io/pnpcore/using-the-sdk/basics-getdata.html" target="_self"&gt;PnP Core SDK – Get Data&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://pnp.github.io/pnpcore/using-the-sdk/basics-getdata-paging.html" target="_self"&gt;PnP Core SDK – Using paging&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;SDK - &lt;A href="https://pnp.github.io/pnpcore" target="_blank" rel="noopener"&gt;PnP Core SDK&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Code sample - &lt;A style="background-color: #ffffff;" href="https://github.com/PiaSys/Conferences-Samples/tree/master/PnP-Core-SDK/PnPCoreSDKQueryModel01" target="_blank" rel="noopener"&gt;PnP Core SDK Query Model sample&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: inherit;"&gt;PnP Weekly – Episode 126&lt;/SPAN&gt; with MVP &lt;SPAN style="font-family: inherit;"&gt;guest &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://twitter.com/DarceHess" target="_blank" rel="noopener"&gt;D'arce Hess&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt; (TrnDigital)&amp;nbsp;| @ DarceHess| &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-126-d-arce-hess/ba-p/2341130" target="_blank" rel="noopener"&gt;video&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt; | &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-126-10th-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://adoption.microsoft.com/extensibility-look-book?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365/extensibility&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/teams-dev-samples/" target="_blank" rel="noopener nofollow noreferrer"&gt;Microsoft Teams Samples Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/teams-samples&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General resources&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community hub&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp/community&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit in Microsoft Learn |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/learn-mgt" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/learn-mgt&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://lookbook.microsoft.com/?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint look book&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams-training" target="_blank" rel="noopener noreferrer"&gt;Yo Teams video training package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/net-standard-version-of-sharepoint-online-csom-apis?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;.NET Standard 2.0 version of SharePoint Online CSOM API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 community (PnP) videos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp-videos&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension" target="_blank" rel="noopener noreferrer"&gt;Microsoft Teams Toolkit for Visual Studio Code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams" target="_blank" rel="noopener noreferrer"&gt;yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/yoteams&lt;/LI&gt;
&lt;LI&gt;Video -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://youtu.be/w0OrFkzNC10" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started using yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener nofollow noreferrer"&gt;Wictor Wilén&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Avanade)| @wictor&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/build-a-crisis-management-site-to-connect-people-and-information/ba-p/1216791?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener"&gt;Build a crisis management site to connect people and information&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;Developer documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/sppnp-modernization-partnerguidance" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Partner Guidance&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Feedback welcome&lt;/LI&gt;
&lt;LI&gt;Solution -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/pnp-modern-search" target="_blank" rel="noopener noreferrer"&gt;Building a modern search experiences with SharePoint Framework web parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformation" target="_blank" rel="noopener noreferrer"&gt;Page transformation guidance&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformationvideos" target="_blank" rel="noopener noreferrer"&gt;Page transformation videos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-modernizationscanner" target="_blank" rel="noopener noreferrer"&gt;Modernization scanner&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/dev-program?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer program site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Need to become a Tenant Admin to test look book capabilities? Get a Microsoft 365 E5 developer subscription (free tenant for 90 days)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://provisioning.sharepointpnp.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;SharePoint Provisioning Service&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;- Easily provision look book designs to any tenant in the world&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-provisioning-templates" target="_blank" rel="noopener noreferrer"&gt;SharePoint Provisioning templates on Github&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/pnp-provisioning-tenant-templates?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;PnP Provisioning Tenant Templates documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/sharepoint-page-transformation-webcast-series?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint Page Transformation webcast series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-modernization/tree/dev/Tools" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Tools&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming Calls | Recurrent Invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT |&amp;nbsp;&lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;June 9&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;June 10&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;General Microsoft 365 Dev Special Interest Group bi-weekly calls are targeted at anyone who's interested in the general Microsoft 365 development topics. This includes Microsoft Teams, Bots, Microsoft Graph, CSOM, REST, site provisioning, PnP PowerShell, PnP Sites Core, Site Designs, Microsoft Flow, PowerApps, Column Formatting, list formatting, etc. topics. More details on the Microsoft 365 community from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365pnp&lt;/A&gt;. We also welcome community demos, if you are interested in doing a live demo in these calls!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can download recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;. Welcome and join in the discussion. If you have any questions, comments, or feedback, feel free to provide your input as comments to this post as well. More details on the Microsoft 365 community and options to get involved are available from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 14th of May 2021&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 14 May 2021 15:36:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-13th-of-may/ba-p/2349231</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-14T15:36:35Z</dc:date>
    </item>
    <item>
      <title>Setting up https for Teams Tabs projects - without ngrok</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/setting-up-https-for-teams-tabs-projects-without-ngrok/ba-p/2351012</link>
      <description>&lt;P&gt;I’ve started using the new Microsoft Teams toolkit, which is a Visual Studio Code extension and generator for Teams applications. One thing I noticed is a little challenge when creating tabs, and that’s due to the requirement to use SSL. The documentation is fine and&amp;nbsp;&lt;A href="https://docs.microsoft.com/microsoftteams/platform/toolkit/visual-studio-code-overview?WT.mc_id=m365-blog-rogerman#add-a-trusted-certificate-for-localhost" target="_blank" rel="noopener"&gt;explains how to trust your local project&lt;/A&gt;, but I found it a little painful since the certificates only last 1 month and there’s a different one for each project, so I need repeat the process frequently. Your teammates will need to do that as well.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="localhostcert.png" style="width: 406px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280478i6D503778FAA3C4BE/image-size/large?v=v2&amp;amp;px=999" role="button" title="localhostcert.png" alt="localhostcert.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Here is an alternative approach in which you create your own certificate authority and build certs from that so you can install just one root certificate across all your projects! Each teammate can have their own certs, so you can collaborate as much as you wish and nobody has to go installing certs.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE class="wp-block-quote"&gt;
&lt;P&gt;NOTE: Did you know that the Teams Toolkit uses&amp;nbsp;&lt;A href="https://reactjs.org/docs/create-a-new-react-app.html" target="_blank" rel="noopener"&gt;Create React App (CRA)&lt;/A&gt;&amp;nbsp;for tabs? Create React App is a toolchain from Facebook (who created React in the first place) it’s very popular and well supported! If you need help, search on “Create React App” and you can find a plethora of helpful articles;&amp;nbsp;&lt;A href="https://dev.to/ganeshagrawal/how-to-setup-https-locally-with-create-react-app-e46" target="_blank" rel="noopener"&gt;this one&lt;/A&gt;&amp;nbsp;helped me figure this out!&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;Step 1: Create and trust a certificate authority (CA)&lt;/H2&gt;
&lt;P&gt;This step only needs to be done once for as many projects as you wish. It assumes you already have Node.js installed, as required by the Teams Toolkit.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;a.&lt;/STRONG&gt;&amp;nbsp;Create a safe/private folder somewhere and go there in your favorite command-line tool, and run these commands:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;PRE class="wp-block-preformatted"&gt;npm install -g mkcert
mkcert create-ca --organization "MyOrg" --validity 3650
mkcert create-cert --ca-key "ca.key" --ca-cert "ca.crt" --validity 3650&lt;/PRE&gt;
&lt;BLOCKQUOTE class="wp-block-quote"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;NOTE: 3650 is the number of days your certs will be valid; feel free to change it. You can use&amp;nbsp;&lt;CODE&gt;--help&lt;/CODE&gt;&amp;nbsp;on&amp;nbsp;&lt;CODE&gt;mkcert&lt;/CODE&gt;&amp;nbsp;to reveal other options, such as setting an organization name and location (the default org is “Test CA”) and customizing the domain names for your certificate (the default is “localhost,127.0.0.1”).&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This will create a new Certificate Authority and a certificate that was issued from it. You should see 4 files:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;FIGURE class="wp-block-table"&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;FILE&lt;/TH&gt;
&lt;TH&gt;DESCRIPTION&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ca.crt&lt;/TD&gt;
&lt;TD&gt;Certificate for your new CA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ca.key&lt;/TD&gt;
&lt;TD&gt;Private key for your new CA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;cert.crt&lt;/TD&gt;
&lt;TD&gt;Certificate for use in projects&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;cert.key&lt;/TD&gt;
&lt;TD&gt;Private key for use in projects&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/FIGURE&gt;
&lt;P&gt;&lt;STRONG&gt;b.&lt;/STRONG&gt;&amp;nbsp;Now you need to trust the certificate for your new CA; by doing that any cert you create will be trusted with no additional action on your part.&lt;/P&gt;
&lt;H3&gt;On Windows&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Double click on the&amp;nbsp;&lt;CODE&gt;ca.crt&lt;/CODE&gt;&amp;nbsp;file and click “Install Certificate”.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ssl-01.png" style="width: 408px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280479iD3163C8EB049F4E2/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-01.png" alt="ssl-01.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Choose Local Machine and click next.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ssl-02.png" style="width: 536px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280480i90EC476C319B1943/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-02.png" alt="ssl-02.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Select “Place all certificates in the following store” and then click the “Browse” button. Choose “Trusted Root Certification Authorities” click “OK” to close the dialog box, and then click “Next”.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ssl-03.png" style="width: 547px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280481i16756C0B931CE9BC/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-03.png" alt="ssl-03.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Restart all instances of your browser to force it to re-read its trusted roots. If in doubt, reboot your computer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;On Mac&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Double click on the&amp;nbsp;&lt;STRONG&gt;ca.crt&lt;/STRONG&gt;&amp;nbsp;file, which should be found under&amp;nbsp;&lt;CODE&gt;/Users/[your-name]/&lt;/CODE&gt;. It will launch Keychain Access app.&lt;/LI&gt;
&lt;LI&gt;Enter your password or use Touch ID when prompted.&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ssl-mac-01.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280482i97DA950E63DCAF37/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-mac-01.png" alt="ssl-mac-01.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;The new certificate (in this case, “MyOrg”) should be added. Double-click it.&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ssl-mac-02.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280484i0CEA5BA56E837C6B/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-mac-02.png" alt="ssl-mac-02.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;In a new window, expand the&amp;nbsp;&lt;STRONG&gt;Trust&lt;/STRONG&gt;&amp;nbsp;section of the certificate details. Select “Always Trust” for every option.&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ssl-mac-03.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280486iC5C4655BE3AC07F0/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-mac-03.png" alt="ssl-mac-03.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Close the window. Enter your password or use Touch ID again if you are asked. Now the certificate is trusted.&amp;nbsp;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ssl-mac-04.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280487i7733FEABD80FB0CA/image-size/large?v=v2&amp;amp;px=999" role="button" title="ssl-mac-04.png" alt="ssl-mac-04.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Restart all instances of your browser to force it to re-read its trusted roots. If in doubt, reboot your computer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;On Linux&lt;/H3&gt;
&lt;P&gt;There are more steps on Linux as most browsers don’t use the operating system’s certificate store, and a tool called&amp;nbsp;&lt;CODE&gt;certutil&lt;/CODE&gt;&amp;nbsp;is needed to modify the browsers’&amp;nbsp;&lt;CODE&gt;cert?.db&lt;/CODE&gt;&amp;nbsp;files.&amp;nbsp;&lt;A href="https://thomas-leister.de/en/how-to-import-ca-root-certificate/" target="_blank" rel="noopener"&gt;This article&lt;/A&gt;&amp;nbsp;explains how to install your new root certificate on Linux.&lt;/P&gt;
&lt;H2&gt;Step 2 – Add the certs to your project&lt;/H2&gt;
&lt;P&gt;This is what you need to do for each project.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;a.&lt;/STRONG&gt;&amp;nbsp;Create a new folder in your project folder (the same level as the package.json file) called&amp;nbsp;&lt;CODE&gt;.cert&lt;/CODE&gt;. Copy the&amp;nbsp;&lt;CODE&gt;cert.crt&lt;/CODE&gt;&amp;nbsp;and&amp;nbsp;&lt;CODE&gt;cert.key&lt;/CODE&gt;&amp;nbsp;files into this folder.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;b.&lt;/STRONG&gt;&amp;nbsp;Modify your .env file to tell the local web server to use your cert:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV class="line number1 index0 alt2"&gt;&lt;CODE class="plain plain"&gt;HTTPS=true&lt;/CODE&gt;&lt;/DIV&gt;
&lt;DIV class="line number2 index1 alt1"&gt;&lt;CODE class="plain plain"&gt;SSL_CRT_FILE=./.cert/cert.crt&lt;/CODE&gt;&lt;/DIV&gt;
&lt;DIV class="line number3 index2 alt2"&gt;&lt;CODE class="plain plain"&gt;SSL_KEY_FILE=./.cert/cert.key&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;c.&lt;/STRONG&gt;&amp;nbsp;Prevent saving the certs to your git repository by adding a line to the&amp;nbsp;&lt;CODE&gt;.gitignore&lt;/CODE&gt;&amp;nbsp;file.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV class="wp-block-syntaxhighlighter-code "&gt;
&lt;DIV id="highlighter_450572" class="syntaxhighlighter  plain"&gt;&lt;CODE class="plain plain"&gt;.cert&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;H2&gt;Azure Active Directory SSO Tabs&lt;/H2&gt;
&lt;P&gt;Tabs that implement Azure Active Directory Single Sign-On need to implement more than just a web page; they need to implement a web service to exchange the SSO token for an access token that the app can use to call downstream services such as the Microsoft Graph. This is explained in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://blog.mastykarz.nl/securely-connect-microsoft-graph-teams-tabs-sso/" target="_blank" rel="noreferrer noopener"&gt;this blog article&lt;/A&gt;, or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.wictorwilen.se/blog/microsoft-teams-tabs-sso-and-microsoft-graph-the-on-behalf-of-blog-post/" target="_blank" rel="noreferrer noopener"&gt;this one,&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;more clearly than in the documentation.&lt;/P&gt;
&lt;P&gt;When&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;yo teams&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;generates an SSO tab, this web service is hosted using the same web server as the page itself.&lt;/P&gt;
&lt;P&gt;When the Teams Toolkit generates one, however, it creates a separate web service for the web service so there really are two endpoints that need to be SSL enabled. The web service is in a folder called&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;api-server&lt;/CODE&gt;. To enable SSL here, follow these steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add these lines to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;api-server\.env&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;CODE&gt;HTTPS=true&lt;BR /&gt;SSL_CRT_FILE=../.cert/cert.crt&lt;BR /&gt;SSL_KEY_FILE=../.cert/cert.key&lt;BR /&gt;CORS_ORIGIN=&lt;A href="https://devappsforteams.local:3000" target="_blank"&gt;https://devappsforteams.local:3000&lt;/A&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;2. Immediately above the line&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;app.get('/getGraphAccessToken')&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;server.ts&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;server.js&lt;/CODE&gt;, add these lines to allow the cross-origin call from the web page (port 3000) to the web service (port 5000):&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;const&amp;nbsp;cors&amp;nbsp;=&amp;nbsp;require('cors');&lt;BR /&gt;app.use(cors({&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;origin:&amp;nbsp;process.env.CORS_ORIGIN&lt;BR /&gt;}));&lt;BR /&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;3. Near the bottom of the same file, replace the line&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;app.listen(port);&lt;BR /&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;with this code:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;const&amp;nbsp;fs&amp;nbsp;=&amp;nbsp;require('fs');&lt;BR /&gt;const&amp;nbsp;https&amp;nbsp;=&amp;nbsp;require('https');&lt;BR /&gt;var&amp;nbsp;privateKey&amp;nbsp;=&amp;nbsp;fs.readFileSync(process.env.SSL_KEY_FILE&amp;nbsp;);&lt;BR /&gt;var&amp;nbsp;certificate&amp;nbsp;=&amp;nbsp;fs.readFileSync(process.env.SSL_CRT_FILE);&lt;BR /&gt;&lt;BR /&gt;https.createServer({&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;key:&amp;nbsp;privateKey,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cert:&amp;nbsp;certificate&lt;BR /&gt;}, app).listen(port);&lt;/CODE&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;H2&gt;Working in a team&lt;/H2&gt;
&lt;P&gt;Each team member needs to do Step 1 on their computer just once. When a developer starts working on a project they can simply copy their .cert folder into their project and go to work.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Many thanks to my colleague&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://girliemac.com/" target="_blank" rel="noreferrer noopener"&gt;Tomomi Imura&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;for documenting the Mac instructions and providing screen shots.&lt;/P&gt;
&lt;P&gt;Do you have ideas on how to do this better, especially in a project team? Please chime in using the comments; thanks!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"&gt;
&lt;DIV class="sharedaddy sd-sharing-enabled"&gt;
&lt;DIV class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"&gt;
&lt;P class="sd-title"&gt;&lt;EM&gt;Cross-posted &lt;A title="here on the author's blog" href="https://bob1german.com/2020/10/17/setting-up-ssl-for-tabs-in-the-teams-toolkit-for-visual-studio-code/" target="_blank" rel="noopener"&gt;here on the author's blog&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 13 May 2021 14:58:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/setting-up-https-for-teams-tabs-projects-without-ngrok/ba-p/2351012</guid>
      <dc:creator>Bob German</dc:creator>
      <dc:date>2021-05-13T14:58:24Z</dc:date>
    </item>
    <item>
      <title>SharePoint community call - May 11th, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-community-call-may-11th-2021/ba-p/2345463</link>
      <description>&lt;P&gt;&lt;SPAN&gt;The SharePoint community monthly call is our general monthly review of the latest SharePoint news&amp;nbsp; (news, tools, extensions, features, capabilities, content and training), engineering priorities and community recognition for Developers, IT Pros and Makers.&amp;nbsp; This monthly community call happens on the second Tuesday of each month. You can download recurrent invite from&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/PlXxbx7qNlc" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Call Summary:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;SPFx v1.12.1 with Node v14 and Gulp4 support is generally available.&amp;nbsp; Don’t miss the &lt;A href="https://pnp.github.io/sp-dev-fx-webparts/" target="_blank" rel="noopener"&gt;SharePoint sample gallery&lt;/A&gt;.&amp;nbsp; Preview the new &lt;A href="https://adoption.microsoft.com/extensibility-look-book" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;.&amp;nbsp; &lt;/SPAN&gt;Visit the new &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community hub&lt;/A&gt; at Microsoft Tech Communities!&amp;nbsp; Sign up and attend one of a growing list of &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing is Caring&lt;/A&gt; events.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;The &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-may-2021-update/ba-p/2332366" target="_blank" rel="noopener"&gt;Microsoft 365 Update - Community (PnP) | May 2021&lt;/A&gt; is now available. &amp;nbsp;In this call, quickly addressed developer and non-developer entries in UserVoice.&amp;nbsp;&amp;nbsp; We are in the process of moving from UserVoice to a 1&lt;SUP&gt;st&lt;/SUP&gt; party solution for customer feedback/ feature requests.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A huge thank you to the record number of contributors and organizations actively participating in this PnP Community during April. Month over month, you continue to amaze.&amp;nbsp; The host of this call was &lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) @vesajuvonen.&amp;nbsp; Q&amp;amp;A took place in the chat throughout the call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210511-together-mode.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/280168i05B044DFAB322F99/image-size/large?v=v2&amp;amp;px=999" role="button" title="210511-together-mode.gif" alt="210511-together-mode.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Featured Topic:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SharePoint Syntex:&amp;nbsp; Product overview and latest feature updates&lt;/STRONG&gt; – SharePoint Syntex - a new add on that builds on the content services capabilities already provided in SharePoint with an infusion of AI to automate and augment the classification of content – understanding, processing, compliance. &amp;nbsp;Demos on building and publishing a document understanding model using UI and on downloading a sample model, publishing and processing content using PowerShell Commandlets or APIs.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xJTFJZN01MWlZQVFc3UjgxRUxQQkhDSS4u" target="_blank" rel="noopener"&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT - June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/sp-call&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can check the latest updates in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-may-2021-update/ba-p/2332366" target="_blank" rel="noopener" aria-label=" (opens in a new tab)"&gt;monthly summary&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/" target="_blank" rel="noopener noreferrer"&gt;aka.ms/spdev-blog&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;This call was delivered on Tuesday, May 11, 2021. The call agenda is reflected below with direct links to specific sections.&amp;nbsp; You can jump directly to a specific topic by clicking on the topic's timestamp which will redirect your browser to that topic in the recording published on the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube Channel&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Agenda:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;UserVoice status for non-dev focused SharePoint entries –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/PlXxbx7qNlc?t=484" target="_self"&gt;8:04&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;UserVoice status for dev focused SharePoint Framework entries –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/PlXxbx7qNlc?t=544" target="_self"&gt;9:04&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint community update with latest news and roadmap –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/PlXxbx7qNlc?t=635" target="_self"&gt;10:35&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Community contributors and companies which have been involved in the past month –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/PlXxbx7qNlc?t=716" target="_self"&gt;11:56&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Topic:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;SharePoint Syntex:&amp;nbsp; &amp;nbsp;Product overview and latest feature updates&amp;nbsp;- Sean Squires&amp;nbsp; (Microsoft) | @iamseansquires &lt;SPAN&gt;– &lt;A href="https://youtu.be/PlXxbx7qNlc?t=928" target="_self"&gt;15:28&lt;/A&gt;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Demo:&amp;nbsp;&lt;/STRONG&gt; How to build and publish a document understanding model -&amp;nbsp;James Eccles (Microsoft) | @jimdeccles&amp;nbsp;&lt;SPAN&gt;– &lt;A href="https://youtu.be/PlXxbx7qNlc?t=1492" target="_self"&gt;24:52&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Demo:&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp;SharePoint Syntex integration and automation options -&amp;nbsp;Bert Jansen (Microsoft) | @o365bert&lt;SPAN&gt;&amp;nbsp;– &lt;A href="https://youtu.be/PlXxbx7qNlc?t=2376" target="_self"&gt;39:36&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The full recording of this session is available from Microsoft 365 &amp;amp; SharePoint Community YouTube channel -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Presentation slides used in this community call are found at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kgHOZNOZvuJs4Xd?e=aKH8Cg" target="_blank" rel="nofollow noopener noreferrer"&gt;OneDrive&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources on covered topics and discussions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Web - &lt;A href="https://www.microsoft.com/en-us/microsoft-365/enterprise/sharepoint-syntex-overview" target="_blank" rel="noopener"&gt;SharePoint Syntex&lt;/A&gt; | aka.ms/SharePointSyntex&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog – &lt;A href="https://techcommunity.microsoft.com/t5/sharepoint-syntex/bg-p/SharePointSyntex" target="_blank" rel="noopener"&gt;Syntex blog&lt;/A&gt; | aka.ms/SharePointSyntex/blog&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;(Soon) Community – &lt;A href="https://web.yammer.com/main/groups/eyJfdHlwZSI6Ikdyb3VwIiwiaWQiOiIxMjA0MjAwMjQzMiJ9/new" target="_blank" rel="noopener"&gt;Yammer Syntex Community&lt;/A&gt; | aka.ms/SharePointSyntex/community&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Roadmap – &lt;A href="https://www.microsoft.com/en-us/microsoft-365/roadmap?rtc=2&amp;amp;filters=&amp;amp;searchterms=Syntex" target="_blank" rel="noopener"&gt;Syntex Roadmap&lt;/A&gt; | aka.ms/SharePointSyntex/roadmap&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation - &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/contentunderstanding/" target="_blank" rel="noopener"&gt;Introduction to Microsoft SharePoint Syntex&lt;/A&gt; &amp;nbsp;| aka.ms/SharePointSyntex/documentation&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation – &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/contentunderstanding/solution-manage-contracts-in-microsoft-365" target="_blank" rel="noopener"&gt;Scenario:&amp;nbsp; Manage contracts using a Microsoft 365 solution&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;SDK - &lt;A href="https://pnp.github.io/pnpcore/using-the-sdk/syntex-intro.html" target="_blank" rel="noopener"&gt;Working with SharePoint Syntex&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;(Soon)&amp;nbsp; Samples - GitHub: &lt;A href="https://github.com/pnp/syntex-samples" target="_blank" rel="noopener"&gt;https://github.com/pnp/syntex-samples&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Learning – &lt;A href="https://adoption.microsoft.com/virtual-hub/search?_sft_vh_product=sharepoint-syntex" target="_blank" rel="noopener"&gt;Virtual Hub&lt;/A&gt; &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 126 with MVP guest &lt;A href="https://twitter.com/DarceHess" target="_blank" rel="noopener"&gt;D'arce Hess&lt;/A&gt; (TrnDigital)&amp;nbsp;| @ DarceHess| &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-126-d-arce-hess/ba-p/2341130" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-126-10th-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community hub&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp/community&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://adoption.microsoft.com/extensibility-look-book" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365/extensibility&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://m365devpodcast.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;Microsoft 365 Developer Podcast&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;/SPAN&gt;m365devpodcast.com&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/sp-dev-fx-webparts/" target="_blank" rel="noopener"&gt;SharePoint sample gallery&lt;/A&gt; | aka.ms/spfx-webparts&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener"&gt;Microsoft Teams Samples Gallery&lt;/A&gt; | aka.ms/teams-samples&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional Resources:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/pnpweekly" target="_blank" rel="noopener noreferrer"&gt;PnP Weekly - Videos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnP Weekly - Podcasts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365-community-docs" target="_blank" rel="noopener noreferrer"&gt;M365 Community Documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- (non-dev)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/" target="_blank" rel="noopener noreferrer"&gt;SharePoint Documentation and Guidance&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- (technical)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/announcing-sharepoint-framework-1-11-extend-more-of-microsoft-teams-and-publish-to-appsource/" target="_blank" rel="noopener noreferrer"&gt;SharePoint Framework v1.11&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/release-1.11.0" target="_blank" rel="noopener noreferrer"&gt;SharePoint Framework v1.11 release notes&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;Exploring how to get started on open-source and community work?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-starter-kit" target="_blank" rel="noopener noreferrer"&gt;SharePoint Starter Kit&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Recurrent invite to SharePoint Development monthly calls -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-call" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/spdev-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint Developer documentation -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/spdev-docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint Development Issues -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-issues" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/spdev-issues&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint GitHub organization -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://github.com/SharePoint" target="_blank" rel="noopener noreferrer"&gt;http://github.com/SharePoint&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint Development UserVoice - new feature requests -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-uservoice" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/spdev-uservoice&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming calls | Recurrent invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;May 12&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT&lt;STRONG&gt; |&lt;/STRONG&gt; &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;June 8&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A style="background-color: #ffffff;" href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;Too many links, can't remember&lt;/EM&gt;" - not a problem...&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;just one URL&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is enough for all Microsoft 365 community topics -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;SharePoint Team, Microsoft - 12th of May 2021&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 12 May 2021 06:59:20 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-community-call-may-11th-2021/ba-p/2345463</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-12T06:59:20Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Weekly - Episode 126 - D'arce Hess</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-126-d-arce-hess/ba-p/2341130</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumb-Ep126.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279617iE58E2EDA6F33A5B5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumb-Ep126.png" alt="Thumb-Ep126.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this installment of the weekly discussion revolving around the latest news and topics on&amp;nbsp;&lt;SPAN&gt;Microsoft 365&lt;/SPAN&gt;, hosts –&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt;&amp;nbsp;(Microsoft) | @vesajuvonen,&amp;nbsp;&lt;A href="http://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt;&amp;nbsp;(Microsoft) | @waldekm are joined by Rhode Island, US-based, MVP, professional archer, blogger and presenter specializing in UI/UX, information architecture and user adoption at TrnDigital, &lt;A href="https://twitter.com/DarceHess" target="_blank" rel="noopener"&gt;D'arce Hess&lt;/A&gt; | @ DarceHess.&amp;nbsp;&amp;nbsp; Topics discussed in this session include:&amp;nbsp; The path to IT and on becoming an MVP, reflections on UX/UI changes over the years and designing custom experiences that addresses business processes.&amp;nbsp; In post pandemic times, organizations will be circling back to optimize Microsoft Teams experiences while vendors will continue efforts to land the right extensibility stories.&amp;nbsp;&amp;nbsp; Microsoft Viva – with great power comes great responsibility and ideas about prepping for Viva.&amp;nbsp;&amp;nbsp; Finally, thoughts on women in IT and on using what we learn in school in the field.&amp;nbsp; &amp;nbsp;Microsoft and the Community delivered 18 articles in this last week.&amp;nbsp; This session was recorded on Monday, May 10, 2021.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Please remember to keep on providing us feedback on how we can help on this journey. We always welcome feedback on making the community more inclusive and diverse.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;LI-VIDEO vid="https://youtu.be/5lhYr6kP-BY" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This episode was recorded on Monday, May 10, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Video at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube channel.&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Podcast format at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://pnpweekly.podbean.com.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;These videos and podcasts are published each week and are intended to be roughly 45 - 60 minutes in length.&amp;nbsp; Please do give us feedback on this video and podcast series and also do let us know if you have done something cool/useful so that we can cover that in the next weekly summary! The easiest way to let us know is to share your work on Twitter and add the hashtag&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/search?q=%23pnpweekly" target="_self" rel="nofollow noopener noreferrer"&gt;#PnPWeekly&lt;/A&gt;. We are always on the lookout for refreshingly new content. “&lt;EM&gt;Sharing is caring!”&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are all the links and people mentioned in this recording. Thanks, everyone for your contributions to the community!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Events:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;May 25-27, 2021-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mybuild.microsoft.com/?WT.mc_id=m365-27875-wmastyka" target="_self" rel="noopener noreferrer"&gt;Microsoft Build 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;August 9-11, 2021 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.collabsummit.org/" target="_blank" rel="noopener nofollow noreferrer"&gt;North American Collaboration Summit&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;Register with coupon code "PnP" for 25% off from the prize at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://nacs.ticketspice.com/nacs2021" href="https://nacs.ticketspice.com/nacs2021" target="_blank" rel="noreferrer noopener nofollow"&gt;https://nacs.ticketspice.com/nacs2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/use-sharepoint-s-new-site-templates-today/ba-p/2304372?WT.mc_id=m365-27875-wmastyka" target="_blank" rel="noopener"&gt;Use SharePoint's new site templates today!&lt;/A&gt; - &lt;A href="https://twitter.com/NovelNicole" target="_blank" rel="noopener"&gt;Nicole Woon&lt;/A&gt; (Microsoft) |&amp;nbsp; @NovelNicole and Holland Kaviani (Microsoft)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-blog/new-ways-to-use-microsoft-whiteboard-for-education/ba-p/2295661?WT.mc_id=m365-27875-wmastyka" target="_blank" rel="noopener"&gt;New ways to use Microsoft Whiteboard for Education&lt;/A&gt; - &lt;A href="http://www.twitter.com/ianmikutel" target="_blank" rel="noopener"&gt;Ian Mikutel&lt;/A&gt; (Microsoft) |&amp;nbsp;@ianmikutel&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/understanding-office-add-ins-runtime/?WT.mc_id=m365-27875-wmastyka" target="_blank" rel="noopener"&gt;Understanding the Office Add-ins runtime&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/application-permissions-support-for-assignments-api-in-microsoft-graph-now-available/?WT.mc_id=m365-27875-wmastyka" target="_blank" rel="noopener"&gt;Application permissions support for assignments API in Microsoft Graph now available&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/sharepoint-syntex/sharepoint-syntex-updates-april-2021/ba-p/2280653?WT.mc_id=m365-27875-wmastyka" target="_blank" rel="noopener"&gt;SharePoint Syntex Updates - April 2021&lt;/A&gt; - &lt;A href="https://twitter.com/cmcnulty2000" target="_blank" rel="noopener"&gt;Chris McNulty&lt;/A&gt; (Microsoft) |&amp;nbsp;@cmcnulty2000&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Community articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://julieturner.net/2021/05/sharepoint-app-catalog-development-tips/?utm_source=rss&amp;amp;utm_medium=rss&amp;amp;utm_campaign=sharepoint-app-catalog-development-tips" target="_self"&gt;SharePoint App Catalog Development Tips&lt;/A&gt; - &lt;A href="https://twitter.com/jfj1997" target="_blank" rel="noopener"&gt;Julie Turner&lt;/A&gt; (Sympraxis Consulting) |&amp;nbsp;@jfj1997&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://yhabersaat.ch/2021/05/02/upgrade-your-spfx-projects-to-v1-12-1-with-cli-for-microsoft-365/" target="_blank" rel="noopener"&gt;Upgrade your SharePoint Framework (SPFx) projects to v1.12.1 with CLI for Microsoft 365&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/yhabersaat" target="_blank" rel="noopener"&gt;Yves Habersaat&lt;/A&gt; (Sword Group) |&amp;nbsp;&lt;LI-USER uid="957821"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.donkirkham.com/blog/list-formatting/" target="_blank" rel="noopener"&gt;Adding custom formatting to all list views&lt;/A&gt; - &lt;A href="https://twitter.com/DonKirkham" target="_blank" rel="noopener"&gt;Don Kirkham&lt;/A&gt; (GM Financial) |&amp;nbsp;&lt;LI-USER uid="407309"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://mattjimison.com/2021/04/30/get-started-with-the-new-sharepoint-app-bar/" target="_blank" rel="noopener"&gt;Get Started with the New SharePoint App Bar&lt;/A&gt; - &lt;A href="https://twitter.com/mjimison" target="_blank" rel="noopener"&gt;Matt Jimison&lt;/A&gt; (DMI) |&amp;nbsp;@mjimison&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://mmsharepoint.wordpress.com/2021/05/05/how-to-update-an-adaptivecard-with-a-teams-messaging-extension/" target="_blank" rel="noopener"&gt;How to update an AdaptiveCard with a Teams Messaging Extension&lt;/A&gt; - &lt;A href="https://twitter.com/Moeller2_0" target="_blank" rel="noopener"&gt;Markus Möller&lt;/A&gt; (Avanade)&amp;nbsp;| @Moeller2_0&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://graphgod.dev/2021/05/04/react-groups-and-teams-2/" target="_blank" rel="noopener"&gt;React Groups and Teams&lt;/A&gt; - Alison Collins&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://spblog.net/post/2021/05/04/spfx-fast-serve-2-0-new-architecture-better-extensibility-support-of-the-latest-spfx" target="_blank" rel="noopener"&gt;spfx-fast-serve 2.0: new architecture, better extensibility, support of the latest SPFx&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/sergeev_srg" target="_blank" rel="noopener"&gt;Sergei Sergeev&lt;/A&gt; (Mastaq) |&amp;nbsp;@sergeev_srg&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://michelcarlo.com/2021/05/08/restrict-sharepoint-list-attachments-by-file-type/" target="_blank" rel="noopener"&gt;Restrict SharePoint list item attachments by file type using a custom form&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/michelcarlo" target="_blank" rel="noopener"&gt;Michel Mendes&lt;/A&gt; (Storm Technology) |&amp;nbsp;&lt;LI-USER uid="65753"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-organization-chart" target="_blank" rel="noopener"&gt;Organization Chart web part&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/joaojmendes" target="_blank" rel="noopener"&gt;João Mendes&lt;/A&gt; (Storm Technology) |&amp;nbsp;&lt;LI-USER uid="442957"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=LHcn8INyYAg" target="_blank" rel="noopener"&gt;Episode #153​ - Batching with Microsoft Graph SDK for .NET&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@PaoloPia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=6Q3mKio9rXs" target="_blank" rel="noopener"&gt;SharePoint Framework What's New 1.12.1 [Teams - Web Part APIs]&lt;/A&gt; -&amp;nbsp;&lt;A class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" spellcheck="false" href="https://twitter.com/DeLucaGiulian" target="_self"&gt;Giuliano De Luca&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="1038317"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=Xb_k8vOERpU" target="_blank" rel="noopener"&gt;Save Microsoft Forms Attachments to SharePoint with Power Automate&lt;/A&gt; - &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://regarding365.com/access-files-offline-in-teams-mobile-e804a32eafa8" target="_blank" rel="noopener"&gt;Access files offline in Teams mobile&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/DanielGlenn" target="_blank" rel="noopener"&gt;Daniel Glenn&lt;/A&gt; (InfoWorks Inc) |&amp;nbsp; @DanielGlenn &amp;amp; &lt;A href="https://twitter.com/DarrellaaS" target="_blank" rel="noopener"&gt;Darrel Webster&lt;/A&gt; (WM Reply) | @DarrellaaS&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/powerplatform-samples" target="_self" rel="noopener noreferrer"&gt;Power Platform Sample Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for finding easily samples from the GitHub - contributions from the community are welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;PnP Sharing is Caring initiative&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Getting started guidance and training for using GitHub and contributing to the community&lt;/LI&gt;
&lt;LI&gt;Want to ask a question or in general engage with the community - Add a note in the Microsoft 365 PnP Community hub at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out all the great community calls, SDKs, and tooling for Microsoft 365 from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for Microsoft 365 engineering or visitors – please let us know. We will do our best to address your requests or questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Sharing is caring!"&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 May 2021 11:40:49 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-126-d-arce-hess/ba-p/2341130</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-11T11:40:49Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Community – May 2021 update</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-may-2021-update/ba-p/2332366</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="may-pnp-summary-available.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279796i0735DEC878BFB6DB/image-size/large?v=v2&amp;amp;px=999" role="button" title="may-pnp-summary-available.png" alt="may-pnp-summary-available.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Microsoft 365 Patterns and Practices (PnP) Community April 2021 update is out with a summary of the latest guidance, samples, and solutions from Microsoft or from the community for the community. This article is a summary of all the different areas and topics around the community work we do around Microsoft 365 ecosystem during the past month. Thank you for being part of this success. &lt;EM&gt;Sharing is caring!&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H1&gt;What is Microsoft 365 Community (PnP)&lt;/H1&gt;
&lt;P&gt;&lt;!-- /wp:image --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://aka.ms/m365pnp" target="_blank" rel="noopener"&gt;Microsoft 365 PnP&lt;/A&gt; is a nick-name for Microsoft 365 platform community activities coordinated by numerous teams inside of the Microsoft 365 engineering organizations. PnP is a community-driven open source initiative where Microsoft and external community members are sharing their learning's around implementation practices for Microsoft 365.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Topics vary from Microsoft Viva, Microsoft Graph, Microsoft Teams, OneDrive and SharePoint. Active development and contributions happen in GitHub by providing contributions to the samples, reusable components, and documentation for different areas. PnP is owned and coordinated by Microsoft engineering, but this is work done by the community for the community.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;See more details from &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener"&gt;New Microsoft 365 Patterns and Practices (PnP) team model with new community leads&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;The initiative is facilitated by Microsoft, but we have multiple community members as part of the PnP team (see team details in end of the article) and we are always looking to extend the PnP team with more community members. Notice that since this is open source community initiative, so there’s no SLAs for the support for the samples provided through GitHub. Obviously, all officially released components and libraries are under official support from Microsoft.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Some key statistics around &lt;A href="http://aka.ms/m365pnp" target="_blank" rel="noopener"&gt;Microsoft 365 PnP initiative&lt;/A&gt; from April 2021:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Unique visitors during the past 2 weeks in &lt;A href="https://github.com/pnp" target="_blank" rel="noopener"&gt;PnP&lt;/A&gt;, &lt;A href="https://github.com/onedrive" target="_blank" rel="noopener"&gt;OneDrive&lt;/A&gt;, &lt;A href="https://github.com/microsoft-search" target="_blank" rel="noopener"&gt;Microsoft-Search&lt;/A&gt;, &lt;A href="https://github.com/officedev" target="_blank" rel="noopener"&gt;OfficeDev&lt;/A&gt; and &lt;A href="http://github.com/sharepoint" target="_blank" rel="noopener"&gt;SharePoint GitHub organization&lt;/A&gt; repositories - 63,769&lt;/LI&gt;
&lt;LI&gt;Overall unique contributors in the &lt;A href="https://github.com/pnp" target="_blank" rel="noopener"&gt;PnP&lt;/A&gt;, &lt;A href="https://github.com/onedrive" target="_blank" rel="noopener"&gt;OneDrive&lt;/A&gt;, &lt;A href="https://github.com/microsoft-search" target="_blank" rel="noopener"&gt;Microsoft-Search&lt;/A&gt;, &lt;A href="https://github.com/officedev" target="_blank" rel="noopener"&gt;OfficeDev&lt;/A&gt; and &lt;A href="https://github.com/sharepoint" target="_blank" rel="noopener"&gt;SharePoint&lt;/A&gt; GitHub organizations - 1,824&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/sppnp-videos" target="_blank" rel="noopener"&gt;Microsoft 365 Community (PnP) YouTube channel&lt;/A&gt; had 101,785 views with 6,332 hours of watch time and 22,304 subscribers&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/channel/UCV_6HOhwxYLXAGd-JOqKPoQ" target="_self"&gt;Microsoft 365 Developer YouTube channel&lt;/A&gt; had 44,064 views with 3,297 hours of watch time and 13,633 subscribers&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Most viewed videos in the &lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener"&gt;Microsoft 365 Community (PnP) YouTube channel&lt;/A&gt; during April 2021:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=-qiRxrPexNI" target="_blank" rel="noopener"&gt;Getting started on deploying Viva Connections for Microsoft Teams desktop&lt;/A&gt; | 10,040&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=sQeICJCdFjI" target="_blank" rel="noopener"&gt;Microsoft Teams community call - April 2021&lt;/A&gt; | 6,917&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Dc07NIiDJAI" target="_blank" rel="noopener"&gt;Building a beautifully designed Intranet with SharePoint -&amp;nbsp;latest design and branding capabilities&lt;/A&gt; |&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/catpaint1" target="_blank" rel="noopener"&gt;Cathy Dew&lt;/A&gt; (Microsoft) &amp;amp; &lt;A href="https://twitter.com/kswansondesign" target="_blank" rel="noopener"&gt;Katie Swanson&lt;/A&gt; (Microsoft) | 3,235&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=ZjTnlbMJZfY" target="_blank" rel="noopener"&gt;Getting started with Site Designs in SharePoint Online&lt;/A&gt; - &lt;A href="https://twitter.com/laurakokkarinen" target="_blank" rel="noopener"&gt;Laura Kokkarinen&lt;/A&gt; (Sulava) | 3,085&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=HyBD_SOt_BQ" target="_blank" rel="noopener"&gt;Working with Microsoft Lists (webinar)&lt;/A&gt; - Harini Saladi, &lt;A href="https://twitter.com/MSFTMiceile" target="_blank" rel="noopener"&gt;Miceile Barrett&lt;/A&gt;, &lt;A href="https://twitter.com/chakkaradeep" target="_blank" rel="noopener"&gt;Chakkaradeep Chandran&lt;/A&gt; and &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; | 2,930&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=IRr50w61fy0" target="_blank" rel="noopener"&gt;Your intranet is now in Microsoft Teams with Microsoft Viva Connections&lt;/A&gt; | 2,195&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=-S_lHXWEobk" target="_blank" rel="noopener"&gt;Introducing: New Employee Onboarding - a Microsoft Teams app template&lt;/A&gt; | &lt;SPAN&gt;&lt;A href="https://twitter.com/nidsonbirdie" target="_blank" rel="noopener"&gt;Nidhi Sharma&lt;/A&gt; (Microsoft)&amp;nbsp;&lt;/SPAN&gt;| 2,109&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=8jPzjNlf3bM" target="_blank" rel="noopener"&gt;Architecting Your Intranet&lt;/A&gt; | &lt;A href="https://twitter.com/Meltorac" target="_blank" rel="noopener"&gt;Melissa Torres&lt;/A&gt; (Microsoft) | 2,104&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=_O2Re5uRLoo" target="_blank" rel="noopener"&gt;SharePoint Framework Tutorial 1 - HelloWorld WebPart&lt;/A&gt; | 1,856&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=gDcT7yu6UmU" target="_blank" rel="noopener"&gt;Microsoft Teams Meeting Questionnaire App with SharePoint Framework&lt;/A&gt; |&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/NanddeepNachan" target="_blank" rel="noopener"&gt;Nanddeep Nachan&lt;/A&gt; | 1,717&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Most viewed videos in the &lt;A href="https://www.youtube.com/channel/UCV_6HOhwxYLXAGd-JOqKPoQ" target="_blank" rel="noopener"&gt;Microsoft 365 Developer YouTube channel&lt;/A&gt; during April 2021:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=xWhyG-SuyQM" target="_blank" rel="noopener"&gt;Authenticate and connect with Microsoft Graph - June 2019&lt;/A&gt; | 1,316&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Dd4SOA5dUmw" target="_blank" rel="noopener"&gt;Build Outlook Add-ins that integrate your solution seamlessly into your users’ Outlook experience&lt;/A&gt;​ | Juan Balmori, Hitesh Manwar - 1,197&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=EBbnpFdB92A" target="_blank" rel="noopener"&gt;An introduction to Microsoft Graph for developers - Part I - Getting started - October 2019&lt;/A&gt; | 1,175&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=HLC4voniLXU" target="_blank" rel="noopener"&gt;Demo: Getting started with Power Apps Portals&lt;/A&gt; |&amp;nbsp;&lt;A href="https://twitter.com/BrianKnight" target="_blank" rel="noopener"&gt;Brian Knight&lt;/A&gt; (Pragmatic Works) | 929&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=93j0MmRruFo" target="_blank" rel="noopener"&gt;Getting Started with Microsoft Graph and Application Registration&lt;/A&gt; | 926&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Aszwh_h5MtM" target="_blank" rel="noopener"&gt;Build and Office add-in using modern JavaScript tools and technologies&lt;/A&gt; | 839&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=PI9NO5rayiY" target="_blank" rel="noopener"&gt;Getting Started with Microsoft Graph&lt;/A&gt; | 817&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=zSIysk0yL0Q" target="_blank" rel="noopener"&gt;Create interactive conversational bots for Microsoft Teams&lt;/A&gt; | 803&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=YYcuyNfNdRw" target="_blank" rel="noopener"&gt;Accessing Files with Microsoft Graph&lt;/A&gt; | 754&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=B416AxHoMJ4" target="_blank" rel="noopener"&gt;Develop multi-tenant applications with Microsoft Identity Platform - April 2020&lt;/A&gt; | 725&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Main resources around Microsoft 365 Community:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft 365 Community - &lt;A href="http://aka.ms/sppnp" target="_blank" rel="noopener"&gt;http://aka.ms/m365pnp&lt;/A&gt;&amp;nbsp;- One location for all the resources and news around PnP&lt;/LI&gt;
&lt;LI&gt;Microsoft 365 community blog -&amp;nbsp; &lt;A href="http://aka.ms/m365pnp/community/blog" target="_self"&gt;http://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft 365 development blog -&amp;nbsp; &lt;A href="http://aka.ms/m365pnp-blog" target="_blank" rel="noopener"&gt;http://aka.ms/m365pnp-blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft 365 Community Channel on YouTube - &lt;A href="http://aka.ms/m365pnp-Videos" target="_blank" rel="noopener"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft 365 Developer YouTube channel - &lt;A href="https://aka.ms/M365DevYouTube" target="_blank" rel="noopener"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2&gt;Latest Dev Blog posts&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Here are the latest blog posts and announcements around Microsoft 365 development topics from &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs" target="_blank" rel="noopener"&gt;https://developer.microsoft.com/en-us/microsoft-365/blogs&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;5th of May -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/understanding-office-add-ins-runtime/" target="_blank" rel="noopener"&gt;Understanding the Office Add-ins runtime&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;5th of May -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/application-permissions-support-for-assignments-api-in-microsoft-graph-now-available/" target="_blank" rel="noopener"&gt;Application permissions support for assignments API in Microsoft Graph now available&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;28th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/announcing-sharepoint-framework-1-12-1-extending-more-of-microsoft-teams/" target="_blank" rel="noopener"&gt;Announcing SharePoint Framework 1.12.1 – Extending more of Microsoft Teams&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;28th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/learn-how-to-develop-apps-with-the-microsoft-graph-toolkit/" target="_blank" rel="noopener"&gt;Learn how to develop apps with the Microsoft Graph Toolkit&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;27th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-mailbag-create-engaging-apps-with-the-microsoft-teams-activity-feed-api/" target="_blank" rel="noopener"&gt;Microsoft Graph Mailbag – Create engaging apps with the Microsoft Teams Activity Feed API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;21st of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/build-quality-microsoft-teams-apps-with-these-best-practices-part-3/" target="_blank" rel="noopener"&gt;Build quality Microsoft Teams apps with these best practices: Part 3&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;20th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/utilize-change-notification-apis-for-microsoft-teams-messages/" target="_blank" rel="noopener"&gt;Utilize change notification APIs for Microsoft Teams messages&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;20th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/breaking-changes-to-the-microsoft-graph-assignments-api-beta/" target="_blank" rel="noopener"&gt;Breaking changes to the Microsoft Graph assignments API (beta)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;19th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/leverage-new-microsoft-teams-chat-apis-to-enable-new-scenarios/" target="_blank" rel="noopener"&gt;Leverage new Microsoft Teams chat APIs to enable new scenarios&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;15th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/migrate-messages-from-other-chat-platforms-to-microsoft-teams/" target="_blank" rel="noopener"&gt;Migrate messages from other chat platforms to Microsoft Teams with Microsoft Graph APIs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;14th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/enhance-app-engagement-with-the-microsoft-teams-activity-feed-api/" target="_blank" rel="noopener"&gt;Enhance app engagement with the Microsoft Teams Activity Feed API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;14th of April - &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/build-quality-microsoft-teams-apps-with-these-best-practices-part-2/" target="_blank" rel="noopener"&gt;Build quality Microsoft Teams apps with these best practices: Part 2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;13th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/announcing-public-preview-of-sharepoint-framework-1-12-1/" target="_blank" rel="noopener"&gt;Announcing public preview of SharePoint Framework 1.12.1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;13th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-mailbag-copy-move-files-and-folders-in-sharepoint-online/" target="_blank" rel="noopener"&gt;Microsoft Graph Mailbag – Copy/Move Files and Folders in SharePoint Online&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;12th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/enable-compliance-scenarios-with-hosted-content-and-delta-message-apis-in-microsoft-teams/" target="_blank" rel="noopener"&gt;Enable compliance scenarios with hosted content and delta message APIs in Microsoft Teams&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;12th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/explore-microsoft-graph-scenarios-for-javascript-development-now-on-microsoft-learn/" target="_blank" rel="noopener"&gt;Explore Microsoft Graph scenarios for JavaScript development now on Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;9th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-feature-request-experience-for-microsoft-graph-and-office/" target="_blank" rel="noopener"&gt;New feature request experience for Microsoft Graph and Office Platform&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;8th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/jedox-explains-batching-excel-custom-functions-api-calls/" target="_blank" rel="noopener"&gt;Jedox explains batching Excel Custom Functions API calls&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/build-quality-microsoft-teams-apps-with-these-best-practices-part-1/" target="_blank" rel="noopener"&gt;Build quality Microsoft Teams apps with these best practices: Part 1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;1st of April -&amp;nbsp;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/get-microsoft-graph-change-notifications-delivered-through-azure-event-hubs/" target="_blank" rel="noopener"&gt;Get Microsoft Graph change notifications delivered through Azure Event Hubs&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Latest community posts at &lt;A href="https://aka.ms/m365pnp/community/blog" target="_self"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;10th of May -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/73228" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt; (DevStack) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-news-ticker-app-spfx-extensions/ba-p/2337566" target="_self"&gt;Community Sample: News Ticker app (SPFx Extensions)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;10th of May - &lt;A href="https://twitter.com/lohndjango" target="_blank" rel="noopener"&gt;Django Lohn&lt;/A&gt; (InSpark)&amp;nbsp;-&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-automate-skip-the-parse-json-action-to-reference-data/ba-p/2336866" target="_blank" rel="noopener"&gt;Power Apps: source code editing for Canvas Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of May - &lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/new-microsoft-365-patterns-and-practices-pnp-team-members-may/ba-p/2332415" target="_blank" rel="noopener"&gt;New Microsoft 365 Patterns and Practices (PnP) team members – May 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of May -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-stefan-bauer/ba-p/2334949" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Stefan Bauer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of May - &lt;A href="https://twitter.com/MichaelRoth42" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P Information Technology-Partner GmbH) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/let-s-build-a-timer-app-for-teams-meetings/ba-p/2334593" target="_blank" rel="noopener"&gt;Let’s build a timer app for Teams meetings&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of May -&amp;nbsp;&lt;A href="https://twitter.com/aaclage" target="_blank" rel="noopener"&gt;André Lage&lt;/A&gt; (Datalynx AG) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/navigate-onedrive-data-with-microsoft-graph-and-mgt-file-list/ba-p/2296730" target="_blank" rel="noopener"&gt;Navigate OneDrive data with Microsoft Graph and Mgt-File-List Beta version&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of May - &lt;A href="https://twitter.com/mohamedderhalli" target="_blank" rel="noopener"&gt;Mohamed Derhalli&lt;/A&gt; (BDO Canada) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introducing-react-video-banner-web-part/ba-p/2329002" target="_blank" rel="noopener"&gt;Introducing React Video Banner Web Part&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of May -&amp;nbsp;&lt;A href="https://twitter.com/linked365" target="_blank" rel="noopener"&gt;Carl Cookson&lt;/A&gt; (Avanade) -&amp;nbsp;U&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/using-power-automate-and-graph-api-to-manage-external-access-to/ba-p/2330775" target="_blank" rel="noopener"&gt;sing Power Automate And Graph API To Manage External Access To Teams&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of May - &lt;A href="https://twitter.com/z3019494" target="_blank" rel="noopener"&gt;Hubert Lam&lt;/A&gt; (NSW Department of Education) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/simple-reminders-for-any-teams-channel-or-chat-message/ba-p/2319963" target="_blank" rel="noopener"&gt;Simple reminders for any Teams Channel or Chat message&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;5th of May -&amp;nbsp;&lt;A href="https://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;Chandani Prajapati&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-to-get-all-site-collections-with-their-sub-webs-using-pnp/ba-p/2322131" target="_blank" rel="noopener"&gt;How to to get all site collections with their sub webs using PnP PowerShell?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;5th of May -&amp;nbsp;&lt;A href="https://twitter.com/luismanez" target="_blank" rel="noopener"&gt;Luis Mañez&lt;/A&gt; (ClearPeople) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/ba-p/2325128" target="_blank" rel="noopener"&gt;Community sample: Engage your users with SharePoint stories/reels&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;4th of May - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-s-up-with-markdown/ba-p/2323834" target="_blank" rel="noopener"&gt;What's up with Markdown?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;1st of May -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/73228" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt; (DevStack) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-set-up-tailwind-css-in-a-spfx-project/ba-p/2313192" target="_blank" rel="noopener"&gt;How to Set Up Tailwind CSS in a SPFx Project&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;29th of April - &lt;A href="https://twitter.com/damobird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt; (Aberdeen City Council) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-platform-ms-forms-quiz-with-dynamic-leader-board-created/ba-p/2308467" target="_blank" rel="noopener"&gt;Power Platform MS Forms Quiz with dynamic Leader Board created using Power Automate and HTTP Trigger&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;29th of April -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-get-source-code-files-for-power-apps-canvas-apps/ba-p/2308822" target="_blank" rel="noopener"&gt;How to get Source Code files for Power Apps Canvas apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;29th of April - &lt;A href="https://twitter.com/garrytrinder" target="_blank" rel="noopener"&gt;Garry Trinder&lt;/A&gt; (CPS) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/ba-p/2304639" target="_blank" rel="noopener"&gt;CLI for Microsoft 365 v3.9&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;29th of April - &lt;A href="https://twitter.com/vesanopanen" target="_blank" rel="noopener"&gt;Vesa Nopanen&lt;/A&gt; (Sulava) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-virtual-agents-bot-setting-the-out-of-office/ba-p/2303716" target="_blank" rel="noopener"&gt;Power Virtual Agents bot setting the Out Of Office&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;29th of April - &lt;A href="https://twitter.com/DavidChesnut" target="_blank" rel="noopener"&gt;David Chesnut&lt;/A&gt; (Microsoft) - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-in-developer-community-pnp-march-2021-update/ba-p/2304950" target="_blank" rel="noopener"&gt;Office Add-in Developer Community (PnP) – March 2021 update&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;26th of April -&amp;nbsp;&lt;A href="https://twitter.com/damobird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt; (Aberdeen City Council) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/ba-p/2290219" target="_blank" rel="noopener"&gt;Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;25th of April&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-wictor-wil%C3%A9n/ba-p/2290078" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Wictor Wilén&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;25th of April -&amp;nbsp;&lt;A href="https://twitter.com/MichaelRoth42" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P Information Technology-Partner GmbH) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-i-as-a-non-dev-learned-as-i-created-my-first-power-app/ba-p/2288239" target="_blank" rel="noopener"&gt;What I (as a non dev) learned as I created my first Power App&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;25th of April - &lt;A href="https://twitter.com/MichaelRoth42" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P Information Technology-Partner GmbH) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/learn-to-debug-your-power-apps/ba-p/2288271" target="_blank" rel="noopener"&gt;Learn to debug your Power Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;23rd of April -&amp;nbsp;&lt;A href="https://twitter.com/yhabersaat" target="_blank" rel="noopener"&gt;Yves Habersaat&lt;/A&gt; (Sword Group) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/export-power-apps-and-power-automate-user-licenses/ba-p/2281840" target="_blank" rel="noopener"&gt;Export Power Apps and Power Automate user licenses&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;21st of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/ba-p/2280799" target="_blank" rel="noopener"&gt;How to beautify your Power Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;17th of April -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-mikael-svenson/ba-p/2276791" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Mikael Svenson&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;15th of April -&amp;nbsp;&lt;A href="https://twitter.com/_WCHolland" target="_blank" rel="noopener"&gt;Will Holland&lt;/A&gt; (ThreeWill) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/ba-p/2274881" target="_blank" rel="noopener"&gt;Use Power Automate to automatically create SharePoint News Links from an RSS feed&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;15th of April -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/learntogether-build-apps-with-microsoft-graph/ba-p/2274619" target="_blank" rel="noopener"&gt;LearnTogether: Build Apps with Microsoft Graph&lt;/A&gt; 🦒&lt;/LI&gt;
&lt;LI&gt;14th of April - &lt;A href="https://twitter.com/samc148" target="_blank" rel="noopener"&gt;Sam Collins&lt;/A&gt; (Coupled Technology) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/faq-s-in-a-document-card/ba-p/2272347" target="_blank" rel="noopener"&gt;FAQ's in a Document Card&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;12th of April - &lt;A href="https://twitter.com/lee_ford" target="_blank" rel="noopener"&gt;Lee Ford&lt;/A&gt; (Symity Ltd) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introduction-to-tokens/ba-p/2267853" target="_blank" rel="noopener"&gt;Introduction to tokens&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;12th of April -&amp;nbsp;&lt;A href="https://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;Chandani Prajapati&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-get-any-site-collection-users-with-their-roles-using-pnp/ba-p/2267307" target="_blank" rel="noopener"&gt;How to get any site collection users with their roles using PnP PowerShell?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;11th of April -&amp;nbsp;&lt;A href="https://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;Chandani Prajapati&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-show-profile-picture-in-person-column-in-sharepoint-list/ba-p/2265060" target="_blank" rel="noopener"&gt;How to show profile picture in Person column in SharePoint list/library?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;9th of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-albert-jan-schot/ba-p/2237352" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Albert-Jan Schot&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-fundamentals-learning-path-module-3/ba-p/2258845" target="_blank" rel="noopener"&gt;Microsoft Graph Fundamentals learning path – Module 3&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/pnp-watchparty-for-microsoft-s-learntogether-building-apps-with/ba-p/2257217" target="_blank" rel="noopener"&gt;PnP WatchParty for Microsoft's 'LearnTogether Building apps with Microsoft Graph' event&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of April - &lt;A href="https://twitter.com/lohndjango" target="_blank" rel="noopener"&gt;Django Lohn&lt;/A&gt; (InSpark) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-source-code-editing-for-canvas-apps/ba-p/2256476" target="_blank" rel="noopener"&gt;Power Apps: source code editing for Canvas Apps&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;7th of April - &lt;A href="https://twitter.com/YannickReekmans" target="_blank" rel="noopener"&gt;Yannick Reekmans&lt;/A&gt; (Qubix) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/change-your-own-profile-picture-as-a-guest-in-microsoft-teams/ba-p/2257434" target="_blank" rel="noopener"&gt;Change your own profile picture as a Guest in Microsoft Teams&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;6th of April - &lt;A href="https://twitter.com/homol" target="_blank" rel="noopener"&gt;Mike Homol&lt;/A&gt; (ThreeWill) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/improving-the-page-properties-web-part/ba-p/2256651" target="_blank" rel="noopener"&gt;Improving the Page Properties web part&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;5th of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-fundamentals-learning-path-module-2/ba-p/2253924" target="_blank" rel="noopener"&gt;Microsoft Graph Fundamentals learning path – Module 2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;1st of April - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-fundamentals-learning-path-module-1/ba-p/2249800" target="_blank" rel="noopener"&gt;Microsoft Graph Fundamentals learning path – Module 1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;1st of April -&amp;nbsp;&lt;A href="https://twitter.com/_WCHolland" target="_blank" rel="noopener"&gt;Will Holland&lt;/A&gt; (ThreeWill) -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/copy-a-list-with-list-items-to-another-site/ba-p/2248892" target="_blank" rel="noopener"&gt;Copy a list - with list items - to another site&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Community call recording blog posts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;7th of May -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-6th-of-may-2021/ba-p/2331918" target="_blank" rel="noopener"&gt;SharePoint Framework Community Call Recording – 6th of May, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;3rd of May -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-ins-community-call-april-14-2021/ba-p/2318886" target="_blank" rel="noopener"&gt;Office Add-ins community call – April 14, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;30th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-29th-of-april/ba-p/2307369" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Community Call recording – 29th of April, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;28th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-community-call-april-2021/ba-p/2298021" target="_blank" rel="noopener"&gt;Power Apps Community Call – April 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;23rd of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-22nd-of-april-2021/ba-p/2281674" target="_blank" rel="noopener"&gt;SharePoint Framework Community Call Recording – 22nd of April, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;22nd of April - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-teams-community-call-april-2021/ba-p/2279162" target="_blank" rel="noopener"&gt;Microsoft Teams Community Call - April 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;16th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-15th-of-april/ba-p/2274785" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Community Call recording – 15th of April, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;14th of April - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-community-call-april-13th-2021/ba-p/2270378" target="_blank" rel="noopener"&gt;SharePoint community call - April 13th, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;9th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-8th-of-april-2021/ba-p/2261708" target="_blank" rel="noopener"&gt;SharePoint Framework Community Call Recording – 8th of April, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;8th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-graph-community-call-april-6th-2021/ba-p/2258711" target="_blank" rel="noopener"&gt;Microsoft Graph community call - April 6th, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;2nd of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-1st-of-april/ba-p/2248558" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Community Call recording – 1st of April, 2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PnP Weekly video blog / podcast shows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;3rd of May -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-125/ba-p/2318240" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 125&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/SandyU" target="_blank" rel="noopener nofollow noreferrer"&gt;Sandy Ussia&lt;/A&gt;&amp;nbsp;(Lightning Tools)&lt;/LI&gt;
&lt;LI&gt;27th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-124/ba-p/2294147" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 124&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/EEMancini" target="_blank" rel="noopener nofollow noreferrer"&gt;Emily Mancini&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Sympraxis Consulting)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;20th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-123/ba-p/2278796" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 123&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/aprildunnam" target="_self" rel="nofollow noopener noreferrer"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft)&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;13th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-122/ba-p/2268519" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 122&lt;/A&gt; -&amp;nbsp;&lt;A href="http://twitter.com/mrackley" target="_blank" rel="noopener nofollow noreferrer"&gt;Mark Rackley&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(PAIT Group)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;4th of April -&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-120/ba-p/2242545" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly – Episode 121&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/NikCharlebois" target="_self" rel="nofollow noopener noreferrer"&gt;Nik Charlebois&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We highly recommend also subscribing on the &lt;A href="https://www.m365devpodcast.com/" target="_blank" rel="noopener"&gt;Microsoft 365 Developer Podcast show&lt;/A&gt;, which is a great show covering also latest development in the Microsoft 365 platform from developer and extensibility perspective.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Community Calls&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;There are numerous different community calls on different areas. All calls are being recorded and published either from &lt;A href="https://www.youtube.com/channel/UCV_6HOhwxYLXAGd-JOqKPoQ" target="_blank" rel="noopener"&gt;Microsoft 365 Developer&lt;/A&gt; or &lt;A href="https://www.youtube.com/channel/UC_mKdhw-V6CeCM7gTo_Iy7w" target="_blank" rel="noopener"&gt;Microsoft 365 Community (PnP) YouTube&lt;/A&gt; channels. Recordings are typically released within the following 24 hours after the call. You can find a detailed agenda and links to specific covered topics on blog post articles at the &lt;A href="http://aka.ms/spdev-blog" target="_blank" rel="noopener"&gt;Microsoft 365 developer blog&lt;/A&gt; when the videos are published.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Adaptive Cards&amp;nbsp; &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt; - Updates and news around Adaptive Cards with live demos&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph&amp;nbsp; &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt; - Updates and news from Microsoft Graph with live demos&lt;/LI&gt;
&lt;LI&gt;Microsoft identity platform&amp;nbsp; &lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt; - Latest on the identity side&lt;/LI&gt;
&lt;LI&gt;Microsoft Teams&amp;nbsp; &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt; - Microsoft Teams monthly update with live demos&lt;/LI&gt;
&lt;LI&gt;Office Add-ins&amp;nbsp; &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscommunitycall&lt;/A&gt; - News and community work around Office add-ins with live demos&lt;/LI&gt;
&lt;LI&gt;PowerApps &amp;nbsp; &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt; - Monthly summary on PowerApps community with live demos&lt;/LI&gt;
&lt;LI&gt;SharePoint &amp;nbsp; &lt;A href="https://aka.ms/spdev-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-call&lt;/A&gt; - Consists of the latest news, providing credits for all community contributors and live demos typically by SharePoint engineering.&lt;/LI&gt;
&lt;LI&gt;M365 General Dev SIG&amp;nbsp; &amp;nbsp; &lt;A href="https://aka.ms/spdev-sig-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-sig-call&lt;/A&gt;&amp;nbsp; - Bi-weekly - General topics on Microsoft 365 Dev from various aspects - Microsoft Teams, Microsoft Graph Toolkit, Provisioning, Automation, Scripting, Power Automate, Solution design&lt;/LI&gt;
&lt;LI&gt;SharePoint Framework SIG&amp;nbsp; &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt; - Bi-weekly - Consists of topics around SharePoint Framework and JavaScript-based development in the Microsoft Teams and in SharePoint platform.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;If you are interested in doing a live demo of your solution or sample in these calls, please do reach out to the PnP&amp;nbsp; Team members (contacts later in this post) and they are able to help with the right setup. These are great opportunities to gain visibility for example for existing MVPs, for community members who would like to be MVPs in the future or any community member who'd like to share some of their learnings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2&gt;Microsoft 365 Community (PnP) Ecosystem in GitHub&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Most of the community driven repositories are in the &lt;A href="https://github.com/pnp" target="_blank" rel="noopener"&gt;PnP GitHub organization&lt;/A&gt; as samples are not product specifics as they can contain numerous different solutions or the solution works in multiple different applications.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpjs" target="_blank" rel="noopener"&gt;PnPjs&lt;/A&gt;&amp;nbsp;-&amp;nbsp;PnPjs Framework repository&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/cli-microsoft365/" target="_blank" rel="noopener"&gt;CLI Microsoft 365&lt;/A&gt;&amp;nbsp;-&amp;nbsp;Cross-OS command line interface to manage Office 365 tenant settings&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/generator-spfx" target="_blank" rel="noopener"&gt;generator-spfx&lt;/A&gt; - Open-source Yeoman generator which extends the out-of-the-box Yeoman generator for SharePoint with additional capabilities&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/generator-teams" target="_blank" rel="noopener"&gt;generator-teams&lt;/A&gt; - Open-source Microsoft Teams Yeoman generator - Bots, Messaging Extensions, Tabs, Connectors, Outgoing Web hooks and more&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/teams-dev-samples/" target="_blank" rel="noopener"&gt;teams-dev-samples&lt;/A&gt; - Microsoft Teams targeted samples from community and Microsoft engineering&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sharing-is-caring" target="_blank" rel="noopener"&gt;Sharing is Caring&lt;/A&gt; - Getting started on learning how to contribute and be active on the community from GitHub perspective.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpcore" target="_blank" rel="noopener"&gt;pnpcore &lt;/A&gt;- The PnP Core SDK is an SDK designed to work against Microsoft 365 with Microsoft Graph API first approach&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/powershell" target="_blank" rel="noopener"&gt;powershell&lt;/A&gt; -&amp;nbsp; PnP PowerShell module which is PowerShell Core module targeted for Microsoft 365&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpframework" target="_blank" rel="noopener"&gt;pnpframework&lt;/A&gt; - PnP Framework is a .Net Standard 2.0 library targeting Microsoft 365 containing the PnP Provisioning engine and a ton of other useful extensions&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/teams-dev-samples" target="_blank" rel="noopener"&gt;https://github.com/pnp/teams-dev-samples&lt;/A&gt; - Samples around the Microsoft Teams development models from Microsoft and from the community&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-webparts" target="_blank" rel="noopener"&gt;sp-dev-fx-webparts&lt;/A&gt; - Client-side web part samples from community and Microsoft engineering&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-extensions" target="_blank" rel="noopener"&gt;sp-dev-fx-extensions&lt;/A&gt;&amp;nbsp;- Samples and tutorial code around SharePoint Framework Extensions&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-library-components" target="_blank" rel="noopener"&gt;sp-dev-fx-library-components&lt;/A&gt; - Samples and tutorial code around the SharePoint Framework library components&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-starter-kit" target="_blank" rel="noopener"&gt;sp-starter-kit&lt;/A&gt;&amp;nbsp;- Starter kit solution for SharePoint modern experiences&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-vs-extension" target="_blank" rel="noopener"&gt;sp-dev-fx-vs-extension&lt;/A&gt;&amp;nbsp;- Open source Visual Studio IDE extension for creating SharePoint Framework solutions&amp;nbsp;in the Visual Studio 2015 or 2017&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-build-extensions" target="_blank" rel="noopener"&gt;sp-dev-build-extensions&lt;/A&gt;&amp;nbsp;-&amp;nbsp;Different build extensions like gulp tasks and gulp plugins from the community and engineering around SharePoint development&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-solutions" target="_blank" rel="noopener"&gt;sp-dev-solutions&lt;/A&gt;&amp;nbsp;- Repository for more polished and fine-tuned reusable solutions build with SharePoint Framework&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-samples" target="_blank" rel="noopener"&gt;sp-dev-samples&lt;/A&gt; - Repository for other samples related on the SharePoint development topics - WebHooks etc.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-controls-react" target="_blank" rel="noopener"&gt;sp-dev-fx-controls-react&lt;/A&gt;&amp;nbsp;-&amp;nbsp;Reusable content controls for SharePoint Framework solutions build with React&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-fx-property-controls" target="_blank" rel="noopener"&gt;sp-dev-fx-property-controls&lt;/A&gt;&amp;nbsp;- Reusable property pane controls to be used in web parts&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-column-formatting" target="_blank" rel="noopener"&gt;sp-dev-list-formatting&lt;/A&gt;&amp;nbsp;- Open-source community-driven repository for the column and view formatting JSON definitions&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-site-scripts" target="_blank" rel="noopener"&gt;sp-dev-site-scripts&lt;/A&gt;&amp;nbsp;- Open-source community-driven repository for community Site Designs and Site Scripts&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-modernization" target="_blank" rel="noopener"&gt;sp-dev-modernization&lt;/A&gt; - Tooling and guidance around modernizing SharePoint from classic to modern&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-power-platform-solutions" target="_blank" rel="noopener"&gt;sp-power-platform-solutions&lt;/A&gt; - Solution and sample code for SharePoint Power Platform solutions&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/powerfx-samples" target="_blank" rel="noopener"&gt;powerfx-samples&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Samples that demonstrate different usage patterns for the Power Fx low-code programming language&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/pnp/powerapps-samples" target="_blank" rel="noopener"&gt;powerapps-samples&lt;/A&gt; - Samples&amp;nbsp;that demonstrate different usage patterns for Power Apps&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/pnp/powerautomate-samples" target="_blank" rel="noopener"&gt;powerautomate-samples&lt;/A&gt; -&amp;nbsp;Samples that demonstrate different usage patterns for Power Automate&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/pnp/powerva-samples" target="_blank" rel="noopener"&gt;powerva-samples&lt;/A&gt; -&amp;nbsp;Samples that demonstrate different usage patterns for Power Virtual Agents&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All SharePoint specific repositories or services supported directly by Microsoft are located in the SharePoint GitHub organization&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-docs" target="_blank" rel="noopener"&gt;sp-dev-docs&lt;/A&gt; - Source for new SharePoint dev center documentation exposed from &lt;A href="http://docs.microsoft.com/en-us/sharepoint/dev/" target="_blank" rel="noopener"&gt;http://docs.microsoft.com/en-us/sharepoint/dev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-provisioning-templates" target="_blank" rel="noopener"&gt;sp-dev-provisioning-templates&lt;/A&gt; - Open-source templates used by the &lt;A href="https://lookbook.microsoft.com/" target="_blank" rel="noopener"&gt;SharePoint Look Book site&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-provisioning-service" target="_blank" rel="noopener"&gt;sp-provisioning-service&lt;/A&gt; - Source code of the &lt;A href="https://lookbook.microsoft.com/" target="_blank" rel="noopener"&gt;SharePoint look book site&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PnP specific repositories - solution designs and tooling&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/sharepoint/pnp" target="_blank" rel="noreferrer noopener"&gt;PnP&lt;/A&gt;&amp;nbsp;- Main repository for SP add-in, Microsoft Graph&amp;nbsp;etc. samples&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/sharepoint/PnP-Sites-Core" target="_blank" rel="noreferrer noopener"&gt;PnP-Sites-Core&lt;/A&gt;&amp;nbsp;- Office Dev PnP Core component&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/sharepoint/PnP-PowerShell" target="_blank" rel="noreferrer noopener"&gt;PnP-PowerShell&lt;/A&gt;&amp;nbsp;- Office Dev PnP PowerShell Cmdlets&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/sharepoint/PnP-Tools" target="_blank" rel="noreferrer noopener"&gt;PnP-Tools&lt;/A&gt;&amp;nbsp;- Tools and scripts targeted more for IT Pro's and for on-premises for SP2013 and SP2016&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/sharepoint/PnP-provisioning-schema" target="_blank" rel="noreferrer noopener"&gt;PnP-Provisioning-Schema&lt;/A&gt;&amp;nbsp;- PnP Provisioning engine schema repository&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/PnP-IdentityModel" target="_blank" rel="noopener"&gt;PnP-IdentityModel&lt;/A&gt;&amp;nbsp;- Open source replacement of&amp;nbsp;Microsoft.IdentityModel.Extensions.dll&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Repositories in the GitHub &lt;A href="https://github.com/microsoft-search" target="_blank" rel="noopener"&gt;Microsoft Search&lt;/A&gt; organization controlled by the PnP initiative&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoft-search/pnp-modern-search" target="_blank" rel="noopener"&gt;pnp-modern-search&lt;/A&gt; -&amp;nbsp; Home of PnP Modern Search solutions, see more from the &lt;A href="https://microsoft-search.github.io/pnp-modern-search/" target="_blank" rel="noopener"&gt;documentation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Other related resources from GitHub&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit&lt;/A&gt; in GitHub - Community contributions welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins" target="_blank" rel="noopener"&gt;Office add-in Patterns and Practices in GitHub&lt;/A&gt; - Community contributions welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph" target="_blank" rel="noopener"&gt;Microsoft Graph&lt;/A&gt; GitHub organization&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/officedev" target="_blank" rel="noopener"&gt;OfficeDev GitHub organization&lt;/A&gt; - Includes all Microsoft Teams samples from Microsoft&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2&gt;What's supportability story around the community tooling and assets?&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Following statements apply across all of the community lead and contributed samples and solutions, including samples, core component(s) and solutions, like &lt;A href="https://github.com/SharePoint/sp-starter-kit" target="_blank" rel="noopener"&gt;SharePoint Starter Kit&lt;/A&gt;, &lt;A href="https://aka.ms/yoteams" target="_self"&gt;yo teams&lt;/A&gt; or &lt;A href="https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps" target="_blank" rel="noopener"&gt;PnP PowerShell&lt;/A&gt;. All Microsoft released SDKs and tools are supported based on the specific tool policies.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PnP guidance and samples are created by Microsoft &amp;amp; by the Community&lt;/LI&gt;
&lt;LI&gt;PnP guidance and samples are maintained by Microsoft &amp;amp; community&lt;/LI&gt;
&lt;LI&gt;PnP uses supported and recommended techniques&lt;/LI&gt;
&lt;LI&gt;PnP is an&amp;nbsp;open-source initiative&amp;nbsp;by the community – people who work on the initiative for the benefit of others, have their normal day job as well&lt;/LI&gt;
&lt;LI&gt;PnP is NOT a product and therefore it’s not supported by Premier Support or other official support channels&lt;/LI&gt;
&lt;LI&gt;PnP is supported in similar ways as other open source projects done by Microsoft with support from the community by the community&lt;/LI&gt;
&lt;LI&gt;There are numerous partners that utilize PnP within their solutions for customers. Support for this is provided by the Partner. When PnP material is used in deployments, we recommend being clear with your customer/deployment owner on the support model&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please see the specifics on the supportability on the tool, SDK or&amp;nbsp; component repository or download page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Microsoft 365 PnP team model&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pnp-community-model.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261738iE62C2523C7D5399F/image-size/large?v=v2&amp;amp;px=999" role="button" title="pnp-community-model.png" alt="pnp-community-model.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In April 2020 we announced our new &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener"&gt;Microsoft 365 PnP team model&lt;/A&gt; and grew the MVP team quite significantly. PnP model exists for having more efficient engagement between Microsoft engineering and community members. Let's build things together. Your contributions and feedback is always welcome! During August, we also crew the team with 5 new members. PnP Team coordinates and leads the different open-source and community efforts we execute in the Microsoft 365 platform.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We welcome all community members to get involved on the community and open-source efforts. Your input do matter!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/new-microsoft-365-patterns-and-practices-pnp-team-members-may/ba-p/2332415" target="_self"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - May 2021&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/gautamdsheth" target="_blank" rel="noopener"&gt;Gautam Sheth&lt;/A&gt; (Valo) and&amp;nbsp;&lt;A href="https://github.com/plamber" target="_blank" rel="noopener"&gt;Patrick Lamber&lt;/A&gt; (Experts Inside AG)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members-february-2021/" target="_blank" rel="noopener"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - February 2021&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://www.twitter.com/aprildunnam" href="https://www.twitter.com/aprildunnam" target="_blank" rel="noreferrer noopener nofollow"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft),&amp;nbsp;&lt;A href="https://twitter.com/EEMancini" target="_self" rel="nofollow noopener noreferrer"&gt;Emily Mancini&lt;/A&gt;&amp;nbsp;(Sympraxis Consulting) and&amp;nbsp;&lt;A href="https://twitter.com/veronicageek" target="_blank" rel="nofollow noopener noreferrer"&gt;Veronique Lengelle&lt;/A&gt;&amp;nbsp;(CPS)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members-2/" target="_blank" rel="noopener"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - December 2020&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="nofollow noopener noreferrer"&gt;Luise Freese&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://twitter.com/sebastienlevert/" target="_blank" rel="nofollow noopener noreferrer"&gt;Sébastien Levert&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members/" target="_blank" rel="noopener"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - August 2020&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/appieschot" target="_blank" rel="nofollow noopener noreferrer"&gt;Albert-Jan Schot&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Portiva),&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/koenzomers" target="_blank" rel="nofollow noopener noreferrer"&gt;Koen Zomers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft),&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/pkbullock" target="_blank" rel="nofollow noopener noreferrer"&gt;Paul Bullock&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(CaPa Creative),&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/williamsrabia" target="_blank" rel="nofollow noopener noreferrer"&gt;Rabia Williams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft) and&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://twitter.com/yp_code" target="_blank" rel="nofollow noopener noreferrer"&gt;Yannick Plenevaux&lt;/A&gt;&amp;nbsp;(PVX Solutions)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Got feedback, suggestions or ideas? - Please let us know. Everything we do in this program is &lt;STRONG&gt;for your benefit&lt;/STRONG&gt;. Feedback and ideas are more than welcome so that we can adjust the process for benefitting you even more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2 id="latest-changes"&gt;Area-specific updates&lt;/H2&gt;
&lt;P&gt;These are different areas which are closely involved on the community work across the PnP initiative. Some are lead and coordinated by engineering organizations, some are coordinated by the community and MVPs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Microsoft Graph Toolkit&lt;/H3&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="graph-toolkit.jpg" style="width: 527px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261739iA57BB73461170C2E/image-size/large?v=v2&amp;amp;px=999" role="button" title="graph-toolkit.jpg" alt="graph-toolkit.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Microsoft Graph Toolkit is engineering lead initiative, which works closely with the community on the open-source areas. The Microsoft Graph Toolkit is a collection of reusable, framework-agnostic web components and helpers for accessing and working with Microsoft Graph. The components are fully functional right of out of the box, with built in providers that authenticate with and fetch data from Microsoft Graph.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Latest version currently is 2.1. See the v2.1 announcement blog post for more details - &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-toolkit-adds-a-new-electron-provider-plus-enhanced-capabilities/?_cache_bypass=1615242299" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit adds a new Electron Provider plus enhanced capabilities&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://mgt.dev/?path=/story/components-mgt-agenda--simple" target="_blank" rel="noopener"&gt;mgt.dev&lt;/A&gt; - Microsoft Graph Toolkit Playground&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=TbAZHvB5NEk" target="_blank" rel="noopener"&gt;Getting started with Microsoft Graph Toolkit guidance video&lt;/A&gt; from developer community call by &lt;A href="https://twitter.com/beth_panx" target="_blank" rel="noopener"&gt;Beth Pan&lt;/A&gt; (Microsoft)&lt;/LI&gt;
&lt;LI&gt;Latest code and preview versions from &lt;A href="https://aka.ms/mgt" target="_self"&gt;https://aka.ms/mgt&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the latest updates on the Microsoft Graph Toolkit is being presented in our bi-weekly Microsoft 365 Generic Dev community call, including the latest community contributors.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3&gt;Microsoft 365 Community docs&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="community-dcos.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261740i45A51B070D635369/image-size/large?v=v2&amp;amp;px=999" role="button" title="community-dcos.png" alt="community-dcos.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Community docs model was announced in the April 2020 and it's great to see the interest for community to help each other by providing new guidance on the non-dev areas. See more on the announcement from the SharePoint blog - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/announcing-the-microsoft-365-community-docs/ba-p/1288203" target="_blank" rel="noopener"&gt;Announcing the Microsoft 365 Community Docs&lt;/A&gt;. We do welcome contributions from the community - our objective is to build a valuable location for articles from Microsoft and community together.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Latest updates on this area as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New article by &lt;A href="https://www.linkedin.com/in/michael-roth-handsomeguy/" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; - &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/accessibility-by-design" target="_self"&gt;Accessibility by Design&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;New article by &lt;A href="https://www.linkedin.com/in/eemancini/" target="_blank" rel="noopener"&gt;Emily Mancini&lt;/A&gt; (Sympraxis Consulting) - &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/microsoft365-maturity-model--how-to-elevate-collaboration" target="_blank" rel="noopener"&gt;Microsoft 3565 Maturity Model - Elevating Collaboration&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Updated article by &lt;A href="https://twitter.com/bigpix2000" target="_blank" rel="noopener"&gt;Ralph Rivas&lt;/A&gt; (Sogeti) -&amp;nbsp;&lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/powerplatformlicensingforcitizendeveloper" target="_blank" rel="noopener"&gt;Understanding Power Platform Licensing&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Updated article by &lt;A href="https://twitter.com/sympmarc" target="_blank" rel="noopener"&gt;Marc D Anderson&lt;/A&gt; (Sympraxis Consulting) -&amp;nbsp;&lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/how-do-site-columns-become-managed-properties-thus-available-for-search" target="_blank" rel="noopener"&gt;How Do Site Columns Become Managed Properties - Thus Available for Search&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Updated article by&amp;nbsp; &lt;A href="https://twitter.com/sympmarc" target="_blank" rel="noopener"&gt;Marc D Anderson&lt;/A&gt; (Sympraxis Consulting) - &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/glossary" target="_blank" rel="noopener"&gt;Glossary&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have ideas for articles or want to contribute yourself? - Get involved! Here are also some additional resources explaining the model more detailed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;YouTube - &lt;A href="https://www.youtube.com/watch?v=HTbgjWvsh3k" target="_blank" rel="noopener"&gt;Introducing Microsoft 365 Community Docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/MicrosoftDocs/microsoft-365-community/issues" target="_blank" rel="noopener"&gt;GitHub issue list&lt;/A&gt; with articles ideas&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3&gt;SharePoint Framework development samples&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="spfx-gallery.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261742i96F265E42A76DB51/image-size/large?v=v2&amp;amp;px=999" role="button" title="spfx-gallery.png" alt="spfx-gallery.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;These are the updated SharePoint Framework samples which are available from the the different repositories.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-teams-membership-updater" target="_blank" rel="noopener"&gt;react-teams-membership-updater&lt;/A&gt; by&amp;nbsp;&lt;A href="https://github.com/techienickb" target="_blank" rel="noopener"&gt;Nick Brown&lt;/A&gt;&amp;nbsp;which can be u&lt;SPAN&gt;sed to update the membership of a team based on the contents of a CSV file, can be hosted in a SharePoint site where a list can be defined for logging purposes or run inside teams as a personal app.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/main/samples/react-application-news-ticker" target="_blank" rel="noopener"&gt;react-application-news-ticker&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/kuboconcept" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt;&amp;nbsp;&lt;SPAN&gt;that displays news as a running text at the top of every modern page&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Updates to&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-staffdirectory" target="_blank" rel="noopener"&gt;react-staffdirectory&lt;/A&gt; by&amp;nbsp;&lt;A href="https://github.com/tristian2" target="_blank" rel="noopener"&gt;Tristian O'Brien&lt;/A&gt;&amp;nbsp;which is a&amp;nbsp;&lt;SPAN&gt;web part shows the current user's colleagues, and allows the user to search AD directory.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Updates to&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-datatable" target="_blank" rel="noopener"&gt;react-datatable&lt;/A&gt; by&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;Chandani Prajapati&lt;/A&gt;&amp;nbsp;which&amp;nbsp;provides easy way to render SharePoint custom list in datatable view with all the necessary features.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Other to numerous&amp;nbsp;SPFx web part and extension samples by our awesome community members!&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How to find what's relevant for you? Take advantage of our SharePoint Framework web part and extension sample galleries - includes also solutions which work in Microsoft Teams&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Web Part sample gallery - &lt;A href="http://aka.ms/spfx-webparts" target="_blank" rel="noopener"&gt;http://aka.ms/spfx-webparts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Extensions sample gallery - &lt;A href="http://aka.ms/spfx-extensions" target="_blank" rel="noopener"&gt;http://aka.ms/spfx-extensions&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Microsoft Teams community samples&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="teams-samples-promo.jpg" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261745i9E77F4A84CE0145E/image-size/large?v=v2&amp;amp;px=999" role="button" title="teams-samples-promo.jpg" alt="teams-samples-promo.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These are samples which have been contributed on the community samples since last summary. We do welcome all Microsoft Teams samples to this gallery. They can be implemented using in any technology.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/msgext-bot-SPUploader" target="_blank" rel="noopener"&gt;msgext-bot-SPUploader&lt;/A&gt; by Sathya Raveendran and Varaprasad SSLN which is a document manager solution&lt;/LI&gt;
&lt;LI&gt;New sample &lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/tab-activity-feed" target="_blank" rel="noopener"&gt;tab-activity-feed&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt; (Microsoft) which shows on&amp;nbsp;&lt;SPAN&gt;how to build a solution leveraging the Teams Activity Feed API to send notifications to other users&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Updates to &lt;A href="https://github.com/pnp/teams-dev-samples/tree/main/samples/tab-sso" target="_blank" rel="noopener"&gt;tab-sso&lt;/A&gt;&amp;nbsp;by &lt;A href="https://github.com/Shama" target="_blank" rel="noopener"&gt;Shama&lt;/A&gt; which&amp;nbsp;shows how to create a tab for Teams that uses the built-in Single Sign-On (SSO) capabilities&lt;/LI&gt;
&lt;LI&gt;Numerous updates on the existing samples provided by community and Microsoft&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you are interested on Microsoft Teams samples, we have just released also new &lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener"&gt;Microsoft Teams sample gallery&lt;/A&gt;. Contributions to &lt;A href="https://github.com/pnp/teams-dev-samples" target="_blank" rel="noopener"&gt;Microsoft Teams samples&lt;/A&gt; is also more than welcome. This gallery already surfaces all Microsoft samples, &lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/samples/app-templates" target="_blank" rel="noopener"&gt;Microsoft Teams app templates&lt;/A&gt; and community samples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Power Platform samples&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="power-platform-samples.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279633i788F8D894CE8B615/image-size/large?v=v2&amp;amp;px=999" role="button" title="power-platform-samples.png" alt="power-platform-samples.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;These are the updated Power Platform samples which are available from the new Power Platform sample gallery.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New sample &lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/color-functions" target="_blank" rel="noopener"&gt;color-functions&lt;/A&gt; by&amp;nbsp;&lt;A href="https://github.com/P3N-101" target="_blank" rel="noopener"&gt;P3N&lt;/A&gt; showing f&lt;SPAN&gt;unctions that calculate the contrast between two colors&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/convertbasenumber-functions" target="_blank" rel="noopener"&gt;convertbasenumber-functions&lt;/A&gt; by &lt;A href="https://twitter.com/koruneko32767" target="_self"&gt;コルネ&lt;/A&gt; showing&amp;nbsp;function that converts base numbers&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/date-functions" target="_blank" rel="noopener"&gt;date-functions&lt;/A&gt; by &lt;A href="https://twitter.com/mattbdevaney" target="_blank" rel="noopener"&gt;Matthew Devaney&lt;/A&gt;&amp;nbsp;(Hitachi Solutions) providing set of data functions for data manipulation&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/financial-functions" target="_blank" rel="noopener"&gt;financial-functions&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/mattbdevaney" target="_blank" rel="noopener"&gt;Matthew Devaney&lt;/A&gt;&amp;nbsp;(Hitachi Solutions) providing set of financial&amp;nbsp;functions&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/geolocation-utils" target="_blank" rel="noopener"&gt;geolocation-utils&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/mofumofu_dance" target="_self"&gt;Hiroaki Nagao&lt;/A&gt;&amp;nbsp;providing a&amp;nbsp;&amp;nbsp;function to calculate distance and compass heading between two locations&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/list-functions" target="_blank" rel="noopener"&gt;list-functions&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/Laura_GB" target="_blank" rel="noopener"&gt;Laura Graham-Brown&lt;/A&gt; (AIS) providing set of functions around lists&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerfx-samples/tree/main/samples/regex-functions" target="_blank" rel="noopener"&gt;regex-functions&lt;/A&gt; by &lt;A href="https://github.com/GSiVed" target="_blank" rel="noopener"&gt;Geetha Sivasaiam&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://github.com/P3N-101" target="_blank" rel="noopener"&gt;P3N&lt;/A&gt; on set of functions that performs regex match on currency, percent &amp;amp; time formats&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/Tagbox" target="_self"&gt;Tagbox&lt;/A&gt; by &lt;A href="https://twitter.com/CarmenYsewijn" target="_self"&gt;Carmen Ysewijn&lt;/A&gt;&amp;nbsp;(Qubix) showing a textbox that adds items into a dynamic list&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/Timesheet" target="_blank" rel="noopener"&gt;Timesheet&lt;/A&gt; by &lt;A href="https://www.twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) showing a&amp;nbsp;timesheet application is a tablet-based canvas app that gives you a way to create and manage weekly timesheets&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/calendar-component" target="_blank" rel="noopener"&gt;calendar-component&lt;/A&gt; by &lt;A href="https://www.twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) providing a&amp;nbsp;re-usable component that allows you to display events in a calendar&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/expandable-navigation" target="_blank" rel="noopener"&gt;expandable-navigation&lt;/A&gt; by &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;Luise Freese&lt;/A&gt; providing&amp;nbsp;an example for a expandable navigation using&amp;nbsp;&lt;A href="https://developer.microsoft.com/fluentui#/styles/web/icons" target="_blank" rel="nofollow noopener"&gt;Fluent UI&lt;/A&gt;&amp;nbsp;icons&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/status-indicator" target="_blank" rel="noopener"&gt;status-indicator&lt;/A&gt; by &lt;A href="https://twitter.com/spdcp" target="_blank" rel="noopener"&gt;Derek Cash-Peterson&lt;/A&gt; (Sympraxis Consulting) showing&amp;nbsp;how to add a status indicator in a display form&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample&amp;nbsp;&lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/timer" target="_blank" rel="noopener"&gt;timer&lt;/A&gt; by&amp;nbsp;&lt;A href="https://twitter.com/Gezeitenbrand" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P) providing an example of how to use the timer function as a stopwatch&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerautomate-samples/tree/main/samples/Try-Catch-Finally" target="_blank" rel="noopener"&gt;Try-Catch-Finally&lt;/A&gt; by &lt;A href="https://github.com/remyblok" target="_blank" rel="noopener"&gt;Remy Blok&lt;/A&gt;&amp;nbsp;(Prodware) providing a&amp;nbsp;pattern for Try-Catch-Finally&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerautomate-samples/tree/main/samples/exception-handing-in-do-until-loop" target="_blank" rel="noopener"&gt;exception-handing-in-do-until-loop&lt;/A&gt; by &lt;A href="https://github.com/remyblok" target="_blank" rel="noopener"&gt;Remy Blok&lt;/A&gt;&amp;nbsp;(Prodware) providing a&amp;nbsp;pattern for breaking out of a 'Do Until'-loop in Power Automate when an exception occurs.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample ics-calendar-invite by &lt;A href="https://www.twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft)&amp;nbsp;which sends an&amp;nbsp;&lt;CODE&gt;.ics&lt;/CODE&gt;&amp;nbsp;calendar invite when a new event is added to a SharePoint list&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerautomate-samples/tree/main/samples/planner-task-from-flagged-email" target="_blank" rel="noopener"&gt;planner-task-from-flagged-email&lt;/A&gt; by &lt;A href="https://www.twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) which creates Planner Task from flagged emails&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;New sample &lt;A href="https://github.com/pnp/powerautomate-samples/tree/main/samples/teams-invites-via-graph-api" target="_blank" rel="noopener"&gt;teams-invites-via-graph-api&lt;/A&gt; by &lt;A href="https://twitter.com/LinkeD365" target="_blank" rel="noopener"&gt;Carl Cookson&lt;/A&gt; (Avanade) sample showing how guest user can request access to a Team&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How to find what's relevant for you? Take advantage of our Power Platform sample gallery.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Power Platform sample gallery -&amp;nbsp;&lt;A href="https://aka.ms/powerplatform-samples" target="_self"&gt;https://aka.ms/powerplatform-samples&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:image {"id":3821,"sizeSlug":"large"} --&gt;&lt;!-- /wp:image --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3&gt;Sharing is Caring initiative&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sharing-is-caring-promo-1024x576.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/261747i39E00EA5029AD282/image-size/large?v=v2&amp;amp;px=999" role="button" title="sharing-is-caring-promo-1024x576.png" alt="sharing-is-caring-promo-1024x576.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;The "Sharing Is Caring" imitative is targeted for learning the basics around making changes in Microsoft Docs, in GitHub, submitting pull requests to the PnP repositories and in GitHub in general. Take advantage of this instructor lead training for learning how to contribute to docs or to open-source solutions. Everyone is welcome to learn how to get started on contributing to open-source docs or code!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;See more from the &lt;A href="http://aka.ms/sharing-is-caring" target="_blank" rel="noopener"&gt;guidance documentation&lt;/A&gt; - including all upcoming instructor lead sessions which you can participate!&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:image {"id":3823,"sizeSlug":"large"} --&gt;&lt;!-- /wp:image --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:image {"id":3824,"sizeSlug":"large"} --&gt;&lt;!-- /wp:image --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3&gt;Different Microsoft 365 related open-source initiatives build together with the community&lt;/H3&gt;
&lt;P&gt;See exact details on the latest updates from the specific open-source project release notes. You can also follow up on the project updates from our community calls. There are numerous active projects which are releasing new versions with the community even on weekly basis. Get involved!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Look Book&lt;/STRONG&gt; - Discover the modern experiences you can build with SharePoint in Microsoft 365. Look book provides design examples for SharePoint Online which can be automatically provisioned to any tenant in the world. See more from &lt;A href="https://lookbook.microsoft.com" target="_blank" rel="noopener"&gt;https://lookbook.microsoft.com&lt;/A&gt;. This service is also provided as open-source solution sample from &lt;A href="https://github.com/SharePoint/sp-provisioning-service" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;yo teams&lt;/STRONG&gt; - Open-source Yeoman generator for Microsoft Teams extensibility. Supports creation of bots, messaging extensions, tabs (with SSO), connectors and outgoing Webhooks. See more from &lt;A href="https://aka.ms/yoteams" target="_blank" rel="noopener"&gt;https://aka.ms/yoteams&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP Framework&lt;/STRONG&gt; - .NET Standard 2.0 SDK containing the classic PnP Sites Core features for SharePoint Online. More around this package from &lt;A href="https://github.com/pnp/pnpframework" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP Core SDK&lt;/STRONG&gt; - The PnP Core SDK is an SDK designed to work for Microsoft 365 with Graph API first approach. It provides a unified object model for working with SharePoint Online and Teams which is agnostic to the underlying API's being called. See more around the SDK from &lt;A href="https://aka.ms/pnp/coresdk/docs" target="_blank" rel="noopener"&gt;documentation&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP PowerShell&lt;/STRONG&gt; - PnP PowerShell is a .NET Core 3.1 / .NET Framework 4.6.1 based PowerShell Module providing over 400 cmdlets that work with Microsoft 365 environments and more specifically SharePoint Online and Microsoft Teams. See more details from &lt;A href="https://pnp.github.io/powershell/" target="_blank" rel="noopener"&gt;documentation&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reusable SharePoint Framework controls&lt;/STRONG&gt; - Reusable controls for SharePoint Framework web part and extension development. Separate projects for &lt;A href="https://pnp.github.io/sp-dev-fx-controls-react/" target="_blank" rel="noopener"&gt;React content controls&lt;/A&gt; and &lt;A href="https://github.com/pnp/sp-dev-fx-property-controls" target="_blank" rel="noopener"&gt;Property Pane controls for web parts&lt;/A&gt;. These controls are using Office UI Fabric React controls under the covers and they are SharePoint aware to increase the productivity of developers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office 365 CLI&lt;/STRONG&gt; -&amp;nbsp;Using the Office 365 CLI, you can manage your Microsoft Office 365 tenant and SharePoint Framework projects on any platform. See &lt;A href="https://pnp.github.io/office365-cli/about/release-notes/" target="_blank" rel="noopener"&gt;release notes&lt;/A&gt; for the latest updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnPJs&lt;/STRONG&gt; - PnPJs encapsulates SharePoint REST APIs and provides a fluent and easily usable interface for querying data from SharePoint sites. It's a replacement of already deprecated pnp-js-core library. See &lt;A href="https://github.com/pnp/pnpjs/blob/dev/CHANGELOG.md" target="_blank" rel="noopener"&gt;changelog&lt;/A&gt; for the&amp;nbsp;latest updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP Provisioning Engine and PnP CSOM Core&lt;/STRONG&gt; - PnP provisioning engine is part of the PnP CSOM extension. They encapsulate complex business driven operations behind easily usable API surface, which extends out-of-the-box CSOM NuGet packages. See &lt;A href="https://github.com/SharePoint/PnP-Sites-Core/blob/master/CHANGELOG.md" target="_blank" rel="noopener"&gt;changelog&lt;/A&gt; for the latest updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP PowerShell&lt;/STRONG&gt; - PnP PowerShell cmdlets are open-source complement for the SharePoint Online cmdlets. There are more than 300 different cmdlets to use and you can use them to manage tenant settings or to manipulate actual SharePoint sites. They See &lt;A href="https://github.com/SharePoint/PnP-PowerShell/blob/master/CHANGELOG.md" target="_blank" rel="noopener"&gt;changelog&lt;/A&gt; for the latest updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PnP Modern Search solution&lt;/STRONG&gt; - The PnP 'Modern Search' solution is a set of SharePoint Online modern Web Parts allowing SharePoint super users, webmasters and developers to create highly flexible and personalized search based experiences in minutes. See more details on the different supported capabilities from &lt;A href="https://aka.ms/pnp-search" target="_blank" rel="noopener"&gt;https://aka.ms/pnp-search&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Modernization tooling&lt;/STRONG&gt; -&amp;nbsp;All tools and guidance on helping you to transform you SharePoint to modern experiences from &lt;A href="http://aka.ms/sppnp-modernize" target="_blank" rel="noopener"&gt;http://aka.ms/sppnp-modernize&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Starter Kit v2&lt;/STRONG&gt; - Building modern experiences with Microsoft Teams flavors for SharePoint Online and SharePoint 2019 - reference solution in &lt;A href="https://github.com/SharePoint/sp-starter-kit" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;List formatting definitions&lt;/STRONG&gt; - Community contributed samples around the column and view formatting in &lt;A href="https://github.com/SharePoint/sp-dev-list-formatting" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Site Designs and Site Scripts&lt;/STRONG&gt; - Community contributed samples around SharePoint Site Designs and Site Scripts in &lt;A href="https://github.com/SharePoint/sp-dev-site-scripts" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DevOps tooling and scripts&amp;nbsp;&lt;/STRONG&gt;- Community contributed scripts and tooling automation around DevOps topics (CI/CD) in &lt;A href="https://github.com/SharePoint/sp-dev-build-extensions" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Teams provisioning solution&lt;/STRONG&gt; - Set of open-source Azure Functions for Microsoft Teams provisioning. See more details from &lt;A href="https://github.com/pnp/OrchestratedProvisioning" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3 id="pnp-guidance-articles"&gt;Documentation updates&lt;/H3&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Please see all the Microsoft 365 development documentation updates from the related documentation sets and repositories as listed below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft Teams platform documentation - &lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/A&gt; | &lt;A href="https://github.com/MicrosoftDocs/msteams-docs" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;SharePoint Developer documentation - &lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/A&gt; | &lt;A href="https://github.com/SharePoint/sp-dev-docs" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph documentation - &lt;A href="https://docs.microsoft.com/en-us/graph" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/A&gt; | &lt;A href="https://github.com/microsoftgraph/microsoft-graph-docs" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Office add-in documentation - &lt;A href="https://docs.microsoft.com/en-us/office/dev/add-ins/" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/A&gt; | &lt;A href="https://github.com/OfficeDev/office-js-docs-pr" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":3} --&gt;&lt;/P&gt;
&lt;H3 id="pnp-guidance-videos"&gt;Microsoft 365 Dev and Microsoft 365 Community (PnP) YouTube video channels&lt;/H3&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;You can find all Microsoft 365 related videos on our YouTube Channel at &lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt; or at &lt;A href="https://www.youtube.com/channel/UCV_6HOhwxYLXAGd-JOqKPoQ" target="_blank" rel="noopener"&gt;Microsoft 365 Dev&lt;/A&gt;. These channels contains already a significant amount of detailed training material, demo videos, and community call recordings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Here are the new Microsoft demo or guidance videos released since the last monthly summary:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=D9rGuWllDos" target="_blank" rel="noopener"&gt;Microsoft Lists integration with Power BI&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=V3NZ3b_zbY0" target="_blank" rel="noopener"&gt;SharePoint Content Type APIs in Microsoft Graph&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Swapnil Shrivastava (Microsoft) &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=sGn_Ke1ZHUk" target="_blank" rel="noopener"&gt;SharePoint Framework v1.12.1 new features&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=aQd0EZmXYmk" target="_blank" rel="noopener"&gt;Getting started with Microsoft Viva Connections Desktop&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/tpmehta" target="_blank" rel="noopener"&gt;Tejas Mehta&lt;/A&gt; (Microsoft) @tpmehta &amp;amp;&amp;nbsp;&lt;A href="https://twitter.com/PrateekDudeja4" target="_blank" rel="noopener"&gt;Prateek Dudeja&lt;/A&gt; (Microsoft) @PrateekDudeja4&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=COQ4-AlJzPw" target="_blank" rel="noopener"&gt;Viva Connections Desktop and Extensibility&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=zifXYUlp3i0" target="_blank" rel="noopener"&gt;Introduction to PnP Core SDK - Getting started in .NET 5&lt;/A&gt; - &lt;A href="https://twitter.com/O365Bert" target="_blank" rel="noopener"&gt;Bert Jansen&lt;/A&gt; (Microsoft) |&amp;nbsp;@o365bert&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=MR9dVOTKU6E" target="_blank" rel="noopener"&gt;List group header formatting options for Microsoft Lists&lt;/A&gt; - &lt;SPAN&gt;&lt;A href="https://twitter.com/naveed3" target="_blank" rel="noopener"&gt;Naveed Ahmed&lt;/A&gt; (Microsoft) | @naveed3 &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=dEPtoWBAYKk" target="_blank" rel="noopener"&gt;Best practices for data migrations to Microsoft 365&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Joshua Badach&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=dmwuqPRhpI4" target="_blank" rel="noopener"&gt;Choosing the right tools for your Microsoft 365 migration&lt;/A&gt; - &lt;A href="https://twitter.com/EricWarnke" target="_blank" rel="noopener"&gt;Eric Warnke&lt;/A&gt; (Microsoft) |&amp;nbsp;@EricWarnke&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=-qiRxrPexNI" target="_blank" rel="noopener"&gt;Getting started on deploying Viva Connections for Microsoft Teams desktop&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=IRr50w61fy0" target="_blank" rel="noopener"&gt;Your intranet is now in Microsoft Teams with Microsoft Viva Connections&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=MaG3Zz5wPhI" target="_blank" rel="noopener"&gt;Create custom apps with Power Apps&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=W6jZh2B4XEA" target="_blank" rel="noopener"&gt;Explore Microsoft Graph scenarios for JavaScript development&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/DanWahlin" target="_blank" rel="noopener"&gt;Dan Wahlin&lt;/A&gt; (Microsoft) | @danwahlin&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=awT4_rV0hhc" target="_blank" rel="noopener"&gt;Learn how to develop apps with the Microsoft Graph Toolkit!&lt;/A&gt;&amp;nbsp;&lt;SPAN&gt;-&amp;nbsp;&lt;A href="https://twitter.com/aycabs" target="_blank" rel="noopener"&gt;Ayca Bas&lt;/A&gt; (Microsoft) |&amp;nbsp;@aycabs&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=nj9i2bwt7Wg" target="_blank" rel="noopener"&gt;Outlook add-in for creating templated signatures programmatically with events&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/davidchesnut" target="_blank" rel="noopener"&gt;David Chesnut&lt;/A&gt; (Microsoft)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=bxYd3DCEp3k" target="_blank" rel="noopener"&gt;Updates to Office Scripts and TICTAC UFO customer demonstration&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Sudhi Ramamurthy (Microsoft)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=dC64KRZ9nwo" target="_blank" rel="noopener"&gt;Support tickets on Microsoft 365 around Office add-ins&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Richard Tylor (Microsoft)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=wDVVbiaNbjk" target="_blank" rel="noopener"&gt;Take a lap around the Company Communicator app&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;Mykhailo Sydorchuk (Microsoft)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=K2KfcSQ_ed8" target="_blank" rel="noopener"&gt;Streamline your work with Microsoft Graph | Tips &amp;amp; Tricks #1&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) | @Bob1German&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=iNytzRlYsnQ" target="_blank" rel="noopener"&gt;Microsoft Graph Toolkit can do WHAT? | Tips &amp;amp; Tricks #2&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/aycabs" target="_blank" rel="noopener"&gt;Ayca Bas&lt;/A&gt; (Microsoft) |&amp;nbsp;@aycabs&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=tSf9wHxQf9E" target="_blank" rel="noopener"&gt;Build Teams apps with Power Apps in Dataverse for Teams | Tips &amp;amp; Tricks #3&lt;/A&gt; - &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=f_3wc4UgqTI" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Start calling the Microsoft Graph API in under 5 minutes! | Tips &amp;amp; Tricks #4&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/DanWahlin" target="_blank" rel="noopener"&gt;Dan Wahlin&lt;/A&gt; (Microsoft) | @danwahlin&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=DhhpJ1UjbJ0" target="_blank" rel="noopener"&gt;Set up your new Microsoft 365 Developer subscription | Tips &amp;amp; Tricks #5&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;-&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) | @Bob1German&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=6jDjMKs4TV4" target="_blank" rel="noopener"&gt;Create a chatbot in Microsoft Teams with Power Virtual Agents | Tips &amp;amp; Tricks #6&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Community demos as following:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=vAjfapf5aBM" target="_blank" rel="noopener"&gt;Advanced Page Properties web part solution&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/homol" target="_blank" rel="noopener"&gt;Mike Homol&lt;/A&gt; (ThreeWill) | @homol&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=e36qPG9x0C0" target="_blank" rel="noopener"&gt;Running the CLI for Microsoft 365 in Azure Container Instances orchestrated by Logic Apps&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/appieschot" target="_blank" rel="noopener"&gt;Albert-Jan Schot&lt;/A&gt; (Portiva) | @appieschot &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=GNlPXr_jgKA" target="_blank" rel="noopener"&gt;Make your Power Apps sessions persistent when switching Microsoft Teams tabs!&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/thepoweraddict" target="_blank" rel="noopener"&gt;Hardit Bhatia&lt;/A&gt; (Hitachi Solutions America, Ltd.) | &lt;LI-USER uid="965791"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=jIvryvxfXmM" target="_blank" rel="noopener"&gt;Surfacing your existing solution in Microsoft Teams&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;Rick Van Rousselt&lt;/A&gt; (Advantive) | @RickVanRousselt&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=k7LXbC49VxQ" target="_blank" rel="noopener"&gt;Make your Power Apps user experience awesome with Gestalt design principles&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/AzureRory" target="_blank" rel="noopener"&gt;Rory Neary&lt;/A&gt; | &lt;LI-USER uid="449976"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=bxF2LWZcUR8" target="_blank" rel="noopener"&gt;Build your first Microsoft Teams Bot&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/stephanbisser" target="_blank" rel="noopener"&gt;Stephan Bisser&lt;/A&gt; (Solvion) | @stephanbisser&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=phzXxSVhYeA" target="_blank" rel="noopener"&gt;Live London Underground Line Status Bot in Microsoft Dataverse for Teams&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/LeonArmston" target="_blank" rel="noopener"&gt;Leon Armston&lt;/A&gt; (Intelogy) | &lt;LI-USER uid="855621"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=4DjicVdmZHY" target="_blank" rel="noopener"&gt;Microsoft Lists formatting with header and footer settings&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;Chris Kent&lt;/A&gt; (DMI) | @theChrisKent&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=gDcT7yu6UmU" target="_blank" rel="noopener"&gt;Microsoft Teams Meeting Questionnaire App with SharePoint Framework&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/NanddeepNachan" target="_blank" rel="noopener"&gt;Nanddeep Nachan&lt;/A&gt; | &lt;LI-USER uid="659867"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=aNvvFz8Ab5Y" target="_blank" rel="noopener"&gt;Building an advanced SPFx Image Editor web part&lt;/A&gt; -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/petkir_at" target="_blank" rel="noopener"&gt;Peter Paul Kirschner&lt;/A&gt; (cubido) | &lt;LI-USER uid="1003898"&gt;&lt;/LI-USER&gt;_at&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Tu4_s3k7Lhc" target="_blank" rel="noopener"&gt;Customer scenario - Microsoft Teams integration with external systems&lt;/A&gt; - Kathy (Qinqyu) Xu (Pfizer) &amp;amp; &lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@paolopia&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=kf_VMt_Eh0M" target="_blank" rel="noopener"&gt;Using Single Sign-On (SSO) with Office Add-ins&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;Andrew Connell&lt;/A&gt; (Voitanos)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=pJwtUjv3G_o" target="_blank" rel="noopener"&gt;Microsoft Teams – Authentication and Single Sign-on&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;Andrew Connell&lt;/A&gt; (Voitanos)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=G33bN7cl2QU" target="_blank" rel="noopener"&gt;Microsoft Teams – Use the teamwork Microsoft Graph endpoint&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;Andrew Connell&lt;/A&gt; (Voitanos)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OVYI-St_CBiFfuL4CZbBpkC" target="_blank" rel="noopener"&gt;PnP Weekly sessions&lt;/A&gt; - Community visitors and latest articles from Microsoft and community on Microsoft 365 topics.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=APGShP4J1so" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 125&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/SandyU" target="_blank" rel="noopener"&gt;Sandy Ussia&lt;/A&gt;&amp;nbsp;(Lightning Tools)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=TXqSa4F9uzU" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 124&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/EEMancini" target="_blank" rel="noopener"&gt;Emily Mancini&lt;/A&gt;&amp;nbsp;(Sympraxis Consulting)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=uQ5CQODxpM0" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 123&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt;&amp;nbsp;(Microsoft)&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Pz9OpquGDfU&amp;amp;list=PLR9nK3mnD-OVYI-St_CBiFfuL4CZbBpkC&amp;amp;index=1" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 122&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/mrackley" target="_blank" rel="noopener"&gt;Mark Rackley&lt;/A&gt; (PAIT Group)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=x9N6PfGN5QI&amp;amp;list=PLR9nK3mnD-OVYI-St_CBiFfuL4CZbBpkC&amp;amp;index=2" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Weekly - Episode 121&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/NikCharlebois" target="_blank" rel="noopener"&gt;Nik Charlebois&lt;/A&gt; (Microsoft)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2 id="key-contributors-for-the-september-2015-release"&gt;Key contributors to the May 2021 update&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Here’s the list of active contributors (in alphabetical order) since last release details in GitHub repositories or community channels. PnP is really about building tooling and knowledge together with the community for the community, so your contributions are highly valued across the Microsoft 365 customers, partners and obviously also at Microsoft.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Thank you for your assistance and contributions on behalf of the community. You are truly making a difference!&lt;/STRONG&gt; If we missed someone, please let us know.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Adam &lt;SPAN&gt;Wójcik&amp;nbsp;&lt;/SPAN&gt;-&amp;nbsp;&lt;A href="https://github.com/Adam-it" target="_blank" rel="noopener"&gt;Adam-it&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Agustin Del Vento (Change Champions Consulting Inc.)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Albert-Jan Schot (Portiva) - &lt;A href="https://twitter.com/appieschot" target="_blank" rel="noopener"&gt;@appieschot&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Alberto Gutierrez (Minsait) -&amp;nbsp;&lt;A href="https://twitter.com/albertogperez" target="_blank" rel="noopener"&gt;@albertogperez&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Alex Terentiev (SharePointalist) - &lt;A href="https://twitter.com/alexaterentiev" target="_blank" rel="noopener"&gt;@alexaterentiev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Alex Moumne (Fluidmaster) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/afhmoumne" target="_blank" rel="noopener"&gt;afhmoumne&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Alison Collins (Coupled Technology) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/ReactIntern" target="_blank" rel="noopener"&gt;ReactIntern&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Anders Mörtsell (Sogeti) -&amp;nbsp;&lt;A href="https://twitter.com/andersmortsell" target="_blank" rel="noopener"&gt;@andersmortsell&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;André Lage (Datalynx AG) -&amp;nbsp;&lt;A href="https://twitter.com/aaclage" target="_blank" rel="noopener"&gt;@aaclage&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Andrew Benson (InElec) - &lt;A href="https://twitter.com/ViewPorter" target="_blank" rel="noopener"&gt;@ViewPorter&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Andrew Burns (AmSty) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/SharePointRox" target="_blank" rel="noopener"&gt;@SharePointRox&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Andrew Connell (Voitanos) - &lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;@andrewconnell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Andrew Koltyakov (ARVO Systems) - &lt;A href="https://twitter.com/andrewkoltyakov" target="_blank" rel="noopener"&gt;@andrewkoltyakov&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Andy Boylan (AdEPT Technology Group) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://www.linkedin.com/in/apboylan/" target="_blank" rel="noopener"&gt;apboylan&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Anoop Tatti (Content+Cloud) -&amp;nbsp;&lt;A href="https://twitter.com/anooptells" target="_blank" rel="noopener"&gt;@anooptells&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Ari Gunawan (DevStack) -&amp;nbsp;&lt;A href="https://twitter.com/arigunawan3023" target="_blank" rel="noopener"&gt;@arigunawan3023&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Asha Prajapati (T-systems India Pvt Ltd) - &lt;SPAN&gt;&lt;A href="https://github.com/Ashaprjpt0707" target="_blank" rel="noopener"&gt;Ashaprjpt0707&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Beau Cameron (Aerie Consulting) - &lt;A href="https://twitter.com/Beau__Cameron" target="_blank" rel="noopener"&gt;@Beau__Cameron&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Bianca Wilkinson -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/bianca-git" target="_blank" rel="noopener"&gt;bianca-git&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Bruce Cotter (Business Journey Consulting, LLC) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/businessjourneyconsulting" target="_blank" rel="noopener"&gt;businessjourneyconsulting&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Bruce Lane -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/brucelane" target="_blank" rel="noopener"&gt;brucelane&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Carl Cookson (Avanade) -&amp;nbsp;&lt;A href="https://twitter.com/LinkeD365" target="_blank" rel="noopener"&gt;@LinkeD365&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Carmen Ysewijn&amp;nbsp;(Qubix) -&amp;nbsp;&lt;A href="https://twitter.com/CarmenYsewijn" target="_blank" rel="noopener"&gt;@CarmenYsewijn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Chandani Prajapati - &lt;A href="https://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;@Chandani_SPD&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Charles Ndiaye (Netexio) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/manusquall" target="_blank" rel="noopener"&gt;@manusquall&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;chimenjoku -&amp;nbsp;&lt;A href="https://github.com/chimenjoku" target="_blank" rel="noopener"&gt;chimenjoku&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Chris Kent (DMI) - &lt;A href="https://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;@theChrisKent&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Chris Revell (Consult 365 IT Solutions) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/consult_365" target="_blank" rel="noopener"&gt;@consult_365&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Christian Zuellig (Monday Coffee) – &lt;A href="https://twitter.com/ChristianZuell1" target="_blank" rel="noopener"&gt;@ChristianZuell1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Christine Green (EBSCO Information Services) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/cacurtica" target="_blank" rel="noopener"&gt;@cacurtica&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;codepwner -&amp;nbsp;&lt;A href="https://github.com/codepwner" target="_blank" rel="noopener"&gt;codepwner&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Dan Toft (Evobis) -&amp;nbsp;&lt;A href="https://twitter.com/tanddant" target="_blank" rel="noopener"&gt;@tanddant&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Daniel Westerdale (Westerdale Solutions Ltd) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/westerdaled" target="_blank" rel="noopener"&gt;@westerdaled&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Damien Bird (Aberdeen City Council) -&amp;nbsp;&lt;A href="https://twitter.com/DamoBird365" target="_blank" rel="noopener"&gt;@DamoBird365&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;David Warner II (Catapult) - &lt;A href="https://twitter.com/DavidWarnerII" target="_blank" rel="noopener"&gt;@DavidWarnerII&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Django Lohn (InSpark) -&amp;nbsp;&lt;A href="https://twitter.com/LohnDjango" target="_blank" rel="noopener"&gt;@LohnDjango&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Denis Molodtsov (CleverPoint Consulting) -&amp;nbsp;&lt;A href="https://twitter.com/Zerg00s" target="_blank" rel="noopener"&gt;@Zerg00s&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Derek Cash-Peterson (Sympraxis Consulting) -&amp;nbsp;&lt;A href="https://twitter.com/spdcp" target="_blank" rel="noopener"&gt;@spdcp&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Elio Struyf (Struyf Consulting) - &lt;A href="https://twitter.com/eliostruyf" target="_blank" rel="noopener"&gt;@eliostruyf&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Ellery July -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/techrealist" target="_blank" rel="noopener"&gt;@techrealist&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Emily Mancini (Sympraxis Consulting) - &lt;A href="https://twitter.com/EEMancini" target="_blank" rel="noopener"&gt;@EEMancini&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Eric Legault (Eric Legault Consulting Inc.) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/elegault" target="_blank" rel="noopener"&gt;@elegault&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Eric Overfield (PixelMill) - &lt;A href="https://twitter.com/EricOverfield" target="_blank" rel="noopener"&gt;@EricOverfield&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Erwin van Hunen (Valo Intranet) - &lt;A href="https://twitter.com/erwinvanhunen" target="_blank" rel="noopener"&gt;@erwinvanhunen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Frank Cornu (aequos) - &lt;A href="https://twitter.com/FranckCornu" target="_blank" rel="noopener"&gt;@FranckCornu&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Ganesh Sanap - &lt;A href="https://twitter.com/ganeshsanap20" target="_blank" rel="noopener"&gt;@ganeshsanap20&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Garry Trinder (CPS) - &lt;A href="https://twitter.com/garrytrinder" target="_blank" rel="noopener"&gt;@garrytrinder&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Gautam Sheth (Valo) - &lt;A href="https://twitter.com/gautamdsheth" target="_blank" rel="noopener"&gt;@gautamdsheth&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Geetha Sivasaiam (&lt;SPAN&gt;Artis Consulting&lt;/SPAN&gt;) -&amp;nbsp;&lt;A href="https://twitter.com/GSiVed" target="_blank" rel="noopener"&gt;@GSiVed&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Gissur Simonarson (Fujitsu) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/gissisim" target="_blank" rel="noopener"&gt;@gissisim&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Giacomo Pozzoni (DQC Sverige Ab) - &lt;A href="https://twitter.com/PozzoniGiacomo" target="_blank" rel="noopener"&gt;@PozzoniGiacomo&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Haiye Wang -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/haiyewang0717" target="_blank" rel="noopener"&gt;haiyewang0717&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Hardit Bhatia (Hitachi Solutions America, Ltd.) | &lt;LI-USER uid="965791"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Hamid Malik (Smart-IS) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/HamidHMalik" target="_blank" rel="noopener"&gt;@HamidHMalik&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Harold Wolfinger&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Heidi Connor -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/bryllyg" target="_blank" rel="noopener"&gt;bryllyg&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Henrik Yllemo (Ylltec Sweden AB) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/yllemo" target="_blank" rel="noopener"&gt;@yllemo&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Henry Morales&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Hiroaki Nagao - &lt;A href="https://twitter.com/mofumofu_dance" target="_blank" rel="noopener"&gt;@mofumofu_dance&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Hubert Lam (NSW Department of Education) -&amp;nbsp;&lt;A href="https://twitter.com/z3019494" target="_blank" rel="noopener"&gt;@z3019494&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Jarbas Horst (Valo) - &lt;A href="https://twitter.com/devjhorst" target="_blank" rel="noopener"&gt;@devjhorst&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Janeen Jackson -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/ajhodgejackson" target="_blank" rel="noopener"&gt;ajhodgejackson&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Jasper Voskuilen -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/jaspervoskuilen" target="_blank" rel="noopener"&gt;@jaspervoskuilen&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Jennifer McGee (Wood plc)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Jens Otto Hatlevold (Bouvet) -&amp;nbsp;&lt;A href="https://github.com/jensotto" target="_blank" rel="noopener"&gt;jensotto&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;João Mendes - &lt;A href="https://twitter.com/joaojmendes" target="_blank" rel="noopener"&gt;@joaojmendes&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Joel Rodrigues (Storm Technology) - &lt;A href="https://twitter.com/JoelFMRodrigues" target="_blank" rel="noopener"&gt;@JoelFMRodrigues&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;John Kelly (Domino Printing Sciences) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/fairgold" target="_blank" rel="noopener"&gt;@fairgold&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;John O'Brien (Microsoft Canada) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/obrien-j" target="_blank" rel="noopener"&gt;obrien-j&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Jonathan Cooper (First Horizon) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/jdcooper901" target="_blank" rel="noopener"&gt;jdcooper901&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Joy Muehlenbein (Edwards Lifesciences) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/huh_larious" target="_blank" rel="noopener"&gt;@huh_larious&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Julie Turner (Sympraxis Consulting) - &lt;A href="https://twitter.com/jfj1997" target="_blank" rel="noopener"&gt;@jfj1997&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Kanakarajulu Thota (Atos GITSS) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/KanakarajuNaidu" target="_blank" rel="noopener"&gt;@KanakarajuNaidu&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Kathleen Boilek (Alaka’Ina Foundation) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/kaboilek" target="_blank" rel="noopener"&gt;@kaboilek&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Kathy (Qinqyu) Xu (Pfizer)&lt;/LI&gt;
&lt;LI&gt;Kerry Lambert (NI) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/kazoogal23" target="_blank" rel="noopener"&gt;@kazoogal23&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Keval Solanki -&amp;nbsp;&lt;A href="https://twitter.com/keval_solanki" target="_blank" rel="noopener"&gt;@keval_solanki&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;koruneko -&amp;nbsp;&lt;A href="https://github.com/koruneko" target="_blank" rel="noopener"&gt;koruneko&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Krzysztof Mikołajec (Krzysztof Mikolajec Consulting, Sii Pl) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/krzymiko" target="_blank" rel="noopener"&gt;@krzymiko&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Laura Graham-Brown (AIS) -&amp;nbsp;&lt;A href="https://twitter.com/Laura_GB" target="_blank" rel="noopener"&gt;@Laura_GB&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Laura Kokkarinen (Sulava) - &lt;A href="https://twitter.com/LauraKokkarinen" target="_blank" rel="noopener"&gt;@LauraKokkarinen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Lee Ford (Symity Ltd) -&amp;nbsp;&lt;A href="https://twitter.com/lee_ford" target="_blank" rel="noopener"&gt;@lee_ford&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Leon Armston (Intelogy Ltd) - &lt;A href="https://twitter.com/LeonArmston" target="_blank" rel="noopener"&gt;@LeonArmston&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Liam Cleary&amp;nbsp;(SharePlicity) -&amp;nbsp;&lt;A href="https://twitter.com/helloitsliam" target="_blank" rel="noopener"&gt;@helloitsliam&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Luis Mañes (ClearPeople) - &lt;A href="https://twitter.com/luismanez" target="_blank" rel="noopener"&gt;@luismanez&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Luis Renteria -&amp;nbsp;&lt;A href="https://github.com/TheSharePointProfessional" target="_blank" rel="noopener"&gt;TheSharePointProfessional&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Luise Freese (Luise Freese M365 Princess) - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;@LuiseFreese&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Lukas Jung -&amp;nbsp;&lt;A href="https://github.com/lukju" target="_blank" rel="noopener"&gt;lukju&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Luke Pfaffinger (Prime Group)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Maarten van Stam (Deloitte Nederland) -&amp;nbsp;&lt;A href="https://twitter.com/aafvstam" target="_blank" rel="noopener"&gt;@aafvstam&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Manoj Kumar Mittal (Mindtree) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/Manojmcan" target="_blank" rel="noopener"&gt;@Manojmcan&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Marc D Anderson (Sympraxis Consulting) - &lt;A href="https://twitter.com/sympmarc" target="_blank" rel="noopener"&gt;@sympmarc&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Mark Rackley (PAIT Group) -&amp;nbsp;&lt;A href="https://twitter.com/mrackley" target="_blank" rel="noopener"&gt;@mrackley&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Matthew Devaney (Hitachi Solutions) -&amp;nbsp;&lt;A href="https://twitter.com/mattbdevaney" target="_blank" rel="noopener"&gt;@mattbdevaney&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Matt Tracy (US Air Force)&lt;/LI&gt;
&lt;LI&gt;Mike Homol (ThreeWill) -&amp;nbsp;&lt;A href="https://twitter.com/homol" target="_blank" rel="noopener"&gt;@homol&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Michael Fenech (Atrium Hospitality) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/SPHateMe" target="_blank" rel="noopener"&gt;SPHateMe&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Michael Roth (IT-P GmbH) -&amp;nbsp;&lt;A href="https://twitter.com/MichaelRoth42" target="_blank" rel="noopener"&gt;@MichaelRoth42&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Michiel Hamers (Ordina MTech) -&amp;nbsp;&lt;A href="https://twitter.com/michielhamers" target="_blank" rel="noopener"&gt;@michielhamers&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Michel Mendes (Storm Technology) -&amp;nbsp;&lt;A href="https://twitter.com/michelcarlo" target="_blank" rel="noopener"&gt;@michelcarlo&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Mike -&amp;nbsp;&lt;A href="https://github.com/diver7" target="_blank" rel="noopener"&gt;diver7&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Mike Duffy (Boardwalk Pipelines) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/mike_duffy" target="_blank" rel="noopener"&gt;@mike_duffy&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Mike Ruhl (Williams Companies) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/ruhlma" target="_blank" rel="noopener"&gt;@ruhlma&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Mohamed Derhalli (BDO Canada) - &lt;A href="https://github.com/derhallim" target="_blank" rel="noopener"&gt;derhallim&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Nabil Cherchali (OpenText) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/ncherchali" target="_blank" rel="noopener"&gt;@ncherchali&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Nanddeep Nachan – &lt;A href="https://twitter.com/NanddeepNachan" target="_blank" rel="noopener"&gt;@NanddeepNachan&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Naveed Mohammad (Cognizant) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/naveed243" target="_blank" rel="noopener"&gt;naveed243&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Neil Sreenan (HKS Inc.) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/nsreenanhks" target="_blank" rel="noopener"&gt;@nsreenanhks&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Nick Brown (Cardiff University) -&amp;nbsp;&lt;A href="https://twitter.com/techienickb" target="_blank" rel="noopener"&gt;@techienickb&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Nikki Chapple (NTT Cloud Communications) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/chapplenikki" target="_blank" rel="noopener"&gt;@chapplenikki&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Nitin Jain (First Horizon) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/nitincomplete" target="_blank" rel="noopener"&gt;@nitincomplete&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Phil Harding -&amp;nbsp;&lt;A href="https://github.com/phillipharding" target="_blank" rel="noopener"&gt;phillipharding&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Paolo Pialorsi (PiaSys.com) - &lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;@PaoloPia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Patrik Hellgren (Sherpas Group) - &lt;A href="https://twitter.com/patrikhellgren" target="_blank" rel="noopener"&gt;@patrikhellgren&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Patrick Lamber (Expertsinside AG) - &lt;A href="https://twitter.com/patricklamber" target="_blank" rel="noopener"&gt;@patricklamber&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Paul Bullock (CaPa Creative Ltd) - &lt;A href="https://twitter.com/pkbullock" target="_blank" rel="noopener"&gt;@pkbullock&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Paul Schaeflein (AddIn365) - &lt;A href="https://twitter.com/paulschaeflein" target="_blank" rel="noopener"&gt;@paulschaeflein&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Peter Guhr -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/pguhr" target="_blank" rel="noopener"&gt;pguhr&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Peter Paul Kirschner (cubido business solutions GmbH) -&amp;nbsp;&lt;A class="Link--primary " href="https://twitter.com/petkir_at" target="_blank" rel="me nofollow noopener"&gt;@petkir_at&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Phil Broadbery (PKF) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/peb71b" target="_blank" rel="noopener"&gt;@peb71b&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;P3N -&amp;nbsp;&lt;A href="https://github.com/P3N-101" target="_blank" rel="noopener"&gt;P3N&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Ralph Rivas (Sogeti) -&amp;nbsp;&lt;A href="https://twitter.com/bigpix2000" target="_blank" rel="noopener"&gt;@bigpix2000&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Ravi Kulkarni (Cognizant) -&amp;nbsp;&lt;A href="https://twitter.com/RaviKul16a87" target="_blank" rel="noopener"&gt;@RaviKul16a87&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Remy Blok&amp;nbsp;(Prodware) -&amp;nbsp;&lt;A href="https://github.com/remyblok" target="_blank" rel="noopener"&gt;remyblok&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Reidar Husmo (PointTaken) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/reidarhusmo" target="_blank" rel="noopener"&gt;reidarhusmo&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Rick Van Rousselt (Advantive) | &lt;A href="https://twitter.com/RickVanRousselt" target="_blank" rel="noopener"&gt;@RickVanRousselt&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Rocio Holub (DAI)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Rolands Strakis (Atea Global Services SIA) -&amp;nbsp;&lt;A href="https://github.com/wonderplayer" target="_blank" rel="noopener"&gt;wonderplayer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Rory Neary -&amp;nbsp;&lt;LI-USER uid="449976"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Ross Allan (PKF LittleJohn)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Sam Collins (Coupled Technology) -&amp;nbsp;&lt;A href="https://twitter.com/samc148" target="_blank" rel="noopener"&gt;@samc148&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Sandeep Vootoori -&amp;nbsp;&lt;A href="https://github.com/sandeepvootoori" target="_blank" rel="noopener"&gt;sandeepvootoori&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Sandy Ussia&amp;nbsp;(Lightning Tools) -&amp;nbsp;&lt;A href="https://twitter.com/SandyU" target="_blank" rel="noopener"&gt;@SandyU&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sebastian Nagy -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/snagy22000" target="_blank" rel="noopener"&gt;snagy22000&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sébastien Noel (ENGIE)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Sekhar Reddy Bhumireddy (Krish Services Group, Inc) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/bhumi-github" target="_blank" rel="noopener"&gt;bhumi-github&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Sergei Sergeev (Mastaq) - &lt;A href="https://twitter.com/sergeev_srg" target="_blank" rel="noopener"&gt;@sergeev_srg&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Shiva Bezwada (JCS Solutions LLC) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/Texaport" target="_blank" rel="noopener"&gt;@Texaport&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Simon Doy (iThink 365) -&amp;nbsp;&amp;nbsp;&lt;A href="https://twitter.com/simondoy" target="_blank" rel="noopener"&gt;@simondoy&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Simon Hudson (Cloud2) -&amp;nbsp;&lt;A href="https://twitter.com/simonjhudson" target="_blank" rel="noopener"&gt;@simonjhudson&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Smita Nachan - &lt;A href="https://twitter.com/smitanachan" target="_blank" rel="noopener"&gt;@smitanachan&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Spencer Harbar (Triumph Media Limited) - &lt;A href="https://twitter.com/harbars" target="_blank" rel="noopener"&gt;@harbars&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Stefan Bauer (n8d) - &lt;A href="https://twitter.com/StfBauer" target="_blank" rel="noopener"&gt;@StfBauer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Stephan Bisser (Solvion) -&amp;nbsp;&lt;A href="https://twitter.com/stephanbisser" target="_self"&gt;@stephanbisser&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Steve Beaugé (Solutions pour SharePoint) -&amp;nbsp;&lt;A href="https://github.com/stevebeauge" target="_blank" rel="noopener"&gt;stevebeauge&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Sudharsan Kesavanarayanan (&lt;SPAN&gt;NTT Digital Business Solutions&lt;/SPAN&gt;) -&amp;nbsp;&lt;A class="Link--primary " href="https://twitter.com/sudharsank" target="_blank" rel="me nofollow noopener"&gt;@sudharsank&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Susan McClements (1st Source Bank) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/smcclements" target="_blank" rel="noopener"&gt;@smcclements&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Tetsuya Kawahara - &lt;A href="https://twitter.com/techsn_k" target="_blank" rel="noopener"&gt;@techsn_k&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Theresa Lubelski -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/SharePointMadam" target="_blank" rel="noopener"&gt;@SharePointMadam&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;thomassmart -&amp;nbsp;&lt;A href="https://github.com/thomassmart" target="_blank" rel="noopener"&gt;thomassmart&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Thomy Gölles (Solvion) | &lt;A href="https://twitter.com/thomyg" target="_blank" rel="noopener"&gt;@thomyg&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Todd Baginski (Canviz) - &lt;A href="https://twitter.com/toddbaginski" target="_blank" rel="noopener"&gt;@toddbaginski&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tristian O'Brien -&amp;nbsp;&lt;A href="https://github.com/tristian2" target="_blank" rel="noopener"&gt;tristian2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Troy Meacham (US Army)&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Wictor Wilen (Avanade) - &lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener"&gt;@wictor&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Will Holland&amp;nbsp; (ThreeWill) -&amp;nbsp;@_WCHolland&lt;/LI&gt;
&lt;LI&gt;Velin Georgiev (Pramerica) – &lt;A href="https://twitter.com/velingeorgiev" target="_blank" rel="noopener"&gt;@velingeorgiev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Veronique Lengelle (CPS) - &lt;A href="https://twitter.com/veronicageek" target="_blank" rel="noopener"&gt;@veronicageek&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Vesa Nopanen (Sulava) -&amp;nbsp;&lt;A href="https://twitter.com/vesanopanen" target="_blank" rel="noopener"&gt;@vesanopanen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Yannick Plenevaux (PVX Solutions) - &lt;A href="https://twitter.com/yp_code" target="_blank" rel="noopener"&gt;@yp_code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Yannick Reekmans (Qubix) - &lt;A href="https://twitter.com/YannickReekmans" target="_blank" rel="noopener"&gt;@YannickReekmans&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Yves Habersaat&amp;nbsp;&lt;/SPAN&gt;(Sword Group) -&amp;nbsp;&lt;A style="background-color: #ffffff;" href="https://twitter.com/yhabersaat" target="_blank" rel="noopener"&gt;@yhabersaat&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Companies:&lt;/STRONG&gt;&amp;nbsp;Here's the companies, which provided support the community initiative for this month by allowing their employees working for the benefit of others in the community. There were also people who contributed from other companies during last month, but we did not get their logos and approval to show them in time for these communications. If you still want your logo for this month's release, please let us know and share the logo with us. Thx.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="may-2021-compaies.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279797i53A9751FE1E53255/image-size/large?v=v2&amp;amp;px=999" role="button" title="may-2021-compaies.png" alt="may-2021-compaies.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft people:&lt;/STRONG&gt;&amp;nbsp;Here’s the list of Microsoft people who have been closely involved with the PnP work during last month.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Antons Mislevics -&amp;nbsp;&lt;A href="https://github.com/antonsmislevics" target="_blank" rel="noopener"&gt;antonsmislevics&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Allen Snow - &lt;A href="https://twitter.com/asnow003" target="_blank" rel="noopener"&gt;@asnow003&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;April Dunnam - &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;@aprildunnam&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Amrutha Srinivasan |&amp;nbsp;&lt;A href="https://twitter.com/amruthasrin" target="_blank" rel="noopener"&gt;@amruthasrin&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Ayca Bas - &lt;A href="https://twitter.com/aycabs" target="_blank" rel="noopener"&gt;@aycabs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Bert Jansen -&amp;nbsp;&lt;A href="https://twitter.com/O365Bert" target="_blank" rel="noopener"&gt;@O365Bert&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Beth Pan - &lt;A href="https://twitter.com/beth_panx" target="_blank" rel="noopener"&gt;@beth_panx&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Bob German - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;@Bob1German&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Charles Sterling - &lt;A href="https://twitter.com/chass" target="_blank" rel="noopener"&gt;@chass&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Dan Wahlin - &lt;A href="https://twitter.com/DanWahlin" target="_blank" rel="noopener"&gt;@DanWahlin&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;David Chesnut - &lt;A href="https://github.com/davidchesnut" target="_blank" rel="noopener"&gt;davidchesnut&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Elise Yang - &lt;A href="https://twitter.com/elisenyang" target="_blank" rel="noopener"&gt;@elisenyang&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Hema Sandhu -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://github.com/hemab-toronto" target="_blank" rel="noopener"&gt;hemab-toronto&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Hugo Bernier - &lt;A href="https://twitter.com/bernierh" target="_blank" rel="noopener"&gt;bernierh&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Jason Johnston - &lt;A href="https://github.com/jasonjoh" target="_blank" rel="noopener"&gt;jasonjoh&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Jeremy Kelley - &lt;A href="https://twitter.com/Fizzlenik" target="_blank" rel="noopener"&gt;@Fizzlenik&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Joanne Hendrickson - &lt;A href="https://github.com/JoanneHendrickson" target="_blank" rel="noopener"&gt;JoanneHendrickson&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;John Nguyen - &lt;A href="https://github.com/johnguy0" target="_blank" rel="noopener"&gt;johnguy0&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;John Sudds - &lt;A href="https://github.com/jsuddsjr" target="_blank" rel="noopener"&gt;jsuddsjr&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Karthig Balendran - &lt;A href="https://twitter.com/KarthigBalendr1" target="_blank" rel="noopener"&gt;@KarthigBalendr1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Kevin Coughlin - &lt;A href="https://twitter.com/kevintcoughlin" target="_blank" rel="noopener"&gt;@kevintcoughlin&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Kinga -&amp;nbsp;&lt;A href="https://github.com/kkazala" target="_blank" rel="noopener"&gt;kkazala&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Koen Zomers - &lt;A href="https://twitter.com/koenzomers" target="_blank" rel="noopener"&gt;@koenzomers&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Holland Kaviani -&amp;nbsp;&lt;A href="https://github.com/Holland-ODSP" target="_blank" rel="noopener"&gt;Holland-ODSP&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Laura Graham - &lt;A href="https://github.com/Lauragra" target="_blank" rel="noopener"&gt;Lauragra&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Linda Lu Cannon - &lt;A href="https://github.com/lindalu-MSFT" target="_blank" rel="noopener"&gt;lindalu-MSFT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Loki Meyburg - &lt;A href="https://twitter.com/lokimeyburg" target="_blank" rel="noopener"&gt;@lokimeyburg&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Luca Bandinelli -&amp;nbsp;&lt;A href="https://github.com/lucaband" target="_blank" rel="noopener"&gt;lucaband&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Luis E. Torres -&amp;nbsp;&lt;A href="https://github.com/luisenriquetorres" target="_blank" rel="noopener"&gt;luisenriquetorres&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Matt Wolodarsky -&amp;nbsp;&lt;A href="https://twitter.com/mwolodarsky" target="_blank" rel="noopener"&gt;@mwolodarsky&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Melissa Torres -&amp;nbsp;&lt;A href="https://twitter.com/Meltorac" target="_blank" rel="noopener"&gt;@Meltorac&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Mikael Svenson -&amp;nbsp;&lt;A href="https://twitter.com/mikaelsvenson" target="_blank" rel="noopener"&gt;@mikaelsvenson&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Nik Charlebois - &lt;A href="https://twitter.com/NikCharlebois" target="_blank" rel="noopener"&gt;@NikCharlebois&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Nicolas Vogt - &lt;A href="https://github.com/vogtn" target="_blank" rel="noopener"&gt;vogtn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Nikola Metulev - &lt;A href="https://twitter.com/metulev" target="_blank" rel="noopener"&gt;@metulev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Pam Green (Microsoft) - &lt;A href="https://twitter.com/contextuallib" target="_blank" rel="noopener"&gt;@contextuallib&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Pat Miller -&amp;nbsp;&lt;A href="https://twitter.com/PatMill_MSFT" target="_blank" rel="noopener"&gt;@PatMill_MSFT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Patrick Rodgers -&amp;nbsp;&lt;A href="https://twitter.com/mediocrebowler" target="_blank" rel="noopener"&gt;@mediocrebowler&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Philippe Signoret -&amp;nbsp;&lt;A href="https://twitter.com/psignoret" target="_blank" rel="noopener"&gt;@psignoret&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Rabia Williams - &lt;A href="https://twitter.com/williamsrabia" target="_blank" rel="noopener"&gt;@williamsrabia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Rob Garrett -&amp;nbsp;&lt;A href="https://github.com/robgarrett" target="_blank" rel="noopener"&gt;robgarrett&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Saikrishna-MSFT - &lt;A href="https://github.com/Saikrishna-MSFT" target="_blank" rel="noopener"&gt;Saikrishna-MSFT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Shane Weaver -&amp;nbsp;&lt;A href="https://github.com/shweaver-MSFT" target="_blank" rel="noopener"&gt;shweaver-MSFT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Sébastien Levert - &lt;A href="https://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;@sebastienlevert&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Steven Jia - &lt;A href="https://github.com/Steven-Jia" target="_blank" rel="noopener"&gt;Steven-Jia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Tim Mayo (Microsoft) -&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://twitter.com/timmayo" target="_blank" rel="noopener"&gt;@timmayo&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Tomomi Imura - &lt;A href="https://twitter.com/girlie_mac" target="_blank" rel="noopener"&gt;@girlie_mac&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Vesa Juvonen -&amp;nbsp;&lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;@vesajuvonen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Waldek Mastykarz - &lt;A href="https://twitter.com/waldekm" target="_blank" rel="noopener"&gt;@waldekm&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Vincent Biret -&amp;nbsp;&lt;A href="https://twitter.com/baywet" target="_blank" rel="noopener"&gt;@baywet&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2&gt;PnP Team&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;PnP Team manages the PnP community work in the GitHub and also coordinates different open-source projects around Microsoft 365 topics. PnP Team members have a significant impact on driving adoption of Microsoft 365&amp;nbsp; topics. They have shown their commitment to the open-source and community-driven work by constantly contributing to the benefit of the others in the community.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for all that you do!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Albert-Jan Schot (Portiva) - &lt;A href="https://twitter.com/appieschot" target="_blank" rel="noopener"&gt;@appieschot&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Alex Terentiev (SharePointalist) - &lt;A href="https://twitter.com/alexaterentiev" target="_blank" rel="noopener"&gt;@alexaterentiev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Andrew Connell (Voitanos)&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;@andrewconnell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Andrew Koltyakov (ARVO Systems)&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/andrewkoltyakov" target="_blank" rel="noopener"&gt;@andrewkoltyakov&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Beau Cameron (Aerie Consulting) -&amp;nbsp;&lt;A href="https://twitter.com/Beau__Cameron" target="_blank" rel="noopener"&gt;@Beau__Cameron&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Chris Kent (DMI)&amp;nbsp;–&amp;nbsp;&lt;A class="" href="https://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;@theChrisKent&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;David Warner II (Catapult) -&amp;nbsp;&lt;A href="https://twitter.com/DavidWarnerII" target="_blank" rel="noopener"&gt;@DavidWarnerII&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Elio Struyf (Struyf Consulting)&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/eliostruyf" target="_blank" rel="noopener"&gt;@eliostruyf&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Emily Mancini (Sympraxis Consulting) - &lt;A href="https://twitter.com/EEMancini" target="_blank" rel="noopener"&gt;@EEMancini&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Eric Overfield (PixelMill) - &lt;A href="https://twitter.com/EricOverfield" target="_blank" rel="noopener"&gt;@EricOverfield&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Erwin van Hunen (Valo Intranet)&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/erwinvanhunen" target="_blank" rel="noopener"&gt;@erwinvanhunen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Frank Cornu (aequos) - &lt;A href="https://twitter.com/FranckCornu" target="_blank" rel="noopener"&gt;@FranckCornu&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Garry Trinder (CPS Solutions) - &lt;A href="https://twitter.com/garrytrinder" target="_blank" rel="noopener"&gt;@garrytrinder&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Gautam Sheth (Valo Intranet) - &lt;A href="https://twitter.com/gautamdsheth" target="_blank" rel="noopener"&gt;@gautamdsheth&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Julie Turner (Sympraxis Consulting) -&amp;nbsp;&lt;A href="https://twitter.com/jfj1997" target="_blank" rel="noopener"&gt;@jfj1997&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Laura Kokkarinen (Sulava) - &lt;A href="https://twitter.com/LauraKokkarinen" target="_blank" rel="noopener"&gt;@LauraKokkarinen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Luise Freese - &lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener"&gt;@LuiseFreese&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Marc D Anderson (Sympraxis Consulting) -&amp;nbsp;&lt;A href="https://twitter.com/sympmarc" target="_blank" rel="noopener"&gt;@sympmarc&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Paolo Pialorsi (Piasys.com)&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;@PaoloPia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Patrick Lamber (Expertsinside AG) - &lt;A href="https://twitter.com/patricklamber" target="_blank" rel="noopener"&gt;@patricklamber&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Paul Bullock (CaPa Creative Ltd) - &lt;A href="https://twitter.com/pkbullock" target="_blank" rel="noopener"&gt;@pkbullock&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Rabia Williams (Engage Squared) - &lt;A href="https://twitter.com/williamsrabia" target="_blank" rel="noopener"&gt;@williamsrabia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Stefan Bauer (n8d) –&amp;nbsp;&lt;A href="https://twitter.com/StfBauer" target="_blank" rel="noopener"&gt;@StfBauer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Velin Georgiev (Pramerica) –&amp;nbsp;&lt;A href="https://twitter.com/velingeorgiev" target="_blank" rel="noopener"&gt;@velingeorgiev&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Veronique Lengelle (CPS) - &lt;A href="https://twitter.com/veronicageek" target="_blank" rel="noopener"&gt;@veronicageek&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Wictor Wilen (Avanade) - &lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener"&gt;@wictor&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Yannick Plenevaux (PVX Solutions) - &lt;A href="https://twitter.com/yp_code" target="_blank" rel="noopener"&gt;@yp_code&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Here are the Microsoft Internal PnP Core team members:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;April Dunnam - &lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;@aprildunnam&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Bert Jansen&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/O365Bert" target="_blank" rel="noopener"&gt;@O365Bert&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Bob German - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;@Bob1German&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Hugo Bernier - &lt;A href="https://twitter.com/bernierh" target="_blank" rel="noopener"&gt;@bernierh&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Koen Zomers - &lt;A href="https://twitter.com/koenzomers" target="_blank" rel="noopener"&gt;@koenzomers&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Mikael Svenson –&amp;nbsp;&lt;A href="https://twitter.com/mikaelsvenson" target="_blank" rel="noopener"&gt;@mikaelsvenson&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Patrick Rodgers&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/mediocrebowler" target="_blank" rel="noopener"&gt;@mediocrebowler&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Rabia Williams - &lt;A href="https://twitter.com/williamsrabia" target="_blank" rel="noopener"&gt;@williamsrabia&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Sébastien Levert - &lt;A href="https://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;@sebastienlevert&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Vesa Juvonen&amp;nbsp;–&amp;nbsp;&lt;A href="https://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;@vesajuvonen&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Waldek Mastykarz – &lt;A href="https://twitter.com/waldekm" target="_blank" rel="noopener"&gt;@waldekm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:heading {"level":1} --&gt;&lt;/P&gt;
&lt;H2&gt;Next steps&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:heading --&gt;&lt;!-- wp:image {"id":3825,"sizeSlug":"large"} --&gt;&lt;!-- /wp:image --&gt;&lt;!-- wp:list --&gt;&lt;/P&gt;
&lt;P&gt;See all of the available community calls, tools, components and other assets from &lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp&lt;/A&gt;. Get involved!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Got ideas or feedback on the topics to cover, additional partnerships, product feature capabilities? - let us know. Your input is important for us, so that we can support your journey in Microsoft 365.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:list --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;!-- wp:separator --&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;!-- /wp:separator --&gt;&lt;!-- wp:paragraph --&gt;&lt;/P&gt;
&lt;P&gt;Microsoft 365 Community (PnP) – May11th 2021&lt;/P&gt;
&lt;DIV id="tinyMceEditorVesa Juvonen_31" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 May 2021 17:57:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-may-2021-update/ba-p/2332366</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-12T17:57:18Z</dc:date>
    </item>
    <item>
      <title>Community Sample: News Ticker app (SPFx Extensions)</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-news-ticker-app-spfx-extensions/ba-p/2337566</link>
      <description>&lt;P&gt;You might be familiar with the running text that shows some breaking news on a news tv channel. I think it would be nice if we have a similar thing on a SharePoint site to show some breaking news to its users so I created the News Ticker app. Basically, the app will show some news from a SharePoint list as a running text at the top of every modern page on the site. Below is how it looks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="react-application-news-ticker.gif" style="width: 800px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279318iBD7C1FA76F09EB66/image-size/large?v=v2&amp;amp;px=999" role="button" title="react-application-news-ticker.gif" alt="News Ticker" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;News Ticker&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below is the data source:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2021-05-10 19_32_40-Window.png" style="width: 969px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279441iE9881D8214AAA66A/image-size/large?v=v2&amp;amp;px=999" role="button" title="2021-05-10 19_32_40-Window.png" alt="Data Source List" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Data Source List&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can find the full source code and how to install it&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/main/samples/react-application-news-ticker" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this article, I will share some key points from the solution code that might be useful for other SPFx projects.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;1. Use React component in the SPFx Extension&lt;/H3&gt;
&lt;P&gt;SPFx extension doesn't include React component by default but we can easily add it manually.&lt;/P&gt;
&lt;P&gt;We just need to render our React component in the placeholder element provided by the SPFx Extension Application Customizer.&lt;/P&gt;
&lt;P&gt;You can find my implementation code&amp;nbsp;&lt;A title="Github link" href="https://github.com/pnp/sp-dev-fx-extensions/blob/635f2cc96302b193ed9fbcfbc8789ffcca229748/samples/react-application-news-ticker/src/extensions/newsTicker/NewsTickerApplicationCustomizer.ts#L87" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1.png" style="width: 506px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279455iEFBFD8FE6D03A38E/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.png" alt="Render React Component" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Render React Component&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;2. Get data from SharePoint list based on View using PnP JS&lt;/H3&gt;
&lt;P&gt;I'm using SharePoint list as the data source.&lt;/P&gt;
&lt;P&gt;In order to make it simple to manage the news, I'm leveraging the list view and getting the data based on the view configuration.&lt;/P&gt;
&lt;P&gt;It's great because we don't need to build any custom configuration mechanism in our app to configure (sort, filter, top, etc.) the data to be displayed. Just use the OOTB list view configuration.&lt;/P&gt;
&lt;P&gt;It's very easy to get the data based on the list view using the &lt;A href="https://pnp.github.io/pnpjs/sp/" target="_blank" rel="noopener"&gt;PnP JS&lt;/A&gt;. Below is my implementation:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Get the view information using&amp;nbsp;&lt;A href="https://pnp.github.io/pnpjs/sp/views/#get-views-in-a-list" target="_blank" rel="noopener"&gt;list.views.getByTitle(...)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Get list item based on the list view XML using&amp;nbsp;&lt;A href="https://pnp.github.io/pnpjs/sp/lists/#get-list-items-using-a-caml-query" target="_blank" rel="noopener"&gt;list.getItemsByCAMLQuery(...)&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;You can find my implementation code&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/blob/a2f8ca83d13978835c5a7468c68a2a460bf58a50/samples/react-application-news-ticker/src/extensions/newsTicker/service/SpService.ts#L10" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2021-05-10 19_56_48-Window.png" style="width: 492px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279447i5718F46BA7B7857C/image-size/large?v=v2&amp;amp;px=999" role="button" title="2021-05-10 19_56_48-Window.png" alt="Get Data Based on List View" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Get Data Based on List View&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;3. Use React third party component&lt;/H3&gt;
&lt;P&gt;I'm using an open-source React third party component for the running text component: &lt;A href="https://github.com/AndreasFaust/react-ticker" target="_blank" rel="noopener"&gt;react-ticker&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;It's easy to add any React third party components to our SPFx project.&lt;/P&gt;
&lt;P&gt;You can find my implementation code &lt;A href="https://github.com/pnp/sp-dev-fx-extensions/blob/main/samples/react-application-news-ticker/src/extensions/newsTicker/components/NewsTicker.tsx" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2021-05-10 20_28_27-Window.png" style="width: 727px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279450iACED2CE0142AC1FF/image-size/large?v=v2&amp;amp;px=999" role="button" title="2021-05-10 20_28_27-Window.png" alt="Use Third Party Component" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Use Third Party Component&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for reading. Hope you find this article useful&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@8341BD79091AF36AA2A09063B554B5CD/images/emoticons/smile_40x40.gif" alt=":smile:" title=":smile:" /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 10 May 2021 14:21:21 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-news-ticker-app-spfx-extensions/ba-p/2337566</guid>
      <dc:creator>Ari Gunawan</dc:creator>
      <dc:date>2021-05-10T14:21:21Z</dc:date>
    </item>
    <item>
      <title>Power Automate: skip the Parse JSON action to reference data</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-automate-skip-the-parse-json-action-to-reference-data/ba-p/2336866</link>
      <description>&lt;P&gt;&lt;!-- wp:heading --&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- wp:heading --&gt;&lt;/H2&gt;
&lt;H2&gt;Why?&lt;/H2&gt;
&lt;H2&gt;&lt;!-- /wp:heading --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;Let me emphasize that using the &lt;SPAN&gt;Parse JSON&lt;/SPAN&gt; action (as explained in this great blog post of Luise Freese: &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-use-parse-json-action-in-power-automate/ba-p/2121861?WT" target="_blank" rel="noreferrer noopener"&gt;How to use Parse JSON action in Power Automate&lt;/A&gt;) is always the way to go when you are starting with Power Automate. Especially if you want to have properties of your JSON ouput to show up as Dynamic Content in the rest of your Flow.&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;However the &lt;SPAN&gt;Parse JSON&lt;/SPAN&gt; action is very picky... The action will fail if a property is missing, a new property is added later on or an existing property is giving back a different type of data. In short: any schema change not being updated in the settings of the action can cause a :cross_mark:&lt;/img&gt; "&lt;EM&gt;ValidationFailed error&lt;/EM&gt;" :cross_mark:&lt;/img&gt;. Such an error will stop the Flow because the schema validation failed:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PowerAutomate_ParseJSONfail" style="width: 634px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279338i323A98A1BF42BFF5/image-size/large?v=v2&amp;amp;px=999" role="button" title="PowerAutomate_ParseJSONfail" alt="PowerAutomate_ParseJSONfail" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:image {"id":1029,"sizeSlug":"large","linkDestination":"none"} --&gt;&lt;/H2&gt;
&lt;H2&gt;&lt;!-- /wp:image --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;As long as you remind to also update the Parse JSON action schema, it will continue working fine. &lt;BR /&gt;But in my case, I wanted to know if Power Automate could skip the Parse JSON action :nerd_face:&lt;/img&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:heading --&gt;&lt;/H2&gt;
&lt;H2&gt;What?&lt;/H2&gt;
&lt;H2&gt;&lt;!-- /wp:heading --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;In this blog post, I can show you a way to skip the &lt;SPAN&gt;Parse JSON&lt;/SPAN&gt; action and reference a property of an action with JSON output directly. This way, we can have one action less (#LessUsage #LessAPIcalls) and thus one action less that could fail (#Lean #LessActionsLessRisks).&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:heading --&gt;&lt;/H2&gt;
&lt;H2&gt;How?&lt;/H2&gt;
&lt;H2&gt;&lt;!-- /wp:heading --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;Let's first have a look at a simple JSON object:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PowerAutomate_JSONobject" style="width: 642px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279339i9313C25EF739BD0E/image-size/large?v=v2&amp;amp;px=999" role="button" title="PowerAutomate_JSONobject" alt="PowerAutomate_JSONobject" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:image --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;The output of this &lt;SPAN&gt;Compose&lt;/SPAN&gt; action will be this JSON output:&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:code --&gt;&lt;/H2&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE&gt;{
  "Property Product": "Product A",
  "Property Product Category": "Product Category 1"
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;!-- /wp:code --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;I am using a &lt;SPAN&gt;Compose&lt;/SPAN&gt; action to give JSON output, but in most cases JSON output will come from actions connected to a data source. In some types of actions unfortunately Power Automate does not create Dynamic Content. In these cases, the properties of these action do not show up in the Dynamic Content Panel for the rest of your Flow. When using the Parse JSON action on the output of such an action:&lt;!-- wp:image {"id":1031,"sizeSlug":"large","linkDestination":"none"} --&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PowerAutomate_parseJSON" style="width: 626px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279340iF22ACD84A9E2CF43/image-size/large?v=v2&amp;amp;px=999" role="button" title="PowerAutomate_parseJSON" alt="PowerAutomate_parseJSON" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:image --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;we can force the rest of the Flow to show us these properties in the Dynamic Content Panel. Making it easy for us to reference these properties. The Content input of the &lt;SPAN&gt;Parse JSON&lt;/SPAN&gt; action will be the output of the &lt;SPAN&gt;Compose - SimpleJSONObject&lt;/SPAN&gt; action:&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:code --&gt;&lt;/H2&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE&gt;@{outputs('Compose_-_SimpleJSONObject')}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;!-- /wp:code --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;Thanks to the &lt;SPAN&gt;Parse JSON - SimpleJSONObject&lt;/SPAN&gt; action, we can (from this action on) use the properties defined in its Schema as Dynamic Content:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PowerAutomate_parseJSONreference" style="width: 686px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279341iF2487F45ACA049EE/image-size/large?v=v2&amp;amp;px=999" role="button" title="PowerAutomate_parseJSONreference" alt="PowerAutomate_parseJSONreference" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:image {"id":1033,"sizeSlug":"large","linkDestination":"none"} --&gt;&lt;/H2&gt;
&lt;H2&gt;&lt;!-- /wp:image --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;The expression of this reference would look like:&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:code --&gt;&lt;/H2&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE&gt;@{body('Parse_JSON_-_SimpleJSONObject')?['Property Product Category']}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;!-- /wp:code --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;In my first screenshot, you can see the action failing. It failed because the schema was expecting a string, while the Content input was giving an integer number. This was because I changed the JSON object temporarily :smiling_face_with_horns:&lt;/img&gt; to:&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:code --&gt;&lt;/H2&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE&gt;{
  "Property Product": "Product A",
  "Property Product Category": 1
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;!-- /wp:code --&gt; &lt;!-- wp:paragraph {"dropCap":true} --&gt;&lt;/H2&gt;
&lt;P class="has-drop-cap"&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt; We can also reference the property of the first action &lt;SPAN&gt;Compose - SimpleJSONObject&lt;/SPAN&gt; action directly. We can use an expression like:&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt; &lt;!-- wp:code --&gt;&lt;/H2&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE&gt;@{outputs('Compose_-_SimpleJSONObject')?['Property Product Category']}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;!-- /wp:code --&gt; &lt;!-- wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;Power Automate can thus skip the &lt;SPAN&gt;Parse JSON&lt;/SPAN&gt; action. Even without this parsing, we can reference the property of any action with a JSON output:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PowerAutomate_parseJSONreferenceDirectly" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279342iC4B3DB0A80608CEA/image-size/large?v=v2&amp;amp;px=999" role="button" title="PowerAutomate_parseJSONreferenceDirectly" alt="PowerAutomate_parseJSONreferenceDirectly" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;No Parse JSON action needed! 8)&lt;/img&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Originally published at&amp;nbsp;&lt;A href="https://knowhere365.space/power-automate-skip-the-parse-json-action-to-reference-data/" target="_self"&gt;https://knowhere365.space/power-automate-skip-the-parse-json-action-to-reference-data/&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;!-- /wp:paragraph --&gt;&lt;/H2&gt;
&lt;P&gt;&lt;!-- /wp:paragraph --&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 10 May 2021 11:01:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-automate-skip-the-parse-json-action-to-reference-data/ba-p/2336866</guid>
      <dc:creator>LohnDjango</dc:creator>
      <dc:date>2021-05-10T11:01:58Z</dc:date>
    </item>
    <item>
      <title>Re: Let’s build a timer app for Teams meetings</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/let-s-build-a-timer-app-for-teams-meetings/bc-p/2338556#M268</link>
      <description>&lt;P&gt;Thanks for detailed information.&lt;/P&gt;</description>
      <pubDate>Sun, 09 May 2021 05:32:44 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/let-s-build-a-timer-app-for-teams-meetings/bc-p/2338556#M268</guid>
      <dc:creator>karthi natarajan</dc:creator>
      <dc:date>2021-05-09T05:32:44Z</dc:date>
    </item>
    <item>
      <title>New Microsoft 365 Patterns and Practices (PnP) team members – May 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/new-microsoft-365-patterns-and-practices-pnp-team-members-may/ba-p/2332415</link>
      <description>&lt;P class=""&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gautam-patrick-team.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279124i6DD0BEAC56D97B25/image-size/large?v=v2&amp;amp;px=999" role="button" title="gautam-patrick-team.png" alt="gautam-patrick-team.png" /&gt;&lt;/span&gt;&lt;BR /&gt;We are excited to announce that we are again extending our virtual&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener"&gt;Microsoft 365 Patterns and Practices (PnP) team&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;with additional community members. PnP team is responsible of the different community activities in different community channels, including our open-source work in the GitHub. This team consist of Microsoft employees and community members (MVPs) focused on helping the community the best use of Microsoft products, like Microsoft Teams, Power Platform, OneDrive, SharePoint or API layer like Microsoft Graph.&lt;/P&gt;
&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We announced our new PnP team model in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener"&gt;April 2020 with additional community members&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and are further extending this team with new community members. We believe that&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;working together as a one unified team across the organization barriers&lt;/STRONG&gt;, we can make even larger worldwide impact and helping other community member to succeed on adopting different practices within&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="brand"&gt;Microsoft 365&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;platform.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;HR /&gt;
&lt;P&gt;&lt;STRONG&gt;Gautam Sheth - Software Designer&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="lia-align-right"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="gautam.jpg" style="width: 250px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279108i5C5DFBE419479B85/image-dimensions/250x250?v=v2" width="250" height="250" role="button" title="gautam.jpg" alt="gautam.jpg" /&gt;&lt;/span&gt;
&lt;P&gt;&lt;A href="https://github.com/gautamdsheth" target="_self"&gt;Gautam&lt;/A&gt; is a Software Designer at &lt;A href="https://www.valointranet.com" target="_blank" rel="noopener"&gt;Valo&lt;/A&gt;. Coming from a developer background, he builds products using the Microsoft 365 developer stack. He is also a maintainer of the &lt;A href="https://pnp.github.io/powershell/" target="_self"&gt;PnP PowerShell&lt;/A&gt; repository and a contributor to &lt;A href="https://pnp.github.io/pnpcore/" target="_self"&gt;PnP Framework&lt;/A&gt; and SPFx related repositories. He loves to contribute to the community and share his learnings. He is a firm believer in Sharing is Caring and helping others.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can read his blogs at &lt;A href="https://gautamdsheth.wordpress.com" target="_self"&gt;https://gautamdsheth.wordpress.com&lt;/A&gt; and tweets &lt;A href="https://twitter.com/gautamdsheth" target="_blank" rel="noopener"&gt;@gautamdsheth&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Outside of work, you can find him reading books, listening to Bollywood songs or occasionally speaking at local community/user group events.&lt;/P&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Patrick Lamber –&lt;WBR /&gt;&lt;SPAN&gt;&amp;nbsp;Microsoft 365 Solutions Architect&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;P style="text-align: right;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="patrick.jpg" style="width: 250px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279107i3C914A8333413ABE/image-dimensions/250x250?v=v2" width="250" height="250" role="button" title="patrick.jpg" alt="patrick.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/plamber" target="_self"&gt;Patrick&lt;/A&gt;&amp;nbsp;is a Microsoft Developer MVP and Microsoft 365 solutions architect at &lt;A href="https://www.expertsinside.com/" target="_self"&gt;Experts Inside AG&lt;/A&gt;. He builds business solutions in the Microsoft 365 ecosystem for his international customers and he is the main developer of &lt;A href="https://www.easylife365.cloud" target="_self"&gt;EasyLife 365&lt;/A&gt; a new governance solution for Microsoft 365.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Patrick actively contributes to various projects on GitHub. You can follow him on &lt;A href="https://github.com/plamber" target="_self"&gt;GitHub&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When Patrick isn't coding or helping customers, you will find him walking his dog or dancing Salsa around the world.&lt;/P&gt;
&lt;DIV id="tinyMceEditorVesa Juvonen_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;HR /&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;If you are looking for more details on what&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="brand"&gt;Microsoft 365&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Patterns and Practices (PnP) is all about, see more details on the different activities and projects from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp&lt;/A&gt;, including all community calls, open-source projects, samples and more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=""&gt;There are also numerous exciting new projects under development which will be released as open-source solutions soon addressing Microsoft Teams, OneDrive, Microsoft Graph and SharePoint areas. We want to thank also the countless of other community members who have been involved on this journey for past years. We still consider this as just a start and are looking your feedback and input to further improve the processes and model we use.&lt;/P&gt;
&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=""&gt;Got ideas, feedback, comments on our community work? –&lt;WBR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Don’t hesitate to let us know. We are here for you. Everyone is welcome!&lt;/P&gt;
&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Sharing is Caring!&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Previous related announcements&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members-february-2021/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - February 2021&lt;/A&gt; -&amp;nbsp;&lt;A title="https://www.twitter.com/aprildunnam" href="https://www.twitter.com/aprildunnam" target="_blank" rel="noreferrer noopener"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(Microsoft), &lt;A href="https://twitter.com/EEMancini" target="_self"&gt;Emily Mancini&lt;/A&gt; (Sympraxis Consulting) and&amp;nbsp;&lt;A href="https://twitter.com/veronicageek" target="_blank"&gt;Veronique Lengelle&lt;/A&gt; (CPS)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members-2/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - December 2020&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank"&gt;Luise Freese&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://twitter.com/sebastienlevert/" target="_blank"&gt;Sébastien Levert&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-members/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team members - August 2020&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/appieschot" target="_blank"&gt;Albert-Jan Schot&lt;/A&gt;&amp;nbsp;(Portiva),&amp;nbsp;&lt;A href="https://twitter.com/koenzomers" target="_blank"&gt;Koen Zomers&lt;/A&gt;&amp;nbsp;(Microsoft),&amp;nbsp;&lt;A href="https://twitter.com/pkbullock" target="_blank"&gt;Paul Bullock&lt;/A&gt;&amp;nbsp;(CaPa Creative),&amp;nbsp;&lt;A href="https://twitter.com/williamsrabia" target="_blank"&gt;Rabia Williams&lt;/A&gt;&amp;nbsp;(Microsoft) and&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://twitter.com/yp_code" target="_blank"&gt;Yannick Plenevaux&lt;/A&gt;&amp;nbsp;(PVX Solutions)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;Friday 7th of May, 2021&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 15:48:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/new-microsoft-365-patterns-and-practices-pnp-team-members-may/ba-p/2332415</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-07T15:48:25Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Community Spotlight: Stefan Bauer</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-stefan-bauer/ba-p/2334949</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefanbauer.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279056i92749C5F20B7FDD3/image-size/large?v=v2&amp;amp;px=999" role="button" title="stefanbauer.png" alt="stefanbauer.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Which community project do you maintain?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;pnp/generator-spfx&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;How does it help people?&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Allows people to create more advanced SPFx project with support for other frameworks VueJS, Handlebars and Angular Elements.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What have you been working on lately?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SPFx 1.12 integration&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What do you do at work?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Designer and Solution Architect.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Why are you a part of the M365 community?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Because of all the great people.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What was you first community contribution?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Make SharePoint 2010 responsive.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;One tip for someone who’d like to start contributing&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Just do it.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 11:05:41 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-stefan-bauer/ba-p/2334949</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-07T11:05:41Z</dc:date>
    </item>
    <item>
      <title>Let’s build a timer app for Teams meetings</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/let-s-build-a-timer-app-for-teams-meetings/ba-p/2334593</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Header_TimerApp.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279051i1C857510A318439D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Header_TimerApp.png" alt="Header_TimerApp.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Wouldn’t it be nice to have a timer at meetings, so that everybody can see how much time has passed and how much is remaining? A timer for everybody to see. To make this transparent and accessible to everyone, I wanted to build a timer app which you can use in Teams meetings.&lt;/P&gt;
&lt;P&gt;And since we all get better at delivering and receiving virtual meetings, workshops and events, we all discover different techniques on delivering content. In a lot of agile techniques, time plays a relevant role. If you’re familiar with &lt;A href="https://en.wikipedia.org/wiki/Agile_software_development" target="_blank" rel="noopener"&gt;agile software development&lt;/A&gt;, &lt;A href="https://en.wikipedia.org/wiki/Scrum_(software_development)" target="_blank" rel="noopener"&gt;Scrum&lt;/A&gt; in general or &lt;A href="https://en.wikipedia.org/wiki/Stand-up_meeting" target="_blank" rel="noopener"&gt;Stand-up meetings&lt;/A&gt; you know how effective &lt;A href="https://en.wikipedia.org/wiki/Timeboxing" target="_blank" rel="noopener"&gt;timeboxing&lt;/A&gt; can be.&lt;/P&gt;
&lt;P&gt;So I build a timer app and made it Microsoft Teams ready :beaming_face_with_smiling_eyes:&lt;/img&gt;&lt;/P&gt;
&lt;P&gt;I’m gonna share, how I build it, so you can build something similar with the timer control, which caused the whole idea.&lt;/P&gt;
&lt;P&gt;You can also just download my sample, I’ve published on &lt;A href="https://pnp.github.io/powerplatform-samples/samples/powerapps/" target="_blank" rel="noopener"&gt;M365 PnP Power Platform Samples&lt;/A&gt;. You get all the images and all the code to use and improve it (tag me if you did, I’d love to see if this thing can grow ;)&lt;/img&gt;). It’s all for free y’know?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will split this blog into two parts:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Building the app&lt;/LI&gt;
&lt;LI&gt;Make it available in Microsoft Teams meetings&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;&lt;STRONG&gt;Prerequisites&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;To build this app you just need access to the &lt;A href="https://gezeitenbrandde-my.sharepoint.com/personal/michael_roth_gezeitenbrand_de/Documents/Blog/TimerApp/make.powerapps%20com" target="_blank" rel="noopener"&gt;maker portal of PowerApps&lt;/A&gt;. You don’t need any data source or premium connectors.&lt;/P&gt;
&lt;P&gt;When you want to make the app available in Microsoft Teams meetings you need the administrative rights to upload custom build apps in your Teams.&lt;/P&gt;
&lt;P&gt;Any code editor will come in handy (I prefer &lt;A href="https://code.visualstudio.com/" target="_blank" rel="noopener"&gt;Visual Studio Code&lt;/A&gt;), but don’t worry, you don’t need to know how to write code or anything.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;About the app&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Before we start, here’s a picture of the finished app.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="TimerApp.png" style="width: 466px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279035iBD16098EE0D9C25A/image-dimensions/466x831?v=v2" width="466" height="831" role="button" title="TimerApp.png" alt="TimerApp.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;I build this in the portrait orientation, since I want it to be used in Teams meetings. That means, it has to fit in the meeting side panel.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the upper half you see a classic timer which shows the remaining time and three buttons: Start, Stop and Reset.&lt;/P&gt;
&lt;P&gt;You also have four buttons to set the timer to a certain duration. In this case I went for 10 seconds, 30 seconds, 3 minutes and 5 minutes.&lt;/P&gt;
&lt;P&gt;In the lower half you see two things:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;A slider indicating the remaining time and a bar turning from blue to red as the time runs out.&lt;/LI&gt;
&lt;LI&gt;A pie chart divided into quarters to visualize the remaining time&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;STRONG&gt;Accessibility Note:&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;I’d like to make it very clear in the beginning, that the colors are no coincidence. Initially I started with a classic color scheme: red and green. But then I realized that red-green colorblindness is one of the most common visual disorders. I switched the colors to make sure that everybody can see everything on the screen. Learn more about &lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/accessibility-by-design" target="_blank" rel="noopener"&gt;accessibility.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;On all the Power App applications you can find the checker symbol in the upper right corner. It’s a very easy step to make sure that your product (app or flow or slide or whatever) reaches more people. We want to include everyone, correct? Correct!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Accessibility.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279036iE5D999E8B5EFD1D3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Accessibility.png" alt="Accessibility.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture5.jpg" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279037i902C3C8D1EC0ED88/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Picture5.jpg" alt="Picture5.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Building the app&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;We have three steps to set up this app:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Build the timer in the upper half of the app.&lt;/LI&gt;
&lt;LI&gt;Build the visualization in the lower half of the app.&lt;/LI&gt;
&lt;LI&gt;Make it look pretty.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Build the timer in the upper half of the app&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;At first you start with inserting four things:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;One timer input.&lt;/LI&gt;
&lt;LI&gt;Three buttons for controlling the timer.&lt;/LI&gt;
&lt;LI&gt;Four buttons to set the timer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You will use the buttons to start, stop and reset the timer (think about renaming your controls in the tree view to remain an overview over all your components). Here is how to edit the parts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Timer input&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Timer.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279039i6D93AE4BAA9DC42A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Timer.png" alt="Timer.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Start by changing the &lt;STRONG&gt;Duration&lt;/STRONG&gt; into a variable. I called it “Dauer” (sorry for the german, but you can call it whatever you like). The timer shows now the duration we put into that variable. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;By default, the timer starts counting upwards, but since we want to show the remaining time, we have to customize the &lt;STRONG&gt;Text&lt;/STRONG&gt; property:&lt;/P&gt;
&lt;P&gt;Replace the default function&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;EM&gt;Text(Time(0, 0, Self.Value/1000), "hh:mm:ss")&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;with this function&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;CODE&gt;Text(Time(0, 0, (Timer4.Duration-Timer4.Value)/1000), "[$-en-US]mm:ss")&lt;/CODE&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Now the timer shows only the minutes and seconds and starts on whatever is written in the variable “Dauer”. And it’s ticking downwards. Not bad.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Buttons to set the timer&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Now we have to work further with that variable &lt;CODE&gt;&lt;EM&gt;Dauer&lt;/EM&gt;&lt;/CODE&gt;&amp;nbsp;we set the timer on.&lt;/P&gt;
&lt;P&gt;You add four buttons and change the text to “10 sec”, “30 sec”, “3 min” and “5 min” (remember to use the “”, because the text is just a string ;)&lt;/img&gt;)&lt;/P&gt;
&lt;P&gt;The magic happens on the OnSelect property. Set it for each button to the following function:&lt;/P&gt;
&lt;P&gt;10 sec button:&amp;nbsp; &amp;nbsp;&lt;CODE&gt;&lt;EM&gt;UpdateContext({Dauer:10000})&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;30 sec button:&amp;nbsp;&amp;nbsp; &lt;CODE&gt;&lt;EM&gt;UpdateContext({Dauer:30000})&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;3 min button:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;CODE&gt;&lt;EM&gt;UpdateContext({Dauer:180000})&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;5 min button:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;CODE&gt;&lt;EM&gt;UpdateContext({Dauer:300000})&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The timer control works with milliseconds, so you have to type your desired duration in milliseconds. When you click one of the buttons, you change the variable “Dauer” to the specific value and since the timer value show whatever the variable Dauer is set to, you can choose the duration.&lt;/P&gt;
&lt;P&gt;Now let’s take a look at the three buttons we want to use to control the timer.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Start Button&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;We set the &lt;STRONG&gt;OnSelect&lt;/STRONG&gt; property to this function:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&lt;CODE&gt;UpdateContext({ClockTicking: true})&lt;/CODE&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;We are initializing a variable named &lt;CODE&gt;&lt;EM&gt;ClockTicking&lt;/EM&gt;&lt;/CODE&gt;&amp;nbsp;and set the value to true. When we’re already on it, we use the same variable for the Stop Button.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Stop Button&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;We set the &lt;STRONG&gt;OnSelect&lt;/STRONG&gt; property to this function:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;EM&gt;UpdateContext({ClockTicking: true})&lt;/EM&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;This way we have buttons to control the variable here. Logically, we have to tell our Timer input that it has to use this variable to start and to stop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Timer input&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Change the &lt;STRONG&gt;Start property&lt;/STRONG&gt; to&amp;nbsp;&lt;EM&gt;&lt;CODE&gt;ClockTicking&amp;nbsp;&lt;/CODE&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Since we want the timer to not automatically reset at the end, but to control it with the button, we set the OnTimerEnd property with this function:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&lt;CODE&gt;UpdateContext({ResetIt:false}); UpdateContext({ResetIt: true})&lt;/CODE&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Buttons.png" style="width: 356px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279041i43AF18DAB4CBDEA7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Buttons.png" alt="Buttons.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now we have a timer that can be set to the values of the four buttons on the right side AND we can control it with three buttons. Neat!&lt;/P&gt;
&lt;P&gt;Next stop: the visualization.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Build the visualization in the lower half of the app&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;We have two parts here: the slider on the right side and the pie chart on the left. We’re going to start with the slider.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Slider Control&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;To build this, start to insert the slider control.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Build_3.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279042iC009FFD2B633D06C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Build_3.png" alt="Build_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now it’s time to flip it over.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Change the &lt;STRONG&gt;Layout property&lt;/STRONG&gt; to &lt;EM&gt;&amp;nbsp;&lt;CODE&gt;Vertical&lt;/CODE&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Set the &lt;STRONG&gt;Max property&lt;/STRONG&gt; to &lt;EM&gt;Dauer/1000&lt;/EM&gt;. This way it shows, whatever&amp;nbsp;&amp;nbsp;&lt;CODE&gt;&lt;EM&gt;Dauer&lt;/EM&gt;&lt;/CODE&gt;&amp;nbsp; is.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And to link the position of the handle to what your timer is showing set the &lt;STRONG&gt;Default property&lt;/STRONG&gt; to&amp;nbsp;&amp;nbsp;&lt;CODE&gt;&lt;EM&gt;(Timer1.Duration-Timer1.Value)/1000&lt;/EM&gt;&lt;/CODE&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now you already have a slider whose handle slowly moves down while your timer counts down.&lt;/P&gt;
&lt;P&gt;How cool is that?&lt;/P&gt;
&lt;P&gt;Before we make it pretty, we set up the last element.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;The pie chart&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;This chart consists of five icons, put on top of each other. You will need the following icons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Circle (2x)&lt;/LI&gt;
&lt;LI&gt;Quarter circle (1x)&lt;/LI&gt;
&lt;LI&gt;Half circle (1x)&lt;/LI&gt;
&lt;LI&gt;Three-quarter circle (1x)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt; &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Icons.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279043i6957D7AB4F14BFCC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Icons.png" alt="Icons.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;You need to layer these in the following order:&lt;/P&gt;
&lt;P&gt; &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Build_5.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279044iEA7CD2BD6B4488B9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Build_5.png" alt="Build_5.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Set the &lt;STRONG&gt;Fill property&lt;/STRONG&gt; to of the top four elements to some blue, the full circle at the bottom is going to be red. The exact colors don’t matter at this point. We will beautify the app in the last part, don’t worry.&lt;/P&gt;
&lt;P&gt;Don’t worry about the looks, we will change them in the last chapter.&lt;/P&gt;
&lt;P&gt;As the timer and the slider count down, you will, step by step, let the single icons disappear by setting the Visible property to the following function:&lt;/P&gt;
&lt;P&gt;Full circle on top:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;EM&gt;&amp;nbsp;&lt;CODE&gt;If(Slider1.Value &amp;gt;=22.5,true,false)&lt;/CODE&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Three-quarter circle:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;EM&gt;&lt;CODE&gt;If(Slider1.Value &amp;gt;=15,true,false)&lt;/CODE&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Half circle:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;&lt;CODE&gt;If(Slider1.Value &amp;gt;=7.5,true,false)&lt;/CODE&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Quarter circle:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;&lt;CODE&gt;If(Slider1.Value &amp;gt;0,true,false)&lt;/CODE&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When the timer reaches the value 22.5 the full circle on top will disappear, revealing the Three-quarter circle. That indicates that only three quarter of the time remains. It is important to place the circles on top of each other.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That is all you need to do. What’s left to do is, to make this whole thing pretty. Are you ready?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Make it look pretty&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;I will split this part, again, in three parts:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The timer in the upper part&lt;/LI&gt;
&lt;LI&gt;The slider and the chart in the lower part&lt;/LI&gt;
&lt;LI&gt;The background&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;The timer in the upper part&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;I added a picture of a timer I’ve made myself. You can download and use it with the whole sample from the &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/timer" target="_blank" rel="noopener"&gt;PnP Power Apps samples github repository&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;You click on Insert &amp;gt; Media &amp;gt; picture to use that picture in your app. Now place it in the middle of the screen (Power Apps helps you with snapping it to the middle if you drag it near the middle).&lt;/P&gt;
&lt;P&gt;Now you can remove the border and background from your…&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Timer input&lt;/LI&gt;
&lt;LI&gt;The Start Button&lt;/LI&gt;
&lt;LI&gt;The Stop Button&lt;/LI&gt;
&lt;LI&gt;And the Reset Button&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In the Timer properties, change these values to transparent:&lt;/P&gt;
&lt;P&gt; &lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture9.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279045i7270F0C75B3FFCCD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Picture9.png" alt="Picture9.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;I did the same for the Start, Stop and Reset Button and placed them in the middle of a circle icon, I’ve added (Insert &amp;gt; Icon &amp;gt; Circle). Place the button over the circle icon and align it in the middle and in the center. You do that by right-clicking on the button and use the align feature. With Reorder you can also place the icon under the button.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Align.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279046i3A35E86A0BF78FBF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Align.png" alt="Align.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now select the icon and the button and group them (Ctrl+G), so you can place them in the spare holes of the timer picture.&lt;/P&gt;
&lt;P&gt;In the end I group the whole timer pictures and all controls and labels to place them easily.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;The slider and the chart in the lower part&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I set the &lt;STRONG&gt;size and position values&lt;/STRONG&gt; of the circles like this, but you can place them wherever you like:&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Position.png" style="width: 391px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279048i93D5ED8BF9582B73/image-size/large?v=v2&amp;amp;px=999" role="button" title="Position.png" alt="Position.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now for the slider. Set the &lt;STRONG&gt;size and position values&lt;/STRONG&gt; like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Position_Slider.png" style="width: 388px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279049iD354AB9C43CA6261/image-size/large?v=v2&amp;amp;px=999" role="button" title="Position_Slider.png" alt="Position_Slider.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Set the &lt;STRONG&gt;Handle size&lt;/STRONG&gt; value to &lt;EM&gt;50&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Set the &lt;STRONG&gt;Rail value&lt;/STRONG&gt; to &lt;EM&gt;20&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;The four-colored scale behind the timer are four rectangle icons that I placed over each other.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;The colors &lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Now there is one last step, you have to set all the correct colors, And of course, I have another little trick, if you are lazy (like me).&lt;/P&gt;
&lt;P&gt;I like to set all the colors I’m going to use in an app in a variable. Then I can set the Fill or color value for each element to the name of the variable and don’t have to remember the hexcode for every color over and over again.&lt;/P&gt;
&lt;P&gt;You want to set those variables on the OnStart property of the app itself, so the colors will show when, you start the app.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture10.png" style="width: 504px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279050iF4CD3F4696D6ED43/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture10.png" alt="Picture10.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Here is the function that I used:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="applescript"&gt;Concurrent(
    Set(
        Background_color,
        ColorValue("#f4f4fc")
    ),
    Set(
        Font_color,
        ColorValue("#484644")
    ),
    Set(
        Element_background,
        ColorValue("#e2e2f6")
    ),
    Set(
        Element_color,
        ColorValue("#484644")
    ),
    Set(
        Button_hover_Fill,
        ColorValue("#464775")
    ),
    Set(
        TheRed,
        ColorValue("#cc4a31")
    ),
    Set(
        Blurple_lightish,
        ColorValue("#6264a7")
    ),
    Set(
        Blurple_light,
        ColorValue("#8b8cc7")
    ),
    Set(
        Blurple_medium,
        ColorValue("#6264a7")
    ),
    Set(
        Blurple_darkish,
        ColorValue("#464775")
    ),
    Set(
        Blurple_dark,
        ColorValue("#33344a")
    )
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt; Here is an overview on variables and their purposes.&amp;nbsp;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Background_color:&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;the background of the app&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Font_color:&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Color property of the timer&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Color property of the Duration buttons on the right&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Color property of the scale labels next to the timer&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Element_background:&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the duration buttons on the right&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the buttons to start, stop and reset the timer&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;ValueFill property of the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Element_color&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Color property of the icons around the circles&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Button_hover_Fill&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;HoverFill property of the timer&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;HoverFill property of the Duration buttons on the right&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;HoverFill property of the buttons to start, stop and reset the timer&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;TheRed&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;HandleFill property of the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the red circle&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Blurple_lightish&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property from the bottom rectangle behind the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Blurple_light&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property from the next larger rectangle behind the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Blurple_medium&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the blue circle on top&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the three-quarter circle&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the half circle&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property of the quarter circle&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Blurple_darkish&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property from the second largest rectangle behind the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Blurple_dark&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Fill property from the largest rectangle behind the slider&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;The result should look a lot like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="TimerApp.png" style="width: 560px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/279034i36264686F19079A2/image-size/large?v=v2&amp;amp;px=999" role="button" title="TimerApp.png" alt="TimerApp.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As you can see, I added Fluent UI Icons on the buttons of the timer (if you don’t know how to use them, have a look at this awesome &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/ba-p/2280799" target="_blank" rel="noopener"&gt;blog from Luise Freese&lt;/A&gt;), four lines around the circle to indicate quarters and halves and an arrow to make it look nice.&lt;/P&gt;
&lt;P&gt;The lines around the circles are arrow icons.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The round arrow, is an image I uploaded. You can find it in my sample on &lt;A href="https://github.com/pnp/powerapps-samples/tree/main/samples/timer" target="_blank" rel="noopener"&gt;PnP Power Platform Samples&lt;/A&gt; (you can also find the timer image and the icons. Everything’s included).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Next steps&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Of course, I have a few more ideas in mind. I’m planning on adding two more steps next:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;I would like to set the timer by just typing a duration into it. Or into a label somewhere around. I want to set the timer to any duration I like, instead of choosing from just four buttons. But I have no idea how to do that. Help!&lt;/LI&gt;
&lt;LI&gt;I would like to visualize the circle in the lower half differently. Currently it disappears at three quarters of the elapsed time, at half and at three quarters. I would like to see the circle count down a little bit smoother. But for this I still lack the idea for the implementation&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I’d love to hear what you think about it. Do you like it? Do you think it’s going to be helpful for yourself or your business? Do you think I should add a few more things?&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 10:11:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/let-s-build-a-timer-app-for-teams-meetings/ba-p/2334593</guid>
      <dc:creator>MichaelRoth42</dc:creator>
      <dc:date>2021-05-07T10:11:09Z</dc:date>
    </item>
    <item>
      <title>SharePoint Framework Community Call Recording – 6th of May, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-6th-of-may-2021/ba-p/2331918</link>
      <description>&lt;P&gt;SharePoint Framework Special Interest Group (SIG) bi-weekly community call recording from May 6th is now available from the Microsoft 365 Community YouTube channel at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt;. You can use SharePoint Framework for building solutions for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Microsoft Teams&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;SharePoint&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Online.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/yqz1HF72Guw" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call summary:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Preview the new &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt; co-developed by Microsoft Teams and Sharepoint engineering.&amp;nbsp; Download showcase apps, samples, and documentation.&amp;nbsp;&amp;nbsp; Register now for May trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;&amp;nbsp; New releases in this call – CLI for Microsoft 365 v3.9.0, Reusable SPFx React Controls v3.1.0 and Property Controls v3.1.0 and SharePoint Framework v1.12.1. Also, a look at what’s ahead for SPFx - Microsoft Viva Connections, Teams improvements, tooling updates, and Store modernization.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There were six&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;PnP SPFx samples&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;delivered in last 2 weeks, details below.&amp;nbsp; Great work!&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Latest project updates include:&amp;nbsp;&lt;/STRONG&gt; (&lt;STRONG&gt;Bold &lt;/STRONG&gt;indicates update from previous report 2 weeks ago)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;PnP Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Current version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;SharePoint Framework (SPFx)&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v1.12.1&amp;nbsp;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;GA&lt;/STRONG&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnPjs Client-Side Libraries&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.4.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v2.5.0 scheduled for May 14&lt;SUP&gt;th&lt;/SUP&gt; &lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;CLI for Microsoft 365&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;&lt;STRONG&gt;v3.9.0&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;&lt;STRONG&gt;Upgrading SPFx projects to v1.12.1&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v3.1.0&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v2.7.0 (SPFx v1.11), v3.1.0 (SPFx v1.12.1)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Property Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v3.1.0&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;v2.6.0 (SPFx v1.11), v3.1.0 (SPFx v1.12.1)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;PnP SPFx Generator&lt;/TD&gt;
&lt;TD&gt;v1.16.0&lt;/TD&gt;
&lt;TD&gt;Angular 11 support&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnP Modern Search&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v3.19 and v4.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;April and March 20th&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The host of this call is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) @mediocrebowler.&amp;nbsp; Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210506-together-mode.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278963iB071B9DC2D9319D6/image-size/large?v=v2&amp;amp;px=999" role="button" title="210506-together-mode.gif" alt="210506-together-mode.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks everybody for being part of the Community and helping making things happen. You are absolutely awesome!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Reserve date - SharePoint Monthly community call – 11&lt;SUP&gt;th&lt;/SUP&gt; of May 8 AM PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;May&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xJTFJZN01MWlZQVFc3UjgxRUxQQkhDSS4u" target="_blank" rel="noopener"&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Tech Community – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUQlpKUUlUUUtFR1VTSUxUVzI3NUs5SzhNWC4u" target="_blank" rel="noopener"&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Microsoft Graph &amp;amp; MGT - June&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Adding support to add video with a text to modern pages with this video banner web part &lt;/STRONG&gt;– from the Properties Pane, select a video, add banner title text and color it, adjust video brightness and banner height.&amp;nbsp; This elegantly coded modern web part was built with SPFx using standard PnP property pane controls in less than 3 hours.&amp;nbsp; &amp;nbsp;Add the web part to top of your pages. &amp;nbsp;&amp;nbsp;The web part has only one functional component named: VideoBackground.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Building company stories web part for story experience&lt;/STRONG&gt; – this web part allows you to add images to a SharePoint List, and renders (cycles) them with related text on page similar to Instagram Stories as a way to engage social media adept employees. Text, images, and author details stored in a SharePoint list.&amp;nbsp; &amp;nbsp;Uses an existing open-source React component called “&lt;EM&gt;react-insta-stories&lt;/EM&gt;” and several Microsoft Graph Toolkit components.&amp;nbsp; Sample in PnP Samples repository.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Building react groups and teams web part&amp;nbsp;for aggregating detailed information for end users &lt;/STRONG&gt;– this web part helps logged-in user quickly find their Microsoft Teams and Microsoft 365 Groups sites/content.&amp;nbsp; For selected site, options to go to site, mail, calendar, or Planner.&amp;nbsp; Match site color theme with one click.&amp;nbsp; Filter by public, private or all Groups/Teams.&amp;nbsp; &amp;nbsp;The main React component is MicrosoftGroups.tsx.&amp;nbsp; &amp;nbsp;A brilliant code walk-through by first time presenter Alison Collins.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;SPFx extension samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-extensions&lt;/A&gt;)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/blob/main/samples/react-command-print" target="_blank" rel="noopener"&gt;Print List Item Command View Set&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/arigunawan3023" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/master/samples/react-send-to-teams" target="_blank" rel="noopener noreferrer"&gt; |&amp;nbsp;@arigunawan3023&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;SPFx web part samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-webparts&lt;/A&gt;)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-teams-membership-updater" target="_blank" rel="noopener"&gt;Teams Membership Updater&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/techienickb" target="_blank" rel="noopener"&gt;Nick Brown&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@techienickb&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-onedrive-finder" target="_blank" rel="noopener"&gt;OneDrive Finder&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/aaclage" target="_blank" rel="noopener"&gt;André Lage&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="861803"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-organization-chart" target="_blank" rel="noopener"&gt;Organization Chart&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/joaojmendes" target="_blank" rel="noopener"&gt;João Mendes&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="442957"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-remote-event-receiver-manager" target="_blank" rel="noopener"&gt;Remote Event Receiver Manager&lt;/A&gt; - &lt;/STRONG&gt;&lt;A href="http://twitter.com/tanddant" target="_blank" rel="noopener"&gt;Dan Toft&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@tanddant&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-groups-teams" target="_blank" rel="noopener"&gt;All Microsoft 365 Groups and Teams&lt;/A&gt; - &lt;/STRONG&gt;Alison Collins and &lt;A href="http://twitter.com/Samc148" target="_blank" rel="noopener"&gt;Sam Collins&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@Samc148&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your great work.&amp;nbsp; Samples are often showcased in Demos.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Agenda items:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Latest updates on SharePoint Framework -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener nofollow noreferrer"&gt;Vesa Juvonen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @vesajuvonen –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=324" target="_self"&gt;5:24&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnPjs Client-Side Libraries -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/jfj1997" target="_self" rel="nofollow noreferrer noopener"&gt;Julie Turner&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Sympraxis Consulting) | @jfj1997 –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=469" target="_self"&gt;7:49&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;CLI for Microsoft 365 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=562" target="_self"&gt;9:22&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Controls -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=627" target="_self"&gt;10:27&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Generator -&amp;nbsp;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=717" target="_self"&gt;11:57&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/bernierh" target="_blank" rel="noopener nofollow noreferrer"&gt;Hugo Bernier&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Tahoe Ninjas) | @bernierh&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/yqz1HF72Guw?t=738" target="_self"&gt;12:18&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Adding support to add video with a text to modern pages with this video banner web part – &lt;A href="http://twitter.com/MohamedDerhalli" target="_blank" rel="noopener"&gt;Mohamed Derhalli&lt;/A&gt; (BDO Canada) | @MohamedDerhalli | Deck&amp;nbsp;– &lt;A href="https://youtu.be/yqz1HF72Guw?t=793" target="_self"&gt;13:13&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Building company stories web part for story experience – &lt;A href="http://twitter.com/luismanez" target="_blank" rel="noopener"&gt;Luis Mañez&lt;/A&gt; (ClearPeople) | @luismanez | Deck&amp;nbsp;– &lt;A href="https://youtu.be/yqz1HF72Guw?t=1119" target="_self"&gt;18:39&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Building react groups and teams web part&amp;nbsp;for aggregating detailed information for end users – Alison Collins &amp;amp; &lt;A href="http://twitter.com/samc148" target="_blank" rel="noopener"&gt;Sam Collins&lt;/A&gt; (Coupled Technology) | @samc148 | Deck – &lt;A href="https://youtu.be/yqz1HF72Guw?t=1779" target="_self"&gt;29:39&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kc5kQ_6Kxc592_s?e=hgy03Y" target="_blank" rel="nofollow noopener noreferrer"&gt;The presentation used for this community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog post - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introducing-react-video-banner-web-part/ba-p/2329002" target="_blank" rel="noopener"&gt;Introducing React Video Banner Web Part&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo - &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-video-banner" target="_blank" rel="noopener"&gt;Video Banner&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog post - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/ba-p/2325128" target="_blank" rel="noopener"&gt;Community sample: Engage your users with SharePoint stories/reels&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo - &lt;A style="background-color: #ffffff;" href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-company-stories" target="_blank" rel="noopener"&gt;Company Stories Webpart&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Alison’s Blog: &amp;nbsp;&lt;A href="https://graphgod.dev/" target="_self"&gt;Graphgod&amp;nbsp;&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo - &lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-groups-teams" target="_blank" rel="noopener"&gt;All Microsoft 365 Groups and Teams with SPFx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Framework - v1.12.1 npm install –g&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/41501" target="_blank" rel="noopener"&gt;@microsoft&lt;/A&gt;/generator-sharepoint@next&lt;/LI&gt;
&lt;LI&gt;Gallery -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 125 with Business Applications MVP guest &lt;A href="http://twitter.com/SandyU" target="_blank" rel="noopener"&gt;Sandy Ussia&lt;/A&gt; (Lightning Tools&amp;nbsp;) | @SandyU | &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-125/ba-p/2318240" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/Microsoft-365-pnp-weekly-episode-125-3rd-of-may-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/blogs/cli-microsoft-365-3/" target="_blank" rel="noopener noreferrer"&gt;CLI for Microsoft 365 v3&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/codetour" target="_blank" rel="noopener noreferrer"&gt;CodeTour&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;Sharing is Caring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/sharing-is-caring&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;Tools -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://microsoft-search.github.io/pnp-modern-search/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnP Modern Search v4&lt;/A&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;&amp;nbsp; |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/pnp-search&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;M365 PnP site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-starter-kit/tree/v2" target="_blank" rel="noopener noreferrer"&gt;SharePoint Starter Kit v2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Blog: "&lt;A href="https://aka.ms/mgtLap" target="_blank" rel="noopener noreferrer"&gt;A Lap Around Microsoft Graph Toolkit" blog series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team model with new community leads&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365-community-docs" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community Content&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(non-Dev docs)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx web part samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx extension samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpjs/" target="_blank" rel="noopener noreferrer"&gt;GitHub PnPjs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Tutorials&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(12 videos)&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Extensions&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(6 videos)&lt;/LI&gt;
&lt;LI&gt;Docs -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/sharepoint/dev/training/training/?wt.mc_id=YT_CCrecording" target="_blank" rel="noopener noreferrer"&gt;Tutorials and training material for SharePoint Development&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-training" target="_blank" rel="noopener noreferrer"&gt;SPFX Training Package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;SPFx Web Parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;SPFx Extensions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-library-components" target="_blank" rel="noopener noreferrer"&gt;SPFx Library Components&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Documentation -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnp.github.io/pnpjs/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnPjs v2 documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevTraining" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer training&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/O365DevProgram" target="_blank" rel="noopener noreferrer"&gt;Office 365 Developer Program&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noreferrer noopener"&gt;Latest documentation on SharePoint Framework&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Found an issue with SharePoint Dev? - please let us know at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-issues" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/spdev-issues&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-property-controls/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable web part property controls&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-controls-react/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable react controls for SharePoint Framework solutions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://dev.office.com/blogs/webcast-reusable-controls-for-your-sharepoint-framework-solutions" target="_blank" rel="noreferrer noopener"&gt;Reusable controls webcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/office365-cli/" target="_blank" rel="noreferrer noopener nofollow"&gt;Office 365 CLI&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/generator-spfx" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx Yeoman Generator&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Extends the out-of-the-box experience with open-source community capabilities&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-uservoice" target="_blank" rel="noreferrer noopener"&gt;SharePoint Dev UserVoice&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for new feature requests&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Other mentioned topics:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-docs/issues" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev issue list&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming calls | Recurrent invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;May 12&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform – &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call – &lt;/STRONG&gt;June 1&lt;SUP&gt;st&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PnP SharePoint Framework Special Interest Group bi-weekly calls are targeted at anyone who is interested in the JavaScript-based development towards Microsoft Teams, SharePoint Online, and also on-premises. SIG calls are used for the following objectives.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SharePoint Framework engineering update from Microsoft&lt;/LI&gt;
&lt;LI&gt;Talk about PnP JavaScript Core libraries&lt;/LI&gt;
&lt;LI&gt;Office 365 CLI Updates&lt;/LI&gt;
&lt;LI&gt;SPFx reusable controls&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Yeoman generator&lt;/LI&gt;
&lt;LI&gt;Share code samples and best practices&lt;/LI&gt;
&lt;LI&gt;Possible engineering asks for the field - input, feedback, and suggestions&lt;/LI&gt;
&lt;LI&gt;Cover any open questions on the client-side development&lt;/LI&gt;
&lt;LI&gt;Demonstrate SharePoint Framework in practice in Microsoft Teams or SharePoint context&lt;/LI&gt;
&lt;LI&gt;You can download a recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noreferrer noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;. Welcome and join the discussion!&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 7th of May 2021&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 15:44:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-6th-of-may-2021/ba-p/2331918</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-07T15:44:53Z</dc:date>
    </item>
    <item>
      <title>Navigate OneDrive data with Microsoft Graph and Mgt-File-List Beta version</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/navigate-onedrive-data-with-microsoft-graph-and-mgt-file-list/ba-p/2296730</link>
      <description>&lt;DIV&gt;
&lt;P&gt;In my process of self learning regarding different technologies such us Azure, SPFX WebPart, React, Microsoft Graph, Node.js, Teams and all other Office 365 services, was surprise to find the current work already made by "&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/" target="_self"&gt;Microsoft Graph Toolkit&lt;/A&gt;" and associated documentation on how to implemented with Microsoft Graph.&lt;/P&gt;
&lt;P&gt;The amount of content and features already develop to integrate multiple platforms are definitely the Key to communicate with Office 365 and became easy to access content without a lot of effort, congrats to all the team.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This sample use SharePoint Online SPFX WebPart with &lt;STRONG&gt;Mgt-File-List and Mgt-File Beta version&lt;/STRONG&gt; control to retrieve Shared Libraries as &lt;STRONG&gt;existing in OneDrive&lt;/STRONG&gt;, navigate between their folders and use filter by file extension in a simple way using Microsoft Graph API Drive and Site.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="inherit"&gt;Below a draw resuming the custom query's made and what control uses to retrieve associated folders and files from &lt;/FONT&gt;different&lt;FONT face="inherit"&gt;&amp;nbsp;locations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MainCalls.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276720i5A62C2F7948D668D/image-size/large?v=v2&amp;amp;px=999" role="button" title="MainCalls.png" alt="MainCalls.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;How the Mgt-File-List Work&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As OneDrive, this control allow to display Shared Files and Folders, for this &lt;STRONG&gt;ItemID (identity of the item to read, can be a folder or a file)&lt;/STRONG&gt; has the main role on how to access content. To facilitate this access the control has multiple properties that allows call to content using different options such us: &lt;STRONG&gt;custom query's&lt;/STRONG&gt;&amp;nbsp;(&lt;STRONG&gt;file-queries) &lt;/STRONG&gt;or&amp;nbsp;pre defined &lt;STRONG&gt;query's (&lt;SPAN class="pl-c1"&gt;insight-type&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;SPAN class="pl-s"&gt;shared&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;)&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;This&amp;nbsp;sample used the parameters &lt;STRONG&gt;SiteID &lt;/STRONG&gt;(SharePoint Online Site&amp;nbsp;ID) and &lt;STRONG&gt;ItemID&lt;/STRONG&gt;&amp;nbsp;it's the ID of the root Library used on site to store documents and control to display files/folders from that Path and navigate between them.&lt;/P&gt;
&lt;P&gt;Solution also uses the property &lt;STRONG&gt;File-List-Query&lt;/STRONG&gt; that allows to search files inside shared Libraries.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;&amp;lt;FileList
        siteId={this._siteID}
        itemId={this._itemID}
&amp;gt;&amp;lt;/FileList&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Where can I found SiteID of a site?&lt;/H4&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Use the&amp;nbsp;&lt;STRONG&gt;Site Graph API with search&lt;/STRONG&gt; query based on hostname to retrieve ID's of sites.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;"https://graph.microsoft.com/v1.0/sites?search=*****.sharepoint&amp;amp;$Select=id"&lt;/LI-CODE&gt;List of Site ID's:&lt;LI-CODE lang="json"&gt;{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites(id)",
    "value": [
        {
            "id": "*******.sharepoint.com,000000-0000-0000-0000-000000,000000-0000-0000-0000-000000"
        },
        {
            "id": "*******.sharepoint.com,000000-0000-0000-0000-000001,000000-0000-0000-0000-000001"
        },
...&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;How can I found the Root Folder ItemID from Site?&lt;/H4&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This can be achieved using the &lt;STRONG&gt;SiteID &lt;/STRONG&gt;from last query and call the drive root from Site.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;https://graph.microsoft.com/v1.0/sites/*****.sharepoint.com,000000-0000-0000-0000-000000,000000-0000-0000-0000-000000/drive/Root?$select=id&lt;/LI-CODE&gt;
&lt;P&gt;This query returns the &lt;STRONG&gt;Item-id&lt;/STRONG&gt; of the root Folder that can be used to display content in Control.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;"id": "01CM5BY6********************************"&lt;/LI-CODE&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4&gt;&lt;STRONG style="font-family: inherit;"&gt;Retrieve OneDrive Root Folder Item-id&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OneDrive is managed differently and there is no need of SiteID just make the following Drive call.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;https://graph.microsoft.com/v1.0/me/drive/root/?$Select=id&lt;/LI-CODE&gt;
&lt;P&gt;PS: This query's can be tested using the following site.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developer.microsoft.com/en-us/graph/graph-explorer" target="_self"&gt;https://developer.microsoft.com/en-us/graph/graph-explorer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Below some additional Mgt-File-List documentation regarding possible options to use.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/specs/mgt-file-list.md" target="_self"&gt;FileList specifications&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/stories/components/fileList.stories.js" target="_self"&gt;FileList Stories&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This main query will allow to fully explore the &lt;STRONG&gt;Mgt-File-List&lt;/STRONG&gt; features that were used in sample "&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder" target="_self"&gt;react-oneDrive-finder&lt;/A&gt;"&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;List of Drives Sites&lt;/LI&gt;
&lt;LI&gt;Content List and Breadcrumb&lt;/LI&gt;
&lt;LI&gt;Filter of Items&lt;/LI&gt;
&lt;LI&gt;Filter by file extension&lt;/LI&gt;
&lt;LI&gt;Custom Theme styles&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SampleFileList.png" style="width: 664px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278794i731EF796D5A52971/image-size/large?v=v2&amp;amp;px=999" role="button" title="SampleFileList.png" alt="SampleFileList.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Mgt provider and SharePointProvider&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's important that permissions are given from Microsoft Graph to SPFX WebPart that Mgt-File-List could make the necessary query's.&lt;/P&gt;
&lt;P&gt;Access to config/package-solution.json and ensure the following permissions are given on SharePoint package.&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;    "webApiPermissionRequests": [{  
      "resource": "Microsoft Graph",  
      "scope": "Files.Read"  
  }, {  
      "resource": "Microsoft Graph",  
      "scope": "Files.Read.All"  
  }, {  
      "resource": "Microsoft Graph",  
      "scope": "Sites.Read.All"  
  }] &lt;/LI-CODE&gt;
&lt;P&gt;Access to your code into &lt;STRONG&gt;BaseClientSideWebPart&lt;/STRONG&gt; area and ensure SharePoint Provider is loaded with the current security&amp;nbsp; access that&amp;nbsp;Mgt-File-List control and custom graph query's could access to Microsoft Graph content.&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;import { Providers, SharePointProvider } from '@microsoft/mgt';
...
export default class OneDriveFinderWebPart extends BaseClientSideWebPart&amp;lt;IOneDriveFinderWebPartProps&amp;gt; {
  protected onInit() {
    Providers.globalProvider = new SharePointProvider(this.context);
    return super.onInit();
  }
...
&lt;/LI-CODE&gt;
&lt;P&gt;After defining the provider you should be able to include control and use parameter's id without permissions errors.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;import { FileList } from '@microsoft/mgt-react';
...
&amp;lt;FileList
              siteId={this._siteID}
              itemId={this._itemID}
              itemClick={this.manageFolder}
            &amp;gt;&amp;lt;/FileList&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Breadcrumb Navigation&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's also possible to use Breadcrumb to include the path of folders where user is situated in the Library.&lt;/P&gt;
&lt;P&gt;This can be achieve capturing the &lt;STRONG&gt;itemID&lt;/STRONG&gt; of Folder listed in&amp;nbsp;&lt;STRONG&gt;Mgt-File-List, &lt;/STRONG&gt;using the event "&lt;STRONG&gt;itemClick={(e)=&amp;gt;{ console.log(e.details);}&lt;/STRONG&gt;".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;More information can be found on Mgt-File-List &lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/stories/components/fileList.stories.js" target="_self"&gt;documentation&lt;/A&gt; or by sample "&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder" target="_self"&gt;react-onedrive-finder&lt;/A&gt;".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Filtering file extensions&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;Mgt-File-List property &lt;STRONG&gt;fileExtensions&lt;/STRONG&gt; allows to filter documents by file extension, this can be very handy when dealing with large amounts of documents.&lt;/P&gt;
&lt;P&gt;Code below shows how can be implemented a multiple file extensions filter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="html"&gt; const checkFileExtensions = (event: React.FormEvent&amp;lt;HTMLDivElement&amp;gt;, selectedOption: IDropdownOption) =&amp;gt; {
      let fileExtensions: string[] = [];
      if (selectedOption.selected == true) {
        fileExtensions.push(selectedOption.key.toString());
        fileExtensions = [...fileExtensions,...this.state.fileExtensions];
      } else {
        fileExtensions = this.state.fileExtensions.filter(e =&amp;gt; e !== selectedOption.key );
      }
      this.setState({
        fileExtensions: [...fileExtensions]
      });
    };
.....
&amp;lt;Dropdown
	placeholder="Select"
	label="Select file extensions"
    multiSelect
    options={[
		  { key: "", text: 'folder' },
		  { key: "docx", text: 'docx' },
		  { key: "xlsx", text: 'xlsx' },
		  { key: "pptx", text: "pptx" },
		  { key: "one", text: "one" },
		  { key: "pdf", text: "pdf" },
		  { key: "txt", text: "txt" },
		  { key: "jpg", text: "jpg" },
		  { key: "gif", text: "gif" },
		  { key: "png", text: "png" },
		]}
	onChange={checkFileExtensions}
	styles={dropdownFilterStyles}
/&amp;gt;
...
&amp;lt;FileList
	fileExtensions={this._fileExtensions}
	...
/&amp;gt;&amp;lt;/FileList/&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Styling with Mgt-File-List&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Mgt-File-List includes Light and Dark theme but you can also provide your custom styles.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;&amp;lt;FileList
    className="mgt-dark"
	...
&amp;gt;&amp;lt;/FileList&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;To create your own custom style look and feel you can use css elements to customize Mgt-File-List.&lt;/P&gt;
&lt;P&gt;Below some of the options available and shared in &lt;A style="background-color: #ffffff;" href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/stories/components/fileList.stories.js" target="_self"&gt;FileList Stories&lt;/A&gt; of the Beta Version.&lt;/P&gt;
&lt;LI-CODE lang="css"&gt;.mgtfilelist {
  --file-list-background-color: #eff6fc;
  --file-item-background-color--hover: #deecf9;
  --file-item-background-color--active: #c7e0f4;
  --file-list-border: 0px solid #white;
  --file-list-box-shadow: none;
  --file-list-padding: 0px;
  --file-list-margin: 0;
  --file-item-border-radius: 0px;
  --file-item-margin: 0px 0px;
  --file-item-border-top: 1px solid #dddddd;
  --file-item-border-left: 1px solid #dddddd;
  --file-item-border-right: 1px solid #dddddd;
  --file-item-border-bottom: 1px solid #dddddd;
  --show-more-button-background-color: #fef8dd;
  --show-more-button-background-color--hover: #ffe7c7;
  --show-more-button-font-size: 14px;
  --show-more-button-padding: 16px;
  --show-more-button-border-bottom-right-radius: 12px;
  --show-more-button-border-bottom-left-radius: 12px;
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Search in Shared Libraries&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The control by the property &lt;STRONG&gt;"fileListQuery"&lt;/STRONG&gt; also allow the usage Graph Drive Search method to find Items in the Drive. Below an sample on how you could use a dynamic to search items in Drives.&lt;/P&gt;
&lt;LI-CODE lang="html"&gt;//Make query on Shared Library or OneDrive Library 
const checkSearchDrive = (SearchQuery: string) =&amp;gt; {
      if (this.state.siteID != "") {
        this.setState({
          searchDrive: "/sites/" + this.state.siteID + "/drive/root/search(q='" + SearchQuery + "')"
        });
      } else {
        this.setState({
          searchDrive: "/me/drive/root/search(q='" + SearchQuery + "')"
        });
      }
    };
	
//Search Box for Shared Library 
&amp;lt;SearchBox placeholder="Search Drive" onSearch={checkSearchDrive} onClear={checkClear} /&amp;gt;

//Display search content
{(this.state.searchDrive != "") &amp;amp;&amp;amp;
    &amp;lt;FileList
    fileListQuery={searchDrive}
	&amp;gt;&amp;lt;/FileList&amp;gt;
}

&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Final sample solution&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below the final result of the configuration of &lt;STRONG&gt;Mgt-File-List&lt;/STRONG&gt; react controls:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OneDrivefinderSample3.gif" style="width: 758px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278825iCE51537904B9BDD2/image-dimensions/758x465?v=v2" width="758" height="465" role="button" title="OneDrivefinderSample3.gif" alt="OneDrivefinderSample3.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Solution can be found in the&amp;nbsp;&lt;EM&gt;SharePoint Framework Client-Side Web Part Samples&lt;/EM&gt;&amp;nbsp;- &lt;STRONG&gt;OneDrive finder&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder" target="_self"&gt;https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;PS: Solution will be updated with release version when&amp;nbsp;&lt;STRONG&gt;Mgt-File-List&lt;/STRONG&gt; is available by the&amp;nbsp;Microsoft Graph Toolkit.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;How to start with Microsoft Graph Toolkit and SharePoint Online&lt;/H3&gt;
&lt;P&gt;There is a very good articles on how to start for example,&amp;nbsp;&lt;A href="https://docs.microsoft.com/en-us/graph/toolkit/get-started/build-a-sharepoint-web-part" target="_self"&gt;Build a SharePoint web part with the Microsoft Graph Toolkit&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;To use the &lt;STRONG&gt;Mgt-File-List control in Beta version&lt;/STRONG&gt; please use the following packages.&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;npm i &lt;LI-USER uid="41501" login="microsoft"&gt;&lt;/LI-USER&gt;/mgt@next
npm i &lt;LI-USER uid="41501" login="microsoft"&gt;&lt;/LI-USER&gt;/mgt-react@next&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;PS: The Microsoft Graph Toolkit Team made available access to Beta version of Mgt-File-List and react. Final version package can be monitor and accessible in&amp;nbsp;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit" target="_self"&gt;microsoft-graph-toolkit.&lt;/A&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will hope this article could help you onboard when the &lt;STRONG&gt;Mgt-File-List&lt;/STRONG&gt; control becomes officially available.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Support Documentation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/toolkit/get-started/build-a-sharepoint-web-part" target="_self"&gt;Build a SharePoint web part with the Microsoft Graph Toolkit&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder" target="_self"&gt;PnP SPFX Samples "One Drive finder"&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit" target="_self"&gt;Microsoft Graph Toolkit&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/onedrive-concept-overview" target="_self"&gt;OneDrive file storage API overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0" target="_self"&gt;Working with files in Microsoft Graph&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/resources/sharepoint?view=graph-rest-1.0" target="_self"&gt;Working with SharePoint sites in Microsoft Graph&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/graph/graph-explorer" target="_self"&gt;Graph Explorer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/specs/mgt-file-list.md" target="_self"&gt;FileList specifications&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoftgraph/microsoft-graph-toolkit/blob/main/stories/components/fileList.stories.js" target="_self"&gt;FileList Stories&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 06 May 2021 21:36:43 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/navigate-onedrive-data-with-microsoft-graph-and-mgt-file-list/ba-p/2296730</guid>
      <dc:creator>aaclage</dc:creator>
      <dc:date>2021-05-06T21:36:43Z</dc:date>
    </item>
    <item>
      <title>Introducing React Video Banner Web Part</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introducing-react-video-banner-web-part/ba-p/2329002</link>
      <description>&lt;P&gt;In this post, we will see how easy it is to build a cool looking video banner web part using SPFx with the help of PnP reusable property pane controls. First of all, the requirements:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The web part should look like a banner on top of pages, with a video playing&lt;/LI&gt;
&lt;LI&gt;Ability to change the overlay text on this video&lt;/LI&gt;
&lt;LI&gt;Control the banner area size&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is what the &lt;A title="PnP React Video Banner web part" href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-video-banner" target="_self"&gt;PnP React Video Banner web part&lt;/A&gt; offers, once you add the web part to your page, you will be able to select a video (using the file picker control from the PnP Reusable Property Pane Controls), you will be able to modify the text overlay and its color, control the height of the video area and lastly (at least for now) modify the brightness:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_0-1620249069072.png" style="width: 370px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278588i6FB5C67745410F64/image-dimensions/370x949?v=v2" width="370" height="949" role="button" title="derhallim_0-1620249069072.png" alt="derhallim_0-1620249069072.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;These settings would provide you with a web part that looks like this:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_4-1620249695924.png" style="width: 711px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278593i48E5C33042DFF8F7/image-dimensions/711x328?v=v2" width="711" height="328" role="button" title="derhallim_4-1620249695924.png" alt="derhallim_4-1620249695924.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now let's have a look at the code itself which is pretty simple. The file structure can be seen below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_1-1620252146944.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278611i8ECF721FD5D79709/image-size/medium?v=v2&amp;amp;px=400" role="button" title="derhallim_1-1620252146944.png" alt="derhallim_1-1620252146944.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The web part has only one functional component named: VideoBackground that accepts the following properties as defined in the IVideoBackgroundProps.ts file: wpTitle (string), videoUrl (string), labelColor (string), brightness (number), height&amp;nbsp;(number).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_2-1620252225550.png" style="width: 547px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278613iD29EFFD38175FB17/image-dimensions/547x213?v=v2" width="547" height="213" role="button" title="derhallim_2-1620252225550.png" alt="derhallim_2-1620252225550.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The video url and the label color are set with the help of PnP Property Pane Controls as shown below:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_0-1620252048668.png" style="width: 598px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278610i7A6449E9A53A3572/image-dimensions/598x193?v=v2" width="598" height="193" role="button" title="derhallim_0-1620252048668.png" alt="derhallim_0-1620252048668.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once the properties are setup on the VideoBackgroundWebPart.ts file, we pass them to the VideoBackground.tsx component.&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_6-1620252844193.png" style="width: 618px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278618i283DB0E0FD026BF6/image-dimensions/618x231?v=v2" width="618" height="231" role="button" title="derhallim_6-1620252844193.png" alt="derhallim_6-1620252844193.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All good so far? Now in our functional component, we have an HTML video control where the source of the video is set to the videoUrl prop we pass and we play with the CSS filter prop to set the brightness by adding the value concatenated with % as we need a brightness percentage:&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_3-1620252272134.png" style="width: 614px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278614i077CE3A59A69450A/image-dimensions/614x433?v=v2" width="614" height="433" role="button" title="derhallim_3-1620252272134.png" alt="derhallim_3-1620252272134.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notice the ref attribute on the video control? The reason we have it is that we want to refresh the video whenever we change the video url. By default, when changing the properties, all values will be reflected except for the video url, it needs to be explicitly refreshed on the video control. So we get a reference to the video control using React's ref, where we define the "vRef" value on the functional component itself.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We then use React's useEffect to check if the video url has changed or not, if it has changed, we call the load() function on the video reference itself:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV class="lia-align-center"&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="derhallim_4-1620252332115.png" style="width: 573px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278615iF2B5BE371816B5AB/image-dimensions/573x179?v=v2" width="573" height="179" role="button" title="derhallim_4-1620252332115.png" alt="derhallim_4-1620252332115.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Some notable points about the CSS used is the div that's available just before the video control, it's aligned using an absolute position with a display of flex to position the h1 element inside of it. The video element itself has a CSS property &lt;EM&gt;object-fit: cover.&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;As demonstrated, with SPFx and the help of PnP Reusable Property Pane controls, building web parts using modern development techniques is very easy and isn't time consuming as some may think! Source code is available on Github along with other awesome web parts by the community, for more information about all the PnP offerings, checkout&amp;nbsp;&lt;A href="https://aka.ms/m365pnp" target="_blank"&gt;https://aka.ms/m365pnp&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;#SharingIsCaring&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 06 May 2021 11:18:26 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introducing-react-video-banner-web-part/ba-p/2329002</guid>
      <dc:creator>derhallim</dc:creator>
      <dc:date>2021-05-06T11:18:26Z</dc:date>
    </item>
    <item>
      <title>Using Power Automate And Graph API To Manage External Access To Teams</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/using-power-automate-and-graph-api-to-manage-external-access-to/ba-p/2330775</link>
      <description>&lt;P&gt;Matt Collins Jones and I presented&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://d365uguk-22-apr-2021.sessionize.com/session/244458" target="_blank" rel="noopener"&gt;API’s – The most powerful tool, anyone can use!&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for D365 UG and Swiss Power Saturday recently and I thought it would be good to share the Cloud Flow I created to automate the onboarding of external users to a Microsoft Team.&lt;/P&gt;
&lt;P&gt;This is usually an admin driven activity – A team owner will have to type in the email address for each guest they want to add, rather than something you can push to external users and allow them to request access.&lt;/P&gt;
&lt;P&gt;By using the Graph API via a Custom Connector, Microsoft Forms and Power Automate, we are able to realise this quickly and save a lot of time and effort in the manual process.&lt;/P&gt;
&lt;P&gt;Also, I have been lucky to have this solution accepted as part of the samples in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnp.github.io/" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://pnp.github.io/"&gt;Microsoft Patterns And Practices&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;initiative, so the Flow, Custom Connector and implementation instructions are available in GitHub&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/pnp/powerautomate-samples/tree/main/samples/teams-invites-via-graph-api" target="_blank" rel="noopener noreferrer" data-type="URL" data-id="https://github.com/pnp/powerautomate-samples"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Getting Hands-On With Graph&lt;/H2&gt;
&lt;P&gt;The main part of this flow is numerous calls to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/overview" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://docs.microsoft.com/en-us/graph/overview"&gt;Graph API&lt;/A&gt;. The Graph API is Microsoft’s standard endpoint to expose and interact with data relevant to your tenant. It includes Microsoft 365 (such as Teams, Exchange, SharePoint, Workspace Analytics), Enterprise and Mobility and even Windows 10 activities and devices. It really should be seen as a single stop shop for anything and everything in your tenant. The only thing it doesn’t expose is D365 data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/connectors/microsoftgraphsecurity/" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://docs.microsoft.com/en-us/connectors/microsoftgraphsecurity/"&gt;Graph connector&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;already available in Power Automate, but it is very limited to Security considerations. Thankfully, the rest of the Graph API abilities are available, but you have to go via a custom connector. You could call these directly via an HTTP request action, but by wrapping the Graph API in a connector, you are enabling other members of your organisation to re-use the connector and security you establish.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Microsoft also allows you to “play” with the Graph API as well, via the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.microsoft.com/en-us/graph/graph-explorer" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://developer.microsoft.com/en-us/graph/graph-explorer"&gt;Graph Explorer&lt;/A&gt;. This web interface shows you all the sample calls you can make and also what permissions you require to call it and allows you to set up a call without using Power Automate or configuring a connector. It really should be the starting point for any Graph Customer Connector.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_0-1620296690001.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278720iE6EF5EC2AD373D22/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_0-1620296690001.png" alt="LinkeD365_0-1620296690001.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;If things go wrong, it is usually around the permissions. Within the Graph Explorer you can consent to these extra permissions on the fly, but more importantly, tells you what you need to configure in the permissions of your App registration to allow your connector the same access.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_1-1620296689997.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278721i3E87D2001F9D266F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_1-1620296689997.png" alt="LinkeD365_1-1620296689997.png" /&gt;&lt;/span&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="Granting-Permissions"&gt;Granting Permissions&lt;/H2&gt;
&lt;P&gt;Now that we understand what permissions that are needed to get at the actions required, let’s jump in and create an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app"&gt;Azure App Registration&lt;/A&gt;. This allows you to grant rights to a particular application, which presents a client secret and App ID as part of the request. By doing this registration, you establish trust between your app (Custom Connector in our case) and your tenant.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Navigate to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aad.portal.azure.com/" target="_blank" rel="noreferrer noopener"&gt;https://aad.portal.azure.com&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and log in. Select Azure Active Directory then App registrations. Select New, give it an appropriate name then hit Register.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the next screen, record the Application Id, going to need it later. On the left, select Certificates &amp;amp; secrets&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_2-1620296727206.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278723i33D3954CC917EE20/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_2-1620296727206.png" alt="LinkeD365_2-1620296727206.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Select New client secret give it a name &amp;amp; expiry date and select Save.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_3-1620296726932.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278722i17C94A6316C64A72/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_3-1620296726932.png" alt="LinkeD365_3-1620296726932.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Ensure you copy the Value here, you will only be able to see this for a short while, if you navigate away it will be gone. Not a big deal, just recreate the client secret, but you will need it later. Now select API permissions. This will list what permissions this registration has, and by inference, the caller using the client secret/application id.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Select the Add a permission button.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_4-1620296727532.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278724i9E666341ADBF0C54/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_4-1620296727532.png" alt="LinkeD365_4-1620296727532.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;This presents a choice of which API to expose. The first on the list is Microsoft Graph, the one we want.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_5-1620296727260.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278725i65C0C81ACBD86229/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_5-1620296727260.png" alt="LinkeD365_5-1620296727260.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Select Delegated Permissions (Custom connectors doesn't support Application permissions yet, will run in the context of the person who runs the flow, so use an admin/system account) then type in the permission you want, listed here.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Directory.ReadWrite.All&lt;/LI&gt;
&lt;LI&gt;User.Invite.All&lt;/LI&gt;
&lt;LI&gt;User.ReadWrite.All&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_6-1620296727107.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278726iA101607BA2412A4B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_6-1620296727107.png" alt="LinkeD365_6-1620296727107.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Select Add Permissions to return you to the Configured permissions screen, then select Grant Admin consent button. This shortcuts and pre-approves the app.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Leave this tab open and let’s go and define our custom connector.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Defining The Custom Connector&lt;/H2&gt;
&lt;P&gt;Jan Bakker has done an excellent job of walking you through this,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://powerusers.microsoft.com/t5/Power-Automate-Community-Blog/Build-a-custom-connector-for-Microsoft-Graph-API/ba-p/647492" target="_blank" rel="noreferrer noopener" data-type="URL" data-id="https://powerusers.microsoft.com/t5/Power-Automate-Community-Blog/Build-a-custom-connector-for-Microsoft-Graph-API/ba-p/647492"&gt;here&lt;/A&gt;. His article goes into a lot of detail, so I will just take you through what is needed for this project.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In make.powerapps.com, select the appropriate environment and chose Custom Connectors under Data. Then select New custom connector. You can import from various sources, but we want to create from blank, give it a name then fill out the next page.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_7-1620296727214.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278727iB9538CB3C93155D7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_7-1620296727214.png" alt="LinkeD365_7-1620296727214.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;On the next screen, there are four tabs, which we need to step through. First the General Tab.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large is-resized"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_8-1620296727082.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278730i784160EBB968FE0A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_8-1620296727082.png" alt="LinkeD365_8-1620296727082.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Other stuff is nice to have and you&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;should&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;document your work. Ensure Scheme is HTTPS and Host/Base URL are populated.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Host – graph.microsoft.com&lt;/LI&gt;
&lt;LI&gt;Base URL – /v1.0&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Select the Security Tab next, Authentication type is OAuth 2.0. You should be presented with the below screen.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_9-1620296727183.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278728i3B1CBC4AFF3283AB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_9-1620296727183.png" alt="LinkeD365_9-1620296727183.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Now, this is where we need to use the values you saved (you did save them?) when you were registering your app up&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://linked365.blog/2021/05/06/using-power-automate-and-graph-api-to-manage-external-access-to-teams/#Granting-Permissions" target="_blank" rel="noopener" data-type="internal" data-id="#Granting-Permissions"&gt;here&lt;/A&gt;. Client Id is populated with the Application (client) ID, the Client secret is populated with the Value from the Client Secret grid. Login URL will be populated for you. The Resource URL value should be &lt;A href="https://graph.microsoft.com.Select" target="_blank" rel="noopener"&gt;https://graph.microsoft.com.Select&lt;/A&gt; Create Connector now, as you need the Redirect URL, created when you create the connector to put back into your App registration to complete the security process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_10-1620296727075.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278729i2177D603AC6DB247/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_10-1620296727075.png" alt="LinkeD365_10-1620296727075.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;I&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;think&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that this is now standard, but just in case, copy the Redirect URL and go back to your App Registration in Azure AD. Click on the link highlighted.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_11-1620296727170.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278732i946DB0EABD8A40CC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_11-1620296727170.png" alt="LinkeD365_11-1620296727170.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Select Add a platform then chose Web. Enter the Redirect URL from the Custom Connector. Now we are ready to define the actions for our connector.&lt;/P&gt;
&lt;H3&gt;Creating the Actions&lt;/H3&gt;
&lt;P&gt;For our flow, we need 3 actions, Get the owners of a team, Get a user and Invite a User. This is where Graph Explorer and Postman help. You need to establish what you are sending and what you expect back for each action. For example, lets walk through the Get Owners of a team.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Select New Action and Populate General section. The Operation ID needs to be unique and is what appears within Power Automate when you select it.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_12-1620296727067.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278731i12760317B955FB81/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_12-1620296727067.png" alt="LinkeD365_12-1620296727067.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;I usually use the same for each, but be creative and descriptive. Select Import from sample then use the url below as the URL and select Get as the Verb.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;URL – &lt;A href="https://graph.microsoft.com/v1.0/groups/{teamId}/owners" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/groups/{teamId}/owners&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_13-1620296727114.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278733i2CC688EEC790F524/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_13-1620296727114.png" alt="LinkeD365_13-1620296727114.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;By placing teamid in curly brackets { } you denote to the custom connector you want to use a parameter in that URL. You can call &lt;A href="https://graph.microsoft.com/v1.0/groups/{teamId" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/groups/{teamId&lt;/A&gt;} (without the /owners) but that will return the detail from the group. In this I want get associated data, hence the /owners.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Select Import. You are returned to the definition screen, where we can see that the request has been populated for us.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_14-1620296727100.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278734iF6F5147136A1897F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_14-1620296727100.png" alt="LinkeD365_14-1620296727100.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;We are ready to test our Get Owners now. Update the connector once more then head over to the Test tab. You will have to create a connection if not already done, which prompts you to establish who you are running the connector under (only for testing). Then supply a team id. These can be found by using Graph Explorer to find all teams. Hit the Test operation and if everything is working you will get a 200 response with some JSON in a body showing you all the information about the owners.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_15-1620296727218.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278735iC11272B604C84DE8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_15-1620296727218.png" alt="LinkeD365_15-1620296727218.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;To just define the others&lt;/P&gt;
&lt;H4&gt;Get User&lt;/H4&gt;
&lt;P&gt;Verb: Get, URL: &lt;A href="https://graph.microsoft.com/v1.0/users?$filter=" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/users?$filter=&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;Invite User&lt;/H4&gt;
&lt;P&gt;Verb: Put, URL: &lt;A href="https://graph.microsoft.com/v1.0/invitations" target="_blank" rel="noopener"&gt;https://graph.microsoft.com/v1.0/invitations&lt;/A&gt;, Body is below, as you need to define a new invite, with the required parameters. The data doesn’t matter, just the parameters that you need to pass.&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "invitedUserEmailAddress": "emailaddress",
    "inviteRedirectUrl": "https://myapp.contoso.com",
    "invitedUserDisplayName": "Testy McTest",
    "sendInvitationMessage": true
}&lt;/LI-CODE&gt;
&lt;P&gt;Make sure you test all your actions and lets move on to the Form.&lt;/P&gt;
&lt;H2&gt;Microsoft Form To Capture Information&lt;/H2&gt;
&lt;P&gt;Not going to dwell here, as others are doing a much better job at describing Forms. Basically, a simple form to define First and Last name, the email address and a choice field to define which team the user wants access to.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_16-1620296727638.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278736iF5AABAE9C3D7BBF8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_16-1620296727638.png" alt="LinkeD365_16-1620296727638.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;The teams list will have to be maintained to those that you want the public to be able to request access to.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Finally, lets take a look at the flow.&lt;/P&gt;
&lt;H2&gt;Power Automate Definition&lt;/H2&gt;
&lt;P&gt;This Flow is triggered by a new response being submitted against the Form defined above. Next, get the response details.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_17-1620296727108.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278737i7F18D99AAA7E5490/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_17-1620296727108.png" alt="LinkeD365_17-1620296727108.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Next, retrieve all the Teams in your environment. This will return a JSON object which defines an array of Team definitions. We need to filter that to the one the user selected so that we can get the team id.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_18-1620296726929.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278739i5E65D6B9EE1F5D98/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_18-1620296726929.png" alt="LinkeD365_18-1620296726929.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;To do this, I use the Filter Array action, pass in the output from the List Teams and ensure we select where team Name is equal to the team selected (the Which Team? field in my case).&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_19-1620296726827.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278738i472750509E2B0643/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_19-1620296726827.png" alt="LinkeD365_19-1620296726827.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Next, is a compose statement. I do that just to simplify the way the flow works, as the return of filter array is an array, and I just want the first one.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_20-1620296726837.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278740i08DF731CA5EF6648/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_20-1620296726837.png" alt="LinkeD365_20-1620296726837.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;LI-CODE lang="json"&gt;body('Filter_array')[0]?['id']&lt;/LI-CODE&gt;
&lt;P&gt;Next, lets get the Owners of the team selected, using the Id just retrieved. This is the first time using the Custom Connector, it is available under the Custom Tab.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_21-1620296726920.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278741iA891B0D0C5FFEADE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_21-1620296726920.png" alt="LinkeD365_21-1620296726920.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Selecting the connector will show the actions or triggers available.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_22-1620296726951.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278742iA347FA871C4BB576/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_22-1620296726951.png" alt="LinkeD365_22-1620296726951.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;The parameters are those that were defined in the Custom connector, passing in the output from the compose above.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_23-1620296726812.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278743iC144E51B4C93AB12/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_23-1620296726812.png" alt="LinkeD365_23-1620296726812.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Now, the response back from Get Owners is a JSON object, so next, Parse the JSON so there is a list of JSON objects for the flow to use. All that is needed in the approval that comes next is the email address(es) of the return from the owners call. But the approval needs a semi-colon separated list of emails. To achieve this, firstly use a Select to just return the email address from the JSON object, then join the output to that with a semi colon.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_24-1620296727149.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278744iAFFCE77F8C1CDB17/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_24-1620296727149.png" alt="LinkeD365_24-1620296727149.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Next, start an approval. This is populated to let the owner know who has asked for access to the team and which team.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_25-1620296726984.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278745i9D5BBBB41CFEFFBF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_25-1620296726984.png" alt="LinkeD365_25-1620296726984.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;Check whether the response is positive. If this was for production, I would probably send an email to the requesting user to let them know that they were denied access. You could also use the response written in the rejection.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_26-1620296726933.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278746i6FCB1C1D739F03C4/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_26-1620296726933.png" alt="LinkeD365_26-1620296726933.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;In the Yes path, call the Custom connector again to check if the user is already a part of your organisation as a guest user. As the parameter is expecting a query, use the expression below&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_27-1620296726901.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278748i62EBF6746B590C70/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_27-1620296726901.png" alt="LinkeD365_27-1620296726901.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;mail eq ‘Email Parameter from the Form response’&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;mail eq 'Email Parameter from the Form response'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next, check the length of the returned object from the custom connector. This basically checks if the user already belongs to your environment.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_28-1620296726899.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278747iDE1C834645FBE6A0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_28-1620296726899.png" alt="LinkeD365_28-1620296726899.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;PRE class="wp-block-code"&gt;&lt;CODE class=""&gt;length(outputs('GetUser')?['body/value'])&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If there is a value in the return, use the return to invite the user to the team.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_29-1620296726913.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278749iFB862B74F014B55D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_29-1620296726913.png" alt="LinkeD365_29-1620296726913.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;The User id is returned by using the expression below&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;body('GetUser')?['value'][0]?['id']&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On the negative side, firstly invite the user to your organisation by using the final action of the custom connector.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_30-1620296727013.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278751i0CF826AB0B282F23/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_30-1620296727013.png" alt="LinkeD365_30-1620296727013.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;And finally, use the response from your custom connector, the invited user to the team.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LinkeD365_31-1620296727008.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278750i582EA815223E2E4E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LinkeD365_31-1620296727008.png" alt="LinkeD365_31-1620296727008.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;That's it! There is a lot of configuration here, but you can see how you can extend your usage of Power Automate to automate a function usually confined to manual work by the team owner.&lt;BR /&gt;&lt;BR /&gt;This post was originally published on &lt;A href="https://linked365.blog/2021/05/06/using-power-automate-and-graph-api-to-manage-external-access-to-teams/" target="_blank" rel="noopener"&gt;LinkeD365.blog&lt;/A&gt;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 06 May 2021 10:50:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/using-power-automate-and-graph-api-to-manage-external-access-to/ba-p/2330775</guid>
      <dc:creator>LinkeD365</dc:creator>
      <dc:date>2021-05-06T10:50:32Z</dc:date>
    </item>
    <item>
      <title>Simple reminders for any Teams Channel or Chat message</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/simple-reminders-for-any-teams-channel-or-chat-message/ba-p/2319963</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="luis-villasmil-mlVbMbxfWI4-unsplash.jpg" style="width: 320px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278425iB9EB083D2909DA44/image-size/medium?v=v2&amp;amp;px=400" role="button" title="luis-villasmil-mlVbMbxfWI4-unsplash.jpg" alt="Forgetting to take action on a message, or where that message was?" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Forgetting to take action on a message, or where that message was?&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;For busy people who have their lives invested in Microsoft Teams, whether collaborating with colleagues in Team Channels or using the Chat functionality, it's easy to forget:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;To take action or reply to a message&lt;/LI&gt;
&lt;LI&gt;The location of where that message is! Is it in a Chat, or a Team Channel? How far up do I have to scroll?&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Outlook's solution: a well trodden path for many&lt;/H3&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Outlook Flags.png" style="width: 416px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278434i8C6128E446199B78/image-size/large?v=v2&amp;amp;px=999" role="button" title="Outlook Flags.png" alt="Flags in Outlook have been the bridge to emails and task management" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Flags in Outlook have been the bridge to emails and task management&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Outlook, there are "flags" which can be set to remind yourself to take action for a particular email.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, this functionality is missing from Teams. Even if you are a well seasoned&amp;nbsp;&lt;STRONG&gt;ToDo&lt;/STRONG&gt; and &lt;STRONG&gt;Planner&lt;/STRONG&gt;&amp;nbsp;user, you would still have to use the &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Copy Link&lt;/SAMP&gt;&lt;/FONT&gt; feature and paste that into the ToDo/Planner task, which can be quite tedious.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Copy Link.png" style="width: 332px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278436iCFC4C74630294E5B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Copy Link.png" alt="Copy link to a Teams Channel message" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Copy link to a Teams Channel message&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Plus I entering a phase where I was forgetting that I had to respond to messages. Sometimes I ended up talking to Google (I use an Android phone, so you might be talking to Siri) to remind myself, but that still doesn't take you straight back to the original message with a single click - you still had to do a lot of navigation before you arrived at the message you were supposed to take action on.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My poor colleagues were also getting flooded with Teams messages. If they were diligent and cleared their activity bell notifications, they would potentially lose track of a visual reminder that they need to prompt them to action on a message.&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;STRONG&gt;So what if you just needed a simple and effective visual reminder, either at some hours/minutes down the track or at a specific time?&lt;/STRONG&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;H1&gt;A Flow, some delay, and four Adaptive Cards&lt;/H1&gt;
&lt;P&gt;In comes &lt;STRONG&gt;Power Automate&lt;/STRONG&gt;&amp;nbsp;with a few adaptive cards to the rescue - this flow will generate a reminder via the &lt;STRONG&gt;Flow bot&lt;/STRONG&gt;&amp;nbsp;at a certain number of &lt;EM&gt;hours/minutes&lt;/EM&gt;, or at a &lt;EM&gt;specified time &lt;/EM&gt;to remind you to take action for a message!&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Reminder_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278420i19AA07F2E897A9DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="Reminder_annotated.png" alt="The reminder card we wish to send ourselves" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The reminder card we wish to send ourselves&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The beauty of this Flow is that it will give you &lt;STRONG&gt;one-click access&lt;/STRONG&gt; back &lt;STRONG&gt;to the conversation thread&lt;/STRONG&gt; within the team, or &lt;STRONG&gt;back to the chat with a person&lt;/STRONG&gt; or a group of people.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So in the blog post below, the Flow will be explained in greater detail, and some caveats highlighted for anyone wanting to pursue this quick reminder flow!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; this was partially inspired by Microsoft's own template that you can create directly from Power Automate, but extends it to bring more flexibility to the reminder time, and also bring a far more visual experience via adaptive cards rather than just the Flow bot.&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Inspired by Microsoft&lt;/H2&gt;
&lt;P&gt;When I first saw the template provided by Microsoft, I thought: this is nice, but it's a bit too elementary with the fixed timeframes from the choice radio buttons:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Followup.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277710i323F6DDF1054A4E9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Followup.png" alt="Microsoft's own sample Flow" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Microsoft's own sample Flow&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="MS.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277716i7B21B6E5B3E94420/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MS.png" alt="...is perhaps a bit too restrictive" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;...is perhaps a bit too restrictive&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, that was definitely a starting point. The sample Flow used an adaptive card (with some &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Input.Choice&lt;/SAMP&gt;&lt;/FONT&gt; options) and a &lt;STRONG&gt;Delay&lt;/STRONG&gt; action. Why not take this further?&lt;/P&gt;
&lt;H2&gt;Ingredients&lt;/H2&gt;
&lt;P&gt;Here's the "ingredients" needed for the flow to allow ourselves to set a reminder at a particular hour/minute offset from now OR at a specific time:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;One to &lt;STRONG&gt;get user input&lt;/STRONG&gt; regarding when they'd like to be reminded&lt;BR /&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Set Reminder.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278445i100786D26BDBAFDB/image-size/large?v=v2&amp;amp;px=999" role="button" title="Set Reminder.png" alt="The reminder setting card can accept an hour/minute offset or absolute time as input" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The reminder setting card can accept an hour/minute offset or absolute time as input&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;One for the &lt;STRONG&gt;reminder&lt;/STRONG&gt; itself:&lt;BR /&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Reminder.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278446i0CD3CA1BE0661160/image-size/large?v=v2&amp;amp;px=999" role="button" title="Reminder.png" alt="The reminder card itself, with links to the original message and chat with message author" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The reminder card itself, with links to the original message and chat with message author&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Two other cards which are for &lt;STRONG&gt;catching errors&lt;/STRONG&gt;:&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Error Cards.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278447i2CB2F2F520796DD5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Error Cards.png" alt="Cards reminding users of input error" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Cards reminding users of input error&lt;/span&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;The Flow&lt;/H1&gt;
&lt;H2&gt;1. Data entry card&lt;/H2&gt;
&lt;P&gt;So the concept is basically taken from what Microsoft provided, but here we extend the adaptive card by using an&amp;nbsp;&lt;STRONG&gt;Action.ToggleVisibility&lt;/STRONG&gt; button to show and hide parts of a card: the &lt;STRONG&gt;relative time entry&lt;/STRONG&gt; and the &lt;STRONG&gt;absolute time entry&lt;/STRONG&gt; containers, in blue and green respectively:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Card Source.png" style="width: 686px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278449i6AA77CF748035E9C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Card Source.png" alt="The reminder setting card, with an initially invisible container" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The reminder setting card, with an initially invisible container&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;Change reminder type&lt;/STRONG&gt; button within the gray container is &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Action.ToggleVisibility&lt;/SAMP&gt;&lt;/FONT&gt; button that you can add from the card elements bar on the left of the adaptive card designer screen. The JSON code looks like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Action Toggle Visibility.png" style="width: 394px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277718i5BB17994FA88A21A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Action Toggle Visibility.png" alt="Action Toggle Visibility.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The action button targets the &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;section-hours&lt;/SAMP&gt;&lt;/FONT&gt;&amp;nbsp;(&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;blue&lt;/STRONG&gt;&lt;/FONT&gt;) and &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;section-absolute-time&lt;/SAMP&gt;&lt;/FONT&gt;&amp;nbsp;(&lt;FONT color="#339966"&gt;&lt;STRONG&gt;green&lt;/STRONG&gt;&lt;/FONT&gt;) containers - i.e. when pressed, turns the visibility of &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;section-hours&lt;/SAMP&gt;&lt;/FONT&gt; off and &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;section-absolute-time&lt;/SAMP&gt;&lt;/FONT&gt;&amp;nbsp;(as the respective &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;ids&lt;/SAMP&gt;&lt;/FONT&gt; of the containers) on, and vice versa. The blue and green containers are never on at the same time.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Container ID_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278451i2E4ECFAE8CFC1B63/image-size/large?v=v2&amp;amp;px=999" role="button" title="Container ID_annotated.png" alt="The ID and initial visibility of the blue container" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The ID and initial visibility of the blue container&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;For the &lt;STRONG&gt;Change reminder type&amp;nbsp;&lt;/STRONG&gt;button&amp;nbsp;to turn the &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;blue&lt;/FONT&gt; &lt;/STRONG&gt;and &lt;STRONG&gt;&lt;FONT color="#339966"&gt;green &lt;/FONT&gt;&lt;/STRONG&gt;containers on and off, the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="font-family: inherit;"&gt;Initially visible&lt;/STRONG&gt;&lt;SPAN style="font-family: inherit;"&gt; checkbox must be &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM style="font-family: inherit;"&gt;Checked&amp;nbsp;&lt;/EM&gt;&lt;SPAN style="font-family: inherit;"&gt;for the blue container&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM style="font-family: inherit;"&gt;Unchecked&lt;/EM&gt;&lt;SPAN style="font-family: inherit;"&gt; for the green container:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Container ID 2_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278453i9B01F747C5CCF2DC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Container ID 2_annotated.png" alt="The green container should initially be invisible" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;The green container should initially be invisible&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Within the containers are also &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;ColumnSets&lt;/SAMP&gt;&lt;/FONT&gt;&lt;SPAN style="font-family: inherit;"&gt; to house the fields side by side, just to make it look nice.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ColumnSet_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278454i57E28266740B948A/image-size/large?v=v2&amp;amp;px=999" role="button" title="ColumnSet_annotated.png" alt="Use the ColumnSet to place fields and labels (as TextBlock) adjacent to each other" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Use the ColumnSet to place fields and labels (as TextBlock) adjacent to each other&lt;/span&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;The fields also need &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;TextBlocks&lt;/SAMP&gt; &lt;/FONT&gt;above them as their labels (until we get Adaptive Cards v1.3 in Teams), as well as having some of the parameters set properly:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Field_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278459iF6BB99CBE0F337F7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Field_annotated.png" alt="Set some restrictions on the fields, and place TextBlocks above them as labels" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Set some restrictions on the fields, and place TextBlocks above them as labels&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Finally, the &lt;/SPAN&gt;&lt;FONT style="font-family: inherit;" color="#FF6600"&gt;&lt;STRONG&gt;orange&lt;/STRONG&gt; &lt;/FONT&gt;&lt;SPAN style="font-family: inherit;"&gt;container just contains what to remind yourself of, and has an&amp;nbsp;&lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Input.ChoiceSet&amp;nbsp;&lt;/SAMP&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;to provide the dropdown menu:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="What to remind_annotated.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278460i2297E3CF3F1EF038/image-size/large?v=v2&amp;amp;px=999" role="button" title="What to remind_annotated.png" alt="Input.ChoiceSet for dropdown menu" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Input.ChoiceSet for dropdown menu&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below is the complete JSON code for the adaptive card that captures the user input:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.2",
    "body": [
        {
            "type": "Container",
            "bleed": true,
            "style": "warning",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "width": "75px",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "Image",
                                    "url": "&amp;lt;your_url_here&amp;gt;/schedule.png"
                                }
                            ]
                        },
                        {
                            "width": "stretch",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "size": "Large",
                                    "text": "**Set myself a reminder about this message**",
                                    "color": "Attention",
                                    "fontType": "Default",
                                    "wrap": true
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "isSubtle": true,
            "wrap": true,
            "text": "Fill out this card in entirety, and you'll be reminded by the Flow bot after the time selected."
        },
        {
            "type": "Container",
            "separator": true,
            "style": "emphasis",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "auto",
                            "items": [
                                {
                                    "type": "ActionSet",
                                    "actions": [
                                        {
                                            "type": "Action.ToggleVisibility",
                                            "title": "Change reminder type",
                                            "targetElements": [
                                                "section-hours",
                                                "section-absolute-time"
                                            ]
                                        }
                                    ],
                                    "spacing": "None"
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        },
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Click on Change reminder type to select whether to remind myself at a specific time, or after a certain number of hours from now.",
                                    "wrap": true,
                                    "color": "Accent",
                                    "weight": "Bolder"
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "Container",
            "style": "accent",
            "items": [
                {
                    "type": "TextBlock",
                    "wrap": true,
                    "color": "Accent",
                    "weight": "Bolder",
                    "text": "Remind myself after"
                },
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Hours",
                                    "wrap": true,
                                    "maxLines": 0,
                                    "spacing": "None",
                                    "isSubtle": true,
                                    "size": "Small"
                                },
                                {
                                    "type": "Input.Number",
                                    "placeholder": "Type in the delay in hours",
                                    "id": "remind-hours-later",
                                    "spacing": "None",
                                    "min": 0,
                                    "max": 670
                                }
                            ]
                        },
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Minutes",
                                    "wrap": true,
                                    "size": "Small"
                                },
                                {
                                    "type": "Input.Number",
                                    "placeholder": "Type in the delay in minutes",
                                    "spacing": "None",
                                    "min": 1,
                                    "max": 59,
                                    "id": "remind-minutes-later"
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "TextBlock",
                    "wrap": true,
                    "text": "Hours and minutes can contain decimals, e.g. **1.2 hours = 1 hour 12 minutes**",
                    "spacing": "None",
                    "size": "Small"
                }
            ],
            "id": "section-hours"
        },
        {
            "type": "Container",
            "style": "good",
            "items": [
                {
                    "type": "TextBlock",
                    "wrap": true,
                    "color": "Accent",
                    "weight": "Bolder",
                    "text": "Remind myself at this time"
                },
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Date",
                                    "wrap": true,
                                    "maxLines": 0,
                                    "spacing": "None",
                                    "isSubtle": true,
                                    "size": "Small"
                                },
                                {
                                    "type": "Input.Date",
                                    "id": "remind-date",
                                    "spacing": "None"
                                }
                            ]
                        },
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Time",
                                    "wrap": true,
                                    "maxLines": 0,
                                    "spacing": "None",
                                    "isSubtle": true,
                                    "size": "Small"
                                },
                                {
                                    "type": "Input.Time",
                                    "id": "remind-time",
                                    "spacing": "None"
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "TextBlock",
                    "text": "Ensure that \n- Both **Date** and **Time** are selected\n- Date and time are no later than 30 days of the current time",
                    "wrap": true,
                    "size": "Small",
                    "spacing": "None"
                }
            ],
            "id": "section-absolute-time",
            "isVisible": false
        },
        {
            "type": "Container",
            "style": "attention",
            "items": [
                {
                    "type": "TextBlock",
                    "wrap": true,
                    "color": "Accent",
                    "weight": "Bolder",
                    "text": "Remind myself to"
                },
                {
                    "type": "Input.ChoiceSet",
                    "choices": [
                        {
                            "title": "Reply to the message",
                            "value": "message-reply"
                        },
                        {
                            "title": "Get something done",
                            "value": "message-get-something-done"
                        }
                    ],
                    "placeholder": "Select the action to be reminded of",
                    "spacing": "None",
                    "id": "message-subsequent-action"
                }
            ]
        }
    ]
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;2. Reminder card groundwork&lt;/H2&gt;
&lt;P&gt;After some experimentation with the&amp;nbsp;&lt;STRONG&gt;For a selected message&lt;/STRONG&gt; trigger for Teams, it seems that there is a good amount of dynamic content that would be useful for the reminder card:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="FSM.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278616i4466976EEC0064BC/image-size/large?v=v2&amp;amp;px=999" role="button" title="FSM.png" alt="For a selected (Teams) message provides a lot of useful dynamic content" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;For a selected (Teams) message provides a lot of useful dynamic content&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will return to this card after looking at the upcoming sections after having a look at the actions which the flow will take.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;3. Variables required&lt;/H2&gt;
&lt;P&gt;Some variables are required to hold hold some of the data:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_0-1620122846412.png" style="width: 617px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277806iCE6E10A67C01B795/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_0-1620122846412.png" alt="Some variables are required to hold the time information" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Some variables are required to hold the time information&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then we get the user profiles of the &lt;EM&gt;message sender&lt;/EM&gt; and the &lt;EM&gt;person who initiated the flow:&amp;nbsp;&lt;/EM&gt;interestingly, only the &lt;STRONG&gt;AAD ID&lt;/STRONG&gt; is available as dynamic content from the trigger, but thankfully the&amp;nbsp;&lt;STRONG&gt;Get user profile (V2)&lt;/STRONG&gt; action is able to handle this and return all of the information required:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_1-1620122926624.png" style="width: 640px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277808iCD4855FC3B0752D2/image-dimensions/640x335?v=v2" width="640" height="335" role="button" title="z3019494_1-1620122926624.png" alt="z3019494_1-1620122926624.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;4. Check for &lt;EM&gt;Chat&lt;/EM&gt; or &lt;EM&gt;Channel&lt;/EM&gt; conversation message and what action to take&lt;/H2&gt;
&lt;P&gt;We then build the&amp;nbsp;&lt;STRONG&gt;Original message information&lt;/STRONG&gt; block by testing whether the message came from a private chat, or from a Team channel with a simple check of whether the &lt;STRONG&gt;team&lt;/STRONG&gt; dynamic content is &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;null&lt;/SAMP&gt; &lt;/FONT&gt;or not (input &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;null&lt;/SAMP&gt; &lt;/FONT&gt;as an expression, not dynamic content):&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_2-1620123065824.png" style="width: 959px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277809i091D663AB7E09671/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_2-1620123065824.png" alt="Check whether the message is in a Chat or Channel, and building the adaptive card to suit the occasion" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Check whether the message is in a Chat or Channel, and building the adaptive card to suit the occasion&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If the message is from a Team Channel, then the&amp;nbsp;&lt;STRONG&gt;List channels&lt;/STRONG&gt; action is run, and a &lt;STRONG&gt;filter&lt;/STRONG&gt; applied so that only the &lt;STRONG&gt;Channel Name&lt;/STRONG&gt; is extracted out of the channels of the team.
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Channel Id&lt;/SAMP&gt;&lt;/FONT&gt;&amp;nbsp;is from the List channels action&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;Channel ID&lt;/SAMP&gt;&lt;/FONT&gt;&amp;nbsp;(note the case sensitivity!) is from the&amp;nbsp;&lt;STRONG&gt;From a selected message&lt;/STRONG&gt; action.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;The JSON card blocks are then saved in the&amp;nbsp;&lt;STRONG style="font-family: inherit;"&gt;TeamChannelBrick&lt;/STRONG&gt;&lt;SPAN style="font-family: inherit;"&gt; variable.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;ActionToTake&lt;/STRONG&gt; variable is also populated after checking for whether it's been left blank, or one of the selections have been made:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_3-1620123467870.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277811i3597CD1D043D9907/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_3-1620123467870.png" alt="Checking whether the ActionToTake choice has been set, and building the adaptive card brick to suit the input" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Checking whether the ActionToTake choice has been set, and building the adaptive card brick to suit the input&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;5. Time calculations, data types &amp;amp; error handling&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;The difficult part is this bit: making sure the user's inputs for hours/minutes, or absolute time is valid!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We quickly check whether either date or time entered is null or not, and if so, the user probably has inputted the hour/minute offset instead since that is the default:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_0-1620123654283.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277812i6893C07261BDBE78/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_0-1620123654283.png" alt="Checking to see whether absolute or relative time delay has been inputted" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Checking to see whether absolute or relative time delay has been inputted&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;In the case where the user enters the hours/minutes offset to be reminded:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Check whether the&amp;nbsp;&lt;STRONG&gt;Hours&lt;/STRONG&gt; entered is blank or not (note that there's a very subtle difference between &lt;EM&gt;blank&lt;/EM&gt; and&amp;nbsp;&lt;EM&gt;null&lt;/EM&gt;!). If so, set the&amp;nbsp;&lt;STRONG&gt;HoursToDelay&lt;/STRONG&gt; variable to a "0" or simply use the hours inputted.&lt;/LI&gt;
&lt;LI&gt;Check whether the&amp;nbsp;&lt;STRONG&gt;Minutes&lt;/STRONG&gt; entered is blank or not.&amp;nbsp;If so, set the &lt;STRONG&gt;MinutesToDelay&lt;/STRONG&gt; variable to a "0" or simply use the hours inputted.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_1-1620123840984.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277813i83D8267ABE862C54/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_1-1620123840984.png" alt="z3019494_1-1620123840984.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Finally, the&amp;nbsp;&lt;STRONG&gt;TotalTimeDelay&lt;/STRONG&gt; is set to the following expression:&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#333399"&gt;mul(&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;add(&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;mul(&lt;/FONT&gt;&lt;FONT color="#008000"&gt;variables('HoursToDelay')&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;,60)&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;,variables('MinutesToDelay'))&lt;/FONT&gt;&lt;FONT color="#333399"&gt;,60)&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;e.g.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;multiply the number of hours by 60 to obtain the number of minutes&lt;/LI&gt;
&lt;LI&gt;add that to the number of minutes to delay by&lt;/LI&gt;
&lt;LI&gt;multiply the final result up by another 60 to obtain the number of seconds&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;In the case where the user specifies an absolute time to be reminded&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A lot more string processing is required!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Compose - date selected&lt;/STRONG&gt;: compose the date/time that the user selected, into ISO8601 format. The caveat here: &lt;FONT color="#FF6600"&gt;you need 7 decimal places after the seconds&lt;/FONT&gt;!&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compose - ticks of date to delay until&lt;/STRONG&gt;: find the number of ticks from the previous compose action:&lt;BR /&gt;
&lt;PRE&gt;ticks(&lt;FONT color="#339966"&gt;outputs('Compose_-_date_selected')&lt;/FONT&gt;)&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Convert time zone - to UTC+10&lt;/STRONG&gt; (where I live): change this to wherever you are in the world.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compose - ticks of current time&lt;/STRONG&gt;: get the current time's ticks&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compose - difference in ticks&lt;/STRONG&gt;: subtract the ticks of current time (4) from the ticks of the selected time (1).&lt;/LI&gt;
&lt;LI&gt;Then check for whether the selected date is before the current time by seeing whether (5) is a negative number of not in the&amp;nbsp;&lt;STRONG&gt;Condition - check selected date isn't on or before reminder date&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Then do some final checks for whether the number of seconds falls on "0" by
&lt;OL&gt;
&lt;LI&gt;Converting the ticks into minutes/seconds (&lt;STRONG&gt;Compose - ticks to seconds&lt;/STRONG&gt;)&lt;BR /&gt;&lt;BR /&gt;The&amp;nbsp;&lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;TotalTimeToDelay&lt;/SAMP&gt; &lt;/FONT&gt;variable in this instance, should contain this expression:&lt;BR /&gt;
&lt;PRE&gt;&lt;FONT color="#FF6600"&gt;add(0,&lt;/FONT&gt;&lt;FONT color="#339966"&gt;&lt;FONT color="#0000FF"&gt;div(&lt;/FONT&gt;outputs('Compose_-_difference_in_ticks')&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;,10000000)&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;)&lt;/FONT&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;Checking whether there's remnant seconds (by looking for modulo 60) in &lt;STRONG&gt;Compose&lt;/STRONG&gt;&amp;nbsp;&lt;STRONG&gt;- modulo seconds&lt;/STRONG&gt; action. If the number of seconds to delay by, falls on "0" then just add 1 more second to it in case the user enters a time which is just less than 1 minute as the &lt;STRONG&gt;div&lt;/STRONG&gt; formula will only work with integers.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;TotalTimeToDelay&lt;/SAMP&gt;&lt;/FONT&gt;&lt;FONT color="#FF0000"&gt;&amp;nbsp;&lt;/FONT&gt;variable in this instance, becomes this expression instead:&lt;BR /&gt;
&lt;PRE&gt;&lt;FONT color="#FF6600"&gt;add(1&lt;/FONT&gt;,&lt;FONT color="#0000FF"&gt;div(&lt;/FONT&gt;&lt;FONT color="#008000"&gt;outputs('Compose_-_difference_in_ticks')&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;,10000000)&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;)&lt;/FONT&gt;&lt;/PRE&gt;
&lt;BR /&gt;The reason for this check is that the&amp;nbsp;&lt;STRONG&gt;Delay&lt;/STRONG&gt; action, is very fussy. It only takes integers, and can't cope with an input of &lt;STRONG&gt;0&amp;nbsp;&lt;/STRONG&gt;(you'd think that an input of "0" into the&amp;nbsp;&lt;STRONG&gt;Delay&lt;/STRONG&gt; action would just cause it to continue full steam ahead instead of sitting there and waiting!)&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Absolute Time Processing.png" style="width: 904px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277814iEB9F0C45D1A5AFA6/image-size/large?v=v2&amp;amp;px=999" role="button" title="Absolute Time Processing.png" alt="Absolute time calculations: finding out the TotalTimeToDelay" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Absolute time calculations: finding out the TotalTimeToDelay&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;One final major condition block&lt;/STRONG&gt;: check to see if the user has set a date over 28 days (or 720 hours)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We check the &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;TotalTimeToDelay&amp;nbsp;&lt;/SAMP&gt;&lt;/FONT&gt;variable and see how many days it has racked up:&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#FF6600"&gt;div(&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;int(&lt;/FONT&gt;&lt;FONT color="#008000"&gt;variables('TotalTimeToDelay')&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;)&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;,86400)&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;This check is needed as Power Automate will time out after 30 days. But let's just be a little more conservative and set that at 28 days, and throw an error if so. This will ensure no reminders (especially those over 30 days) are quietly dumped without the user's knowledge.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_0-1620126528730.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277815i258DE2F9BC89A742/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_0-1620126528730.png" alt="Double checking that the user has entered a date no further than 28 days out to ensure the flow doesn't time out" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Double checking that the user has entered a date no further than 28 days out to ensure the flow doesn't time out&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The adaptive card that reports the error if a user enters a date that is greater than 28 days:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.2",
    "body": [
        {
            "type": "Container",
            "bleed": true,
            "style": "warning",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "width": "75px",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "Image",
                                    "url": "&amp;lt;your_url_here&amp;gt;/error.png"
                                }
                            ]
                        },
                        {
                            "width": "stretch",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "size": "Large",
                                    "text": "**Error in setting a reminder for Teams message**",
                                    "color": "Attention",
                                    "fontType": "Default",
                                    "wrap": true
                                },
                                {
                                    "type": "TextBlock",
                                    "text": "Reminder set for too far ahead!",
                                    "wrap": true,
                                    "size": "Large",
                                    "weight": "Bolder",
                                    "color": "Accent",
                                    "spacing": "None"
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "isSubtle": true,
            "wrap": true,
            "text": "Oops. You've tried to set yourself a reminder for @{outputs('Compose_-_check_for_28_day_limit')} days later! Please ensure you set it for less than 28 days.\n\nIf you need something more sophisticated, use **Microsoft To Do** or **Microsoft Planner**."
        },
        {
            "type": "TextBlock",
            "text": "Original message information",
            "wrap": true,
            "separator": true,
            "size": "Small",
            "color": "Accent"
        },
        {
            "type": "FactSet",
            "facts": [
                {
                    "title": "Message author",
                    "value": "@{outputs('Get_user_profile_(V2)_-_person_who_typed_the_message')?['body/displayName']}"
                }
            ],
            "spacing": "None"
        },
        {
            "type": "TextBlock",
            "text": "Original message",
            "wrap": true,
            "separator": true,
            "color": "Accent",
            "size": "Small"
        },
        {
            "type": "TextBlock",
            "text": "@{triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['body']?['plainText']}",
            "wrap": true,
            "spacing": "None"
        },
        {
            "type": "Container",
            "separator": true,
            "style": "emphasis",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "50px",
                            "items": [
                                {
                                    "type": "Image",
                                    "url": "&amp;lt;your_url_here&amp;gt;/alert.png"
                                }
                            ]
                        },
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Action that you were going to take",
                                    "wrap": true,
                                    "separator": true,
                                    "color": "Accent",
                                    "size": "Small"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "spacing": "None",
                                    "text": "@{variables('ActionToTake')}"
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.OpenUrl",
                    "title": "Go back to the message and set the reminder again",
                    "iconUrl": "&amp;lt;your_url_here&amp;gt;/teams.png",
                    "url": "@{triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['linkToMessage']}"
                }
            ]
        }
    ]
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;6. The &lt;EM&gt;Delay&lt;/EM&gt; vs &lt;EM&gt;Delay Until&lt;/EM&gt; action&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_1-1620126674977.png" style="width: 639px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277817i90A46B636B0249AE/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_1-1620126674977.png" alt="Setting the delay" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Setting the delay&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are now ready to delay the flow!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Initially there was a consideration to use the&amp;nbsp;&lt;STRONG&gt;Delay Until&lt;/STRONG&gt; action if the user enters an absolute date/time, until a major stumbling block was encountered: time zones!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Power Automate basically works in UTC or UTC-8, whereas I live in UTC+10. Having said that, the documentation for the&amp;nbsp;&lt;STRONG&gt;Delay Until&lt;/STRONG&gt; action is quite scant, and it doesn't seem to take into consideration what timezone you are in. Hence all of the effort to subtract ticks and calculate remnant seconds etc when the user selects the date/time option.&lt;/P&gt;
&lt;H2&gt;7. Oops - don't forget the characters that adaptive cards dislike!&lt;/H2&gt;
&lt;P&gt;Two more&amp;nbsp;&lt;STRONG&gt;Compose&lt;/STRONG&gt; actions are required before we pop the reminder card out, namely:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_2-1620126836459.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277818i34EF39EC3B27ADD2/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_2-1620126836459.png" alt="z3019494_2-1620126836459.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately if you wanted to insert the&amp;nbsp;&lt;STRONG&gt;Plain Text Message&amp;nbsp;&lt;/STRONG&gt;dynamic content into the replace formula, you're almost out of luck. Here's where &lt;STRONG&gt;Compose&amp;nbsp;&lt;/STRONG&gt;comes to the rescue. The&amp;nbsp;&lt;STRONG&gt;Compose - PTM without quotes&lt;/STRONG&gt; action has this in its formula:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#FF6600"&gt;replace(&lt;/FONT&gt;&lt;FONT color="#008000"&gt;&lt;FONT color="#0000FF"&gt;replace(&lt;/FONT&gt;outputs('Compose_-_Plain_Text_Message')&lt;/FONT&gt;&lt;FONT color="#0000FF"&gt;,'" ','')&lt;/FONT&gt;&lt;FONT color="#FF6600"&gt;,' "','')&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;which replaces every instance of &lt;FONT color="#008000"&gt;space&lt;/FONT&gt;-&lt;FONT color="#003366"&gt;double-quote&lt;/FONT&gt; and &lt;FONT color="#003366"&gt;double-quote&lt;/FONT&gt;-&lt;FONT color="#008000"&gt;space&lt;/FONT&gt; with empty strings, in order to not allow the reminder card to spit the dummy with any double quotation marks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;8. The reminder card's code&lt;/H2&gt;
&lt;P&gt;With the &lt;FONT color="#FF0000"&gt;&lt;SAMP&gt;TotalChannelBlock&amp;nbsp;&lt;/SAMP&gt;&lt;/FONT&gt;variable inserted into the appropriate location so that the correct information about the message is displayed to the user who initiated the flow:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_3-1620127059580.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277819iC021F491321F4D5F/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_3-1620127059580.png" alt="z3019494_3-1620127059580.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;...and a summary at the bottom of the card (pop the&amp;nbsp;&lt;STRONG&gt;Show advanced options&lt;/STRONG&gt; open!) to ensure a summary is sent - especially useful if your smartwatch notifications rely on a summary of sorts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="z3019494_0-1620127122452.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277820iC61707C2B0D49C6A/image-size/large?v=v2&amp;amp;px=999" role="button" title="z3019494_0-1620127122452.png" alt="z3019494_0-1620127122452.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.2",
    "body": [
        {
            "type": "Container",
            "bleed": true,
            "style": "warning",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "width": "75px",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "Image",
                                    "url": "&amp;lt;your_url_here&amp;gt;/schedule.png"
                                }
                            ]
                        },
                        {
                            "width": "stretch",
                            "type": "Column",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "size": "Large",
                                    "text": "**Reminder for Teams message**",
                                    "color": "Attention",
                                    "fontType": "Default",
                                    "wrap": true
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "isSubtle": true,
            "wrap": true,
            "text": "This is a reminder message you set for yourself at\n"
        },
        {
            "type": "TextBlock",
            "text": " **@{body('Convert_time_zone_-_time_executed')}**.",
            "wrap": true,
            "spacing": "None"
        },
        {
            "type": "TextBlock",
            "text": "Original message information",
            "wrap": true,
            "separator": true,
            "size": "Small",
            "color": "Accent"
        },
        {
            "type": "FactSet",
            "facts": [
@{variables('TeamChannelBrick')}
            ],
            "spacing": "None"
        },
        {
            "type": "TextBlock",
            "text": "Original message",
            "wrap": true,
            "separator": true,
            "color": "Accent",
            "size": "Small"
        },
        {
            "type": "TextBlock",
            "text": "@{outputs('Compose_-_PTM_without_quotes')}",
            "wrap": true,
            "spacing": "None"
        },
        {
            "type": "Container",
            "separator": true,
            "style": "attention",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "50px",
                            "items": [
                                {
                                    "type": "Image",
                                    "url": "&amp;lt;your_url_here&amp;gt;/alert.png"
                                }
                            ]
                        },
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "Action to take",
                                    "wrap": true,
                                    "separator": true,
                                    "color": "Accent",
                                    "size": "Small"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "spacing": "None",
                                    "text": "@{variables('ActionToTake')}"
                                }
                            ],
                            "verticalContentAlignment": "Center"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.OpenUrl",
                    "title": "See the original message",
                    "iconUrl": "&amp;lt;your_url_here&amp;gt;/teams.png",
                    "url": "@{triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['linkToMessage']}"
                },
                {
                    "type": "Action.OpenUrl",
                    "title": "Chat with @{outputs('Get_user_profile_(V2)_-_person_who_typed_the_message')?['body/displayName']}",
                    "iconUrl": "&amp;lt;your_url_here&amp;gt;/teams.png",
                    "url": "https://teams.microsoft.com/l/chat/0/0?users=@{outputs('Get_user_profile_(V2)_-_person_who_typed_the_message')?['body/mail']}"
                }
            ]
        }
    ]
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;STRONG&gt;Thanks for reading!&lt;/STRONG&gt; Hope you've learned loads yourself!&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;</description>
      <pubDate>Thu, 06 May 2021 11:43:33 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/simple-reminders-for-any-teams-channel-or-chat-message/ba-p/2319963</guid>
      <dc:creator>z3019494</dc:creator>
      <dc:date>2021-05-06T11:43:33Z</dc:date>
    </item>
    <item>
      <title>Re: Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327599#M258</link>
      <description>&lt;P&gt;&lt;LI-USER uid="89985"&gt;&lt;/LI-USER&gt;:)&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 17:09:36 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327599#M258</guid>
      <dc:creator>Mafyou</dc:creator>
      <dc:date>2021-05-05T17:09:36Z</dc:date>
    </item>
    <item>
      <title>Re: Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327596#M257</link>
      <description>&lt;P&gt;&lt;LI-USER uid="1046017"&gt;&lt;/LI-USER&gt;&amp;nbsp;I did not implement this, yet. But I like the sample and how clear &lt;LI-USER uid="1815"&gt;&lt;/LI-USER&gt;&amp;nbsp;described his solution. From my point of view, this sample is a perfect example to showcase on how to use the person component of Microsoft Graph Toolkit&amp;nbsp; to provide a web part with which you can create visually appealing, professional looking content in SharePoint.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 17:07:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327596#M257</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-05T17:07:45Z</dc:date>
    </item>
    <item>
      <title>Re: Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327456#M256</link>
      <description>&lt;P&gt;&lt;LI-USER uid="89985"&gt;&lt;/LI-USER&gt;, have you try? Why do you say it's lovely? It's not. It's an improvement for a better collaboration and it's in the current flow of what people want to use.&lt;/P&gt;&lt;P&gt;Can you explain your point? Thanks.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 16:52:08 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2327456#M256</guid>
      <dc:creator>Mafyou</dc:creator>
      <dc:date>2021-05-05T16:52:08Z</dc:date>
    </item>
    <item>
      <title>Re: Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2325489#M254</link>
      <description>&lt;P&gt;Nice work as always&amp;nbsp;&lt;LI-USER uid="1815"&gt;&lt;/LI-USER&gt;&amp;nbsp;!!!&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@B71AFCCE02F5853FE57A20BD4B04EADD/images/emoticons/cool_40x40.gif" alt=":cool:" title=":cool:" /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 09:51:19 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2325489#M254</guid>
      <dc:creator>Gabriel Karawani</dc:creator>
      <dc:date>2021-05-05T09:51:19Z</dc:date>
    </item>
    <item>
      <title>Re: Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2325344#M253</link>
      <description>&lt;P&gt;love this sample! Thank you for sharing! You rock :rocket:&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 08:52:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/bc-p/2325344#M253</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-05T08:52:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2325343#M252</link>
      <description>&lt;P&gt;&lt;LI-USER uid="1036666"&gt;&lt;/LI-USER&gt;&amp;nbsp;this made my day! Thank you!!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 08:51:41 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2325343#M252</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-05T08:51:41Z</dc:date>
    </item>
    <item>
      <title>How to to get all site collections with their sub webs using PnP PowerShell?</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-to-get-all-site-collections-with-their-sub-webs-using-pnp/ba-p/2322131</link>
      <description>&lt;P&gt;Sometimes we have a business requirement to get site collections with all the sub-webs so we can achieve the solution easily using PnP Powershell.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let's see step-by-step implementation:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Implementation&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Open Windows Powershell ISE&lt;BR /&gt;Create a new file and write a script&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Now we will see all the steps which we required to achieve the solution:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;1. We will initialize the admin site URL, username, and password in the global variables.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;2. Then we will create a Login function to connect the O365 SharePoint Admin site.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;3. Create a function to get all site collections and all the sub-webs&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So in the end, our script will be like this,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$SiteURL = "https://domain-admin.sharepoint.com/"
$UserName = "UserName@domain.onmicrosoft.com"
$Password = "********"
$SecureStringPwd = $Password | ConvertTo-SecureString -AsPlainText -Force 
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $SecureStringPwd

Function Login {
    [cmdletbinding()]
    param([parameter(Mandatory = $true, ValueFromPipeline = $true)] $Creds)
    Write-Host "Connecting to Tenant Admin Site '$($SiteURL)'" 
    Connect-PnPOnline -Url $SiteURL -Credentials $creds
    Write-Host "Connection Successfull"
}

Function AllSiteCollAndSubWebs() {
    Login($Creds)
    $TenantSites = (Get-PnPTenantSite) | Select Title, Url       
       
    ForEach ( $TenantSite in $TenantSites) { 
        Connect-PnPOnline -Url $TenantSite.Url -Credentials $Creds
        Write-Host $TenantSite.Title $TenantSite.Url
        $subwebs = Get-PnPSubWebs -Recurse | Select Title, Url
        foreach ($subweb in $subwebs) { 
            Connect-PNPonline -Url $subweb.Url -Credentials $Creds
            Write-Host $subweb.Title $subweb.Url 
        }  
    }
}

AllSiteCollAndSubWebs&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Output:&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="AllSCAndSCW.png" style="width: 725px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278256i620977FA80EA3531/image-size/large?v=v2&amp;amp;px=999" role="button" title="AllSCAndSCW.png" alt="AllSCAndSCW.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Summary:&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this article, we have seen how to get all the site collections and their subwebs using pnp Powershell.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps! If it is helpful to you then share it with others.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sharing is caring!&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 08:32:49 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-to-get-all-site-collections-with-their-sub-webs-using-pnp/ba-p/2322131</guid>
      <dc:creator>ChandaniPrajapati</dc:creator>
      <dc:date>2021-05-05T08:32:49Z</dc:date>
    </item>
    <item>
      <title>Community sample: Engage your users with SharePoint stories/reels</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/ba-p/2325128</link>
      <description>&lt;P&gt;Would not be cool to engage your Modern Workplace users with content appearing like in your favourite social network? In my latest community sample, I built an SPFx webpart to do so. Here is how I did it, but first, this is how it looks:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1-sp-stories.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278314iFFA5B4E9D621B5AC/image-size/large?v=v2&amp;amp;px=999" role="button" title="1-sp-stories.png" alt="SharePoint stories webpart" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SharePoint stories webpart&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;What we need first, is a SharePoint list that will contain all the “story images”, with the author of that story, and some Text, if we want to show the “show more” option. This list will be something like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2-sp-list.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278340iE672AF450D53E155/image-size/large?v=v2&amp;amp;px=999" role="button" title="2-sp-list.png" alt="SP List" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SP List&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_1" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;Now it is time to code our SPFx webpart.&lt;/P&gt;
&lt;P&gt;Before starting, for all the UI thing, I am using an existing open-source React component called “&lt;EM&gt;react-insta-stories&lt;/EM&gt;”, that you can find in its GitHub &lt;A href="https://www.npmjs.com/package/react-insta-stories" target="_blank" rel="noopener"&gt;repository&lt;/A&gt;. This component does most of the hard work with the image slide and so on. In its most simple way, the component just needs an array of images:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_2" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3-react-insta-stories-library.png" style="width: 723px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278338iE1946C401F3704C4/image-size/large?v=v2&amp;amp;px=999" role="button" title="3-react-insta-stories-library.png" alt="react package" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;react package&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But you can also specify an array of Story objects, where a Story can have the following properties:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_3" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="4-story-object.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278339i4E26203F1F589390/image-size/large?v=v2&amp;amp;px=999" role="button" title="4-story-object.png" alt="Story object properties" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Story object properties&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now that we know how to use the Stories component, the webpart functionality is quite easy. We just need to get the Stories information from the SharePoint list, and compose the proper Stories array.&lt;/P&gt;
&lt;P&gt;As usual when developing SPFx webparts, the webpart itself, just loads a React component, passing the information that we need, in this case, for simplicity, I am passing the entire &lt;EM&gt;WebPartContext&lt;/EM&gt; object, but try to avoid this practice, and only pass what you need.&lt;/P&gt;
&lt;P&gt;This is the main code in the Render webpart method:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_4" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="5-webpart-render.png" style="width: 987px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278337i1D5C59EB4D2464A7/image-size/large?v=v2&amp;amp;px=999" role="button" title="5-webpart-render.png" alt="SPFx Webpart render" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SPFx Webpart render&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once in the main React component, we are calling the SharePoint REST API to get the sotries from the list. To do so, I am using the endpoint:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;/_api/web/lists/GetByTitle('Stories')/RenderListDataAsStream&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As this endpoint is given me the Image URL in the format that I need (but pretty sure you can do the same with other endpoints, or using the PnP JS library). The code to do so is:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_5" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="6-component-did-mount.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278341i838921E1800E1AD3/image-size/large?v=v2&amp;amp;px=999" role="button" title="6-component-did-mount.png" alt="componentDidMount" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;componentDidMount&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The method “&lt;EM&gt;_getStoryFromListItem&lt;/EM&gt;” will create a Story object for the “react-insta-stories” component, and here we have an interesting challenge. The Story object, has a Header property, aimed to render the Story author information, so you just provide the profile image, and a couple of texts for heading and subheading. Although we could get the Author profile image, username and email using Graph API, it is going to be much easier to make use of the MS Graph Toolkit library, and use the &lt;A href="https://docs.microsoft.com/en-us/graph/toolkit/components/person" target="_blank" rel="noopener"&gt;MGT Person component&lt;/A&gt;. In order to render the GMT Person component, we cannot use the Story Header property, however, the Story object allow us to specify a custom render function for the entire Story, and in that function, we can use the Person component. This is the relevant code to achieve it:&lt;/P&gt;
&lt;DIV id="tinyMceEditorLuis Mañez_6" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="7-story-render.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278342i51A8B3D5BFC00D11/image-size/large?v=v2&amp;amp;px=999" role="button" title="7-story-render.png" alt="Story custom render function" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Story custom render function&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;EM&gt;storyRenderer&lt;/EM&gt; function is the one responsible for rendering the Story, and there, we use the GMT Person component. As you can see in the code above, we also use a React High Order Component called &lt;EM&gt;WithSeeMore&lt;/EM&gt;, this component is from the &lt;EM&gt;react-insta-stories&lt;/EM&gt; library and is the way to load a specific text when the “&lt;EM&gt;See more&lt;/EM&gt;” link is clicked in the Story. So, if the list item has the Content field filled, we set the “&lt;EM&gt;seeMore&lt;/EM&gt;” property of the Story object. This property is again a function, so you can customize how the content is rendered.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And that´s all!... you can get the full code sample in the&amp;nbsp;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-company-stories" target="_blank" rel="noopener"&gt;PnP GitHub repository&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 08:10:54 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/community-sample-engage-your-users-with-sharepoint-stories-reels/ba-p/2325128</guid>
      <dc:creator>Luis Mañez</dc:creator>
      <dc:date>2021-05-05T08:10:54Z</dc:date>
    </item>
    <item>
      <title>Re: What is a “Dev Tenant” and why would you want one?</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-is-a-dev-tenant-and-why-would-you-want-one/bc-p/2324834#M250</link>
      <description>&lt;P&gt;Been using the Dev Tenants for a long time here to test new features and upcoming functionalities however it has its limitation sadly in the perspective trying to do/show newer stuff like SharePoint Syntex and Viva Topics. I had multiple conversation deadlock with business leaders trying to introduce those without the ability to show the potentials in the dev tenants.&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 06:07:48 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-is-a-dev-tenant-and-why-would-you-want-one/bc-p/2324834#M250</guid>
      <dc:creator>Nicholas Ang</dc:creator>
      <dc:date>2021-05-05T06:07:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2324472#M249</link>
      <description>&lt;P&gt;&lt;LI-USER uid="89985"&gt;&lt;/LI-USER&gt;&amp;nbsp; Yes, help me a lot, i got everything up and running properly now, thank you very much&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2021 02:40:10 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2324472#M249</guid>
      <dc:creator>sagisim</dc:creator>
      <dc:date>2021-05-05T02:40:10Z</dc:date>
    </item>
    <item>
      <title>What's up with Markdown?</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-s-up-with-markdown/ba-p/2323834</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="whats-up-with-markdown.png" style="width: 200px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278107i2C67A9742C0DE0CD/image-size/small?v=v2&amp;amp;px=200" role="button" title="whats-up-with-markdown.png" alt="whats-up-with-markdown.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Perhaps you've noticed a technology called Markdown that's been showing up in a lot of web sites and apps lately. This article will explain Markdown and help you get started reading and writing it.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Markdown is a simple way to format text using ordinary punctuation marks, and it's very useful in Microsoft 365. For example,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://support.microsoft.com/en-us/office/use-markdown-formatting-in-teams-4d10bd65-55e2-4b2d-a1f3-2bebdcd2c772?WT.mc_id=m365-27330-rogerman" target="_blank" rel="nofollow noopener"&gt;Microsoft Teams supports markdown formatting&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in chat messages and SharePoint has a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://support.microsoft.com/en-us/office/use-the-markdown-web-part-6d73c06d-2877-4bc9-988b-f2896016c50b" target="_blank" rel="nofollow noopener"&gt;Markdown web part&lt;/A&gt;.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/text-features" target="_blank" rel="nofollow noopener"&gt;Adaptive Cards support Markdown&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;as well, as do&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/power-automate/approvals-markdown-support?WT.mc_id=m365-27330-rogerman" target="_blank" rel="nofollow noopener"&gt;Power Automate approvals&lt;/A&gt;. For the bot builders among us,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/composer/concept-language-generation?WT.mc_id=m365-27330-rogerman" target="_blank" rel="nofollow noopener"&gt;Bot Composer language generation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/reference-markdown-format?WT.mc_id=m365-27330-rogerman" target="_blank" rel="nofollow noopener"&gt;QnA Maker&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;both support markdown as well. And what's at the top level of nearly every Github repo? You guessed it, a markdown file called README.md.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-designed-to-be-intuitive" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#designed-to-be-intuitive" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Designed to be intuitive&lt;/H2&gt;
&lt;P&gt;Imagine you're texting someone and all you have to work with is letters, numbers, and a few punctuation marks. If you want to get their attention, you might use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;**asterisks**&lt;/CODE&gt;, right? If you've ever done that, then you were already using Markdown! Double asterisks make the text&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;bold&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now imagine you're replying to an email and want to quote what someone said earlier in the thread. Many people use a little greater-than sign like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;Parker said,
&lt;SPAN class="pl-c"&gt;&lt;SPAN class="pl-c1"&gt;&amp;gt;&lt;/SPAN&gt; Sharing is caring&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;Guess what, that's Markdown too! When it's displayed, it looks like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Parker said,&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Sharing is caring&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Did you ever make a little table with just text characters, like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="highlight highlight-source-lisp"&gt;
&lt;PRE&gt;Alpha | Beta | Gamma
------|------|------
  &lt;SPAN class="pl-c1"&gt;1&lt;/SPAN&gt;   |   &lt;SPAN class="pl-c1"&gt;2&lt;/SPAN&gt;  |  &lt;SPAN class="pl-c1"&gt;3&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If so, you already know how to make a table in Markdown!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Alpha&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Beta&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Gamma&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;1&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;2&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;Markdown was designed to be intuitive. Where possible, it uses the formatting clues people type naturally. So you can type something&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;_in italics_&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;on the screen and it actually appears&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;in italics.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;In all cases you're starting with plain text - the stuff that comes out of your keyboard and is edited with Notepad or Visual Studio Code - into something richer. (Spoiler alert: it's HTML.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;What about emojis?&lt;SPAN&gt;&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@8341BD79091AF36AA2A09063B554B5CD/images/emoticons/smile_40x40.gif" alt=":smile:" title=":smile:" /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Markdown neither helps nor blocks emojis, they're just characters. If your application can handle emojis, you can certainly include them in your markdown.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A id="user-content-commonly-used-markdown" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#commonly-used-markdown" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Commonly used Markdown&lt;/H2&gt;
&lt;P&gt;Markdown isn't a formal standard, and a lot of variations have emerged. It all started at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://daringfireball.net/" target="_blank" rel="nofollow noopener"&gt;Daring Fireball&lt;/A&gt;; most implementations are faithful to the original but many have added their own features. For example, the SharePoint Markdown Web Part uses the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://marked.js.org/" target="_blank" rel="nofollow noopener"&gt;"Marked" syntax&lt;/A&gt;; if you're creating a README.md file for use in Github, you'll want to use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.github.com/gfm/" target="_blank" rel="noopener"&gt;Github Flavored Markdown (GFM)&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This article will stick to the most commonly used features that are widely supported.&amp;nbsp;Each of the following sections shows an example of some simple Markdown followed by the formatted result.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-1-emphasizing-text" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#1-emphasizing-text" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;1. Emphasizing Text&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;You can surround text with &lt;SPAN class="pl-mi"&gt;*single asterisks*&lt;/SPAN&gt; or &lt;SPAN class="pl-mi"&gt;_single underscores_&lt;/SPAN&gt; to emphasize it a little bit;
this usually formatted using italics.

You can surround text with &lt;SPAN class="pl-mb"&gt;**double asterisks**&lt;/SPAN&gt; or &lt;SPAN class="pl-mb"&gt;__double underscores__&lt;/SPAN&gt; to emphasize it more strongly;
this is usually formatted using bold text.&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-output" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#output" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;You can surround text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;single asterisks&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;single underscores&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to emphasize it a little bit; this usually formatted using italics.&lt;/P&gt;
&lt;P&gt;You can surround text with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;double asterisks&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;double underscores&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to emphasize it more strongly; this is usually formatted using bold text.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-2-headings" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#2-headings" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;2. Headings&lt;/H3&gt;
&lt;P&gt;You can make headings using by putting several = (for a level 1 heading) or - signs (for a level 2 heading) in the line below your heading text.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-1" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-1" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;My Heading
&lt;SPAN class="pl-c"&gt;---&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;H2&gt;&lt;A id="user-content-my-heading" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#my-heading" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;My Heading&lt;/H2&gt;
&lt;P&gt;You can also make headings with one or more hash marks in column 1. The number of hash marks controls the level of the heading.&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-2" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-2" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;&lt;SPAN class="pl-mh"&gt;# First level heading&lt;/SPAN&gt;
&lt;SPAN class="pl-mh"&gt;## Second level heading&lt;/SPAN&gt;
&lt;SPAN class="pl-mh"&gt;### Third level heading&lt;/SPAN&gt;
&lt;SPAN class="pl-mh"&gt;#### etc.&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-1" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-1" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;H1&gt;&lt;A id="user-content-first-level-heading" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#first-level-heading" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;First level heading&lt;/H1&gt;
&lt;H2&gt;&lt;A id="user-content-second-level-heading" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#second-level-heading" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Second level heading&lt;/H2&gt;
&lt;H3&gt;&lt;A id="user-content-third-level-heading" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#third-level-heading" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Third level heading&lt;/H3&gt;
&lt;H4&gt;&lt;A id="user-content-etc" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#etc" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;etc.&lt;/H4&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-3-hyperlinks" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#3-hyperlinks" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;3. Hyperlinks&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-3" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-3" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;To make a hyperlink, surround the text in square brackets
immediately followed by the URL in parenthesis (with no space in
between!) For example:
[&lt;SPAN class="pl-e"&gt;Microsoft&lt;/SPAN&gt;](https://www.microsoft.com).&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-2" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-2" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;To make a hyperlink, surround the text in square brackets immediately followed by the URL in parenthesis (with no space in between!) For example:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.microsoft.com/" target="_blank" rel="nofollow noopener"&gt;Microsoft&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-4-images" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#4-images" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;4. Images&lt;/H3&gt;
&lt;P&gt;Images use almost the same syntax as hyperlinks except they begin with an exclamation point. In this case the "alt" text is in square brackets and the image URL is in parenthesis, with no spaces in between.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-4" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-4" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;![&lt;SPAN class="pl-e"&gt;Parker the Porcupine&lt;/SPAN&gt;](https://pnp.github.io/images/hero-parker-p-800.png)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&lt;A id="user-content-result-3" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-3" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="hero-parker-p-800.png" style="width: 200px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278097i4FCA39AB554BD209/image-size/small?v=v2&amp;amp;px=200" role="button" title="hero-parker-p-800.png" alt="hero-parker-p-800.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In case you were wondering, you can combine this with the hyperlink like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-5" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-5" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;[![&lt;SPAN class="pl-e"&gt;Parker the Porcupine&lt;/SPAN&gt;](https://pnp.github.io/images/hero-parker-p-800.png)](http://pnp.github.io)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-4" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-4" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;&lt;A href="https://pnp.github.io" target="_blank" rel="noopener"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hero-parker-p-800.png" style="width: 200px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/278097i4FCA39AB554BD209/image-size/small?v=v2&amp;amp;px=200" role="button" title="hero-parker-p-800.png" alt="hero-parker-p-800.png" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-paragraphs-and-line-breaks" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#paragraphs-and-line-breaks" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;5. Paragraphs and line breaks&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-6" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-6" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;Markdown will
automatically
remove
single line breaks.

Two line breaks start a new paragraph.&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-5" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-5" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;Markdown will automatically remove single line breaks.&lt;/P&gt;
&lt;P&gt;Two line breaks start a new paragraph.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-5-block-quotes" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#5-block-quotes" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;6. Block quotes&lt;/H3&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-7" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-7" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;Use a greater than sign in column 1 to make block quotes like this:

&lt;SPAN class="pl-c"&gt;&lt;SPAN class="pl-c1"&gt;&amp;gt;&lt;/SPAN&gt; Line 1&lt;/SPAN&gt;
&lt;SPAN class="pl-c"&gt;&lt;SPAN class="pl-c1"&gt;&amp;gt;&lt;/SPAN&gt; Line 2&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-6" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-6" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;Use a greater than sign in column 1 to make block quotes like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Line 1 Line 2&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-6-bullet-lists" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#6-bullet-lists" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;7. Bullet lists&lt;/H3&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-8" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-8" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;Just put a asterisk or dash in front of a line that should be bulleted.

&lt;SPAN class="pl-v"&gt;*&lt;/SPAN&gt; Here is an item starting with an asterisk
&lt;SPAN class="pl-v"&gt;*&lt;/SPAN&gt; Here is another item starting with an asterisk
    &lt;SPAN class="pl-v"&gt;*&lt;/SPAN&gt; Indent to make sub-bullets
        &lt;SPAN class="pl-v"&gt;*&lt;/SPAN&gt; Like this
&lt;SPAN class="pl-v"&gt;-&lt;/SPAN&gt; Here is an item with a dash
    &lt;SPAN class="pl-v"&gt;-&lt;/SPAN&gt; Changing characters makes a new list.&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-7" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-7" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;Just put a asterisk or dash in front of a line that should be bulleted.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Here is an item starting with an asterisk&lt;/LI&gt;
&lt;LI&gt;Here is another item starting with an asterisk
&lt;UL&gt;
&lt;LI&gt;Indent to make sub-bullets
&lt;UL&gt;
&lt;LI&gt;Like this&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Here is an item with a dash
&lt;UL&gt;
&lt;LI&gt;Changing characters makes a new list.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-7-numbered-lists" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#7-numbered-lists" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;8. Numbered lists&lt;/H3&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-9" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-9" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;&lt;SPAN class="pl-v"&gt;1.&lt;/SPAN&gt; Beginning a line with a number makes it a list item.
&lt;SPAN class="pl-v"&gt;1.&lt;/SPAN&gt; You don't need to put a specific number; Markdown will renumber for you
&lt;SPAN class="pl-v"&gt;8.&lt;/SPAN&gt; This is handy if you move items around
    &lt;SPAN class="pl-v"&gt;1.&lt;/SPAN&gt; Don't forget you can indent to get sub-items
        &lt;SPAN class="pl-v"&gt;1.&lt;/SPAN&gt; Or sub-sub-items
&lt;SPAN class="pl-v"&gt;1.&lt;/SPAN&gt; Another item&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-8" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-8" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;OL&gt;
&lt;LI&gt;Beginning a line with a number makes it a list item.&lt;/LI&gt;
&lt;LI&gt;You don't need to put a specific number; Markdown will renumber for you&lt;/LI&gt;
&lt;LI&gt;This is handy if you move items around
&lt;OL&gt;
&lt;LI&gt;Don't forget you can indent to get sub-items
&lt;OL&gt;
&lt;LI&gt;Or sub-sub-items&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Another item&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-8-code-samples" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#8-code-samples" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;9. Code samples&lt;/H3&gt;
&lt;P&gt;Many markdown implementations know how to format code by language. (This article was written in Markdown and made extensive use of this feature using "markdown" as the language!) For example to show some HTML:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-10" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-10" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;&lt;SPAN class="pl-c1"&gt;    ~~~html&lt;/SPAN&gt;
    &amp;lt;&lt;SPAN class="pl-ent"&gt;button&lt;/SPAN&gt; &lt;SPAN class="pl-e"&gt;type&lt;/SPAN&gt;=&lt;SPAN class="pl-s"&gt;&lt;SPAN class="pl-pds"&gt;"&lt;/SPAN&gt;button&lt;SPAN class="pl-pds"&gt;"&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;gt;Do not push this button&amp;lt;/&lt;SPAN class="pl-ent"&gt;button&lt;/SPAN&gt;&amp;gt;
&lt;SPAN class="pl-c1"&gt;    ~~~&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-9" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-9" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;P&gt;&amp;lt;&lt;FONT color="#0000FF"&gt;button&lt;/FONT&gt; &lt;FONT color="#00CCFF"&gt;type=&lt;/FONT&gt;&lt;FONT color="#FF0000"&gt;&lt;FONT color="#00CCFF"&gt;"&lt;/FONT&gt;button"&lt;/FONT&gt;&amp;gt;&lt;FONT color="#00CCFF"&gt;Do not push this button&lt;/FONT&gt;&amp;lt;/&lt;FONT color="#0000FF"&gt;button&lt;/FONT&gt;&amp;gt;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;A id="user-content-9-tables" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#9-tables" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;10. Tables&lt;/H3&gt;
&lt;P&gt;Tables are not universally supported but they're so useful they had to be part of this article. Here is a simple table. Separate columns with pipe characters, and don't worry about making things line up; Markdown will handle that part for you.&lt;/P&gt;
&lt;H5&gt;&lt;A id="user-content-markdown-11" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#markdown-11" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Markdown:&lt;/H5&gt;
&lt;DIV class="highlight highlight-source-gfm"&gt;
&lt;PRE&gt;Column 1 | Column 2 | Column 3
---|---|---
Value 1a | Value 2a | Value 3a
Value 1b | Value 2b | Value 3b&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;&lt;A id="user-content-result-10" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#result-10" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Result:&lt;/H5&gt;
&lt;TABLE&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH&gt;Column 1&lt;/TH&gt;
&lt;TH&gt;Column 2&lt;/TH&gt;
&lt;TH&gt;Column 3&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Value 1a&lt;/TD&gt;
&lt;TD&gt;Value 2a&lt;/TD&gt;
&lt;TD&gt;Value 3a&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Value 1b&lt;/TD&gt;
&lt;TD&gt;Value 2b&lt;/TD&gt;
&lt;TD&gt;Value 3b&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;MVP Luise Freese also pointed out that there's a great &lt;A href="https://www.tablesgenerator.com/markdown_tables" target="_blank" rel="noopener"&gt;Markdown tables generator here&lt;/A&gt;; looks like a big timesaver!&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-html-and-markdown" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#html-and-markdown" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;HTML and Markdown&lt;/H2&gt;
&lt;P&gt;Markdown doesn't create any old formatted text - it specifically creates HTML. In fact, it was designed as a shorthand for HTML that is easier for humans to read and write.&lt;/P&gt;
&lt;P&gt;Many Markdown implementations allow you to insert HTML directly into the middle of your Markdown; this may be limited to certain HTML tags depending on the application. So if you know HTML and you're not sure how to format something in Markdown, try including the HTML directly!&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-editing-markdown" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#editing-markdown" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Editing Markdown&lt;/H2&gt;
&lt;P&gt;If you'd like to play with Markdown right now, you might like to try the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mdpreviewer.github.io/" target="_blank" rel="nofollow noopener"&gt;Markdown Previewer&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;where you can type and preview Markdown using any web browser.&lt;/P&gt;
&lt;P&gt;For more serious editing, Visual Studio Code does a great job, and has a built-in preview facility. Check the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://code.visualstudio.com/Docs/languages/markdown?WT.mc_id=m365-27330-rogerman" target="_blank" rel="nofollow noopener"&gt;VS Code Markdown documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There's a whole ecosystem of tools around Markdown including converters for Microsoft Word and stand-alone editing apps; these are really too numerous to list but are easy to find by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.bing.com/search?q=markdown+tool" target="_blank" rel="nofollow noopener"&gt;searching the web&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-legacy" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#legacy" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Legacy&lt;/H2&gt;
&lt;P&gt;From vinyl records to 8-bit games and static web sites, there's a trend these days to rediscover simpler technologies from the past. Markdown definitely falls into this category.&lt;/P&gt;
&lt;P&gt;Back before "WYSIWYG" (What You See Is What You Get) word processors were cheap and pervasive, there were "runoff" utilities that were very much like Markdown. They turned text files into nicely formatted printed documents (usually Postscript). Markdown harkens back to these legacy tools, but adds HTML compatibility and an intuitive syntax.&lt;/P&gt;
&lt;H2&gt;&lt;A id="user-content-conclusion" class="anchor" href="https://github.com/BobGerman/BlogArticles/blob/drafts/Intro%20Articles%20for%20TechCommunity/What's%20Up%20with%20Markdown.md#conclusion" target="_blank" rel="noopener" aria-hidden="true"&gt;&lt;/A&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;While it may seem unfamiliar at first, Markdown is intended to make it easy for people to read and write HTML. Whether you're a power user, IT admin, or developer, you're bound to run into Markdown sooner or later. Here's hoping this article makes it a little easier to get started!&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 23:31:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-s-up-with-markdown/ba-p/2323834</guid>
      <dc:creator>Bob German</dc:creator>
      <dc:date>2021-05-04T23:31:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2320799#M246</link>
      <description>&lt;P&gt;its my pleasure&amp;nbsp;&lt;LI-USER uid="1036666"&gt;&lt;/LI-USER&gt;&amp;nbsp;- did you manage to use the app?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 08:43:14 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2320799#M246</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-04T08:43:14Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Weekly - Episode 125</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-125/ba-p/2318240</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumb-Ep125.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277643iB66F25A5F14237BE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumb-Ep125.png" alt="Thumb-Ep125.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this installment of the weekly discussion revolving around the latest news and topics on&amp;nbsp;&lt;SPAN&gt;Microsoft 365&lt;/SPAN&gt;, hosts –&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt;&amp;nbsp;(Microsoft) | @vesajuvonen,&amp;nbsp;&lt;A href="http://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt;&amp;nbsp;(Microsoft) | @waldekm are joined by Business Applications MVP, Flow Pro Show co-host, NLightning co-founder and Technical Evangelist at SharePoint ISV Lightning Tools &lt;A href="https://twitter.com/SandyU" target="_blank" rel="noopener"&gt;Sandy Ussia&lt;/A&gt; | @SandyU.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Topics discussed in this session include:&amp;nbsp; The appeal of Power Apps and Power Automate - enabling Power Users especially in resource constrained smaller businesses, whether or not Power Apps is the epitome or fulfillment of “Good-enough IT”, Sandy 2.0, and Lightning Tools’ business in COVID times.&amp;nbsp; &amp;nbsp;&amp;nbsp;Microsoft and the Community delivered 22 articles in this last week.&amp;nbsp; This session was recorded on Monday, May 3, 2021.&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Please remember to keep on providing us feedback on how we can help on this journey. We always welcome feedback on making the community more inclusive and diverse.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/APGShP4J1so" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This episode was recorded on Monday, May 3, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Video at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube channel.&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Podcast format at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://pnpweekly.podbean.com.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;These videos and podcasts are published each week and are intended to be roughly 45 - 60 minutes in length.&amp;nbsp; Please do give us feedback on this video and podcast series and also do let us know if you have done something cool/useful so that we can cover that in the next weekly summary! The easiest way to let us know is to share your work on Twitter and add the hashtag&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/search?q=%23pnpweekly" target="_self" rel="nofollow noopener noreferrer"&gt;#PnPWeekly&lt;/A&gt;. We are always on the lookout for refreshingly new content. “&lt;EM&gt;Sharing is caring!”&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are all the links and people mentioned in this recording. Thanks, everyone for your contributions to the community!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Events:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;May 4, 2021 - &lt;A href="https://www.register.mbas.microsoft.com/" target="_self"&gt;Microsoft Business Applications Summit (MBAS)&lt;/A&gt;&amp;nbsp;- Digital Event&lt;/LI&gt;
&lt;LI&gt;May 25-27, 2021-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mybuild.microsoft.com/?WT.mc_id=m365-26913-wmastyka" target="_self" rel="noopener noreferrer"&gt;Microsoft Build 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;August 9-11, 2021 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.collabsummit.org/" target="_blank" rel="noopener nofollow noreferrer"&gt;North American Collaboration Summit&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;Register with coupon code "PnP" for 25% off from the prize at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://nacs.ticketspice.com/nacs2021" href="https://nacs.ticketspice.com/nacs2021" target="_blank" rel="noreferrer noopener nofollow"&gt;https://nacs.ticketspice.com/nacs2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-teams-blog/what-s-new-in-microsoft-teams-april-2021/ba-p/2305291?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;What’s New in Microsoft Teams | April 2021&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-teams-blog/skype-for-business-online-retires-july-31-2021-here-s-what-to/ba-p/2303300?WT.mc_id=m365-27094-wmastyka" target="_self"&gt;Skype for Business Online retires July 31, 2021 – here’s what to expect&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/sharepoint-roadmap-pitstop-april-2021/ba-p/2308680?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;SharePoint Roadmap Pitstop: April 2021&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/microsoft-lists-five-free-virtual-workshops-may-10-14-2021/ba-p/2303602?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Microsoft Lists: Five free virtual workshops, May 10-14, 2021&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/announcing-sharepoint-framework-1-12-1-extending-more-of-microsoft-teams/?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Announcing SharePoint Framework 1.12.1 – Extending more of Microsoft Teams&lt;/A&gt; - &lt;A href="https://twitter.com/sharepoint" target="_blank" rel="noopener"&gt;SharePoint team&lt;/A&gt; |&amp;nbsp;@SharePoint&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/learn-how-to-develop-apps-with-the-microsoft-graph-toolkit/?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Learn how to develop apps with the Microsoft Graph Toolkit&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-blog/updates-to-organizational-theming-in-microsoft-365-admin-center/ba-p/2270839?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Updates to Organizational Theming in Microsoft 365 admin center&lt;/A&gt; - Maha Alam (Microsoft)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Community articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/microsoft-graph-mailbag-create-engaging-apps-with-the-microsoft-teams-activity-feed-api/?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Microsoft Graph Mailbag – Create engaging apps with the Microsoft Teams Activity Feed API&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt; (Microsoft) |&amp;nbsp;&lt;LI-USER uid="926766"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-set-up-tailwind-css-in-a-spfx-project/ba-p/2313192?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;How to Set Up Tailwind CSS in a SharePoint Framework Project&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/arigunawan3023" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt; (DevStack) |&amp;nbsp;@arigunawan3023&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-platform-ms-forms-quiz-with-dynamic-leader-board-created/ba-p/2308467?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Power Platform MS Forms Quiz with dynamic Leader Board created using Power Automate and HTTP Trigger&lt;/A&gt;&amp;nbsp;- &lt;A href="https://twitter.com/DamoBird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt; (Aberdeen City Council) |&amp;nbsp;&lt;LI-USER uid="1035201"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-get-source-code-files-for-power-apps-canvas-apps/ba-p/2308822?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;How to get Source Code files for Power Apps Canvas apps&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener nofollow noreferrer"&gt;Luise Freese&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&amp;nbsp;@LuiseFreese&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/ba-p/2304639?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;CLI for Microsoft 365 v3.9&lt;/A&gt; - &lt;A href="https://twitter.com/garrytrinder" target="_blank" rel="noopener"&gt;Garry Trinder&lt;/A&gt; (CPS) |&amp;nbsp;&lt;LI-USER uid="716447"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-virtual-agents-bot-setting-the-out-of-office/ba-p/2303716?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Power Virtual Agents bot setting the Out Of Office&lt;/A&gt; - &lt;A href="https://twitter.com/vesanopanen" target="_self"&gt;Vesa Nopanen&lt;/A&gt; (Sulava) |&amp;nbsp;@vesanopanen&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-in-developer-community-pnp-march-2021-update/ba-p/2304950?WT.mc_id=m365-27094-wmastyka" target="_blank" rel="noopener"&gt;Office Add-in Developer Community (PnP) – March 2021 update&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/msdavech" target="_blank" rel="noopener"&gt;David Chesnut&lt;/A&gt; (Microsoft) |&amp;nbsp;@msdavech&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/ba-p/2290219?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/DamoBird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt; (Aberdeen City Council) |&amp;nbsp;&lt;LI-USER uid="1035201"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://spblog.net/post/2021/04/29/spfx-check-locale-a-nice-option-to-check-your-localization-consistency-across-sharepoint-framework-solution" target="_blank" rel="noopener"&gt;SPFx Check Locale - a nice option to check your localization consistency across SharePoint Framework solution&lt;/A&gt; - &lt;A href="https://twitter.com/sergeev_srg" target="_blank" rel="noopener"&gt;Sergei Sergeev&lt;/A&gt; (Mastaq) |&amp;nbsp;@sergeev_srg&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.voitanos.io/blog/sharepoint-framework-v1-12-1-whats-in-the-latest-update-of-spfx/?utm_sq=gq05q2ejo9&amp;amp;utm_source=twitter&amp;amp;utm_medium=social&amp;amp;utm_campaign=voitanos&amp;amp;utm_content=ownblogposts" target="_self"&gt;SharePoint Framework v1.12.1 - What’s in the latest Update of SPFx?&lt;/A&gt; - &lt;A href="https://twitter.com/andrewconnell" target="_blank" rel="noopener"&gt;Andrew Connell&lt;/A&gt; (Voitanos) |&amp;nbsp;@andrewconnell&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=7Hh4Rk6xOcU" target="_blank" rel="noopener"&gt;Power Platform Rewind April 2021&lt;/A&gt;&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener nofollow noreferrer"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) |&amp;nbsp;@aprildunnam&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=5uufTXPCZNY" target="_blank" rel="noopener"&gt;Episode #152​ - Managing SharePoint Online Data with Microsoft Graph SDK for .NET&lt;/A&gt;&amp;nbsp;&lt;SPAN&gt;- &lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@PaoloPia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/channel/UCf3l6OWcEKEoR7JaKyxm-kA" target="_blank" rel="noopener"&gt;Flow Pro Show&lt;/A&gt; -&amp;nbsp; &lt;A href="https://twitter.com/SandyU" target="_blank" rel="noopener"&gt;Sandy Ussia&lt;/A&gt; (LightningTools) |@SandyU &amp;amp; &lt;A href="https://twitter.com/laskewitz" target="_blank" rel="noopener"&gt;Daniel Laskewitz&lt;/A&gt; (Sogeti) |&amp;nbsp;@laskewitz&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://regarding365.com/azure-cloud-shell-now-available-in-microsoft-365-86be005d21b7" target="_blank" rel="noopener"&gt;Azure Cloud Shell now available in Microsoft 365&lt;/A&gt; - &lt;A href="https://twitter.com/directorcia" target="_blank" rel="noopener"&gt;Robert Crane&lt;/A&gt; (CIAOPS) |&amp;nbsp;@directorcia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://blog.mastykarz.nl/bulk-create-planner-tasks-dates-microsoft-power-automate/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+WaldekMastykarz+%28Waldek+Mastykarz%29" target="_self"&gt;Bulk-create Planner tasks with dates using Microsoft Power Automate&lt;/A&gt; - &lt;A href="https://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt; (Microsoft) |&amp;nbsp;@waldekm&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/microsoft365-maturity-model--intro?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Maturity Model for Microsoft 365&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/powerplatform-samples" target="_self" rel="noopener noreferrer"&gt;Power Platform Sample Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for finding easily samples from the GitHub - contributions from the community are welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;PnP Sharing is Caring initiative&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Getting started guidance and training for using GitHub and contributing to the community&lt;/LI&gt;
&lt;LI&gt;Want to ask a question or in general engage with the community - Add a note in the Microsoft 365 PnP Community hub at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out all the great community calls, SDKs, and tooling for Microsoft 365 from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for Microsoft 365 engineering or visitors – please let us know. We will do our best to address your requests or questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Sharing is caring!"&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 07:19:07 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-125/ba-p/2318240</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-05-04T07:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2319752#M244</link>
      <description>&lt;P&gt;Thank you very much&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 00:28:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2319752#M244</guid>
      <dc:creator>sagisim</dc:creator>
      <dc:date>2021-05-04T00:28:35Z</dc:date>
    </item>
    <item>
      <title>Re: Introduction to JSON</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introduction-to-json/bc-p/2319751#M243</link>
      <description>&lt;P&gt;Thank you for this! Super useful even for advanced developers who have occasional run-ins with JSON. Bookmarked this across all my browsers.&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2021 00:27:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introduction-to-json/bc-p/2319751#M243</guid>
      <dc:creator>stchiew</dc:creator>
      <dc:date>2021-05-04T00:27:57Z</dc:date>
    </item>
    <item>
      <title>Re: Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2319132#M242</link>
      <description>&lt;P&gt;I love it. tried it out, and works like a charm&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@8341BD79091AF36AA2A09063B554B5CD/images/emoticons/smile_40x40.gif" alt=":smile:" title=":smile:" /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 May 2021 21:15:43 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2319132#M242</guid>
      <dc:creator>AdamWoj</dc:creator>
      <dc:date>2021-05-03T21:15:43Z</dc:date>
    </item>
    <item>
      <title>Office Add-ins community call – April 14, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-ins-community-call-april-14-2021/ba-p/2318886</link>
      <description>&lt;H2&gt;Call summary&lt;/H2&gt;
&lt;P&gt;April’s call, hosted by &lt;STRONG&gt;David Chesnut&lt;/STRONG&gt;, featured the following presenters and topics:&lt;BR /&gt;• &lt;STRONG&gt;Richard Taylor&lt;/STRONG&gt; discussed different support options available on Microsoft 365, and how to submit a new support ticket.&lt;BR /&gt;• &lt;STRONG&gt;Sudhi Ramamurthy&lt;/STRONG&gt; shared news about updates to APIs, Recorder, and Admin-control for Office Scripts.&lt;BR /&gt;• &lt;STRONG&gt;Leslie Black (Analysis Cloud Limited)&lt;/STRONG&gt; demonstrated a TICTACUFO application he created with Office Scripts.&lt;BR /&gt;• &lt;STRONG&gt;David Chesnut&lt;/STRONG&gt; demonstrated a new PnP sample that shows how to handle event-based activation and set the signature in Outlook.&lt;BR /&gt;To watch the call, tap the following link.&lt;BR /&gt;&lt;A href="https://www.youtube.com/watch?v=hGVdftCzs20" target="_self"&gt;Office Add-ins community call – April 2021 - YouTube&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;&lt;BR /&gt;Q&amp;amp;A (Question &amp;amp; Answers)&lt;/H2&gt;
&lt;P&gt;We welcome you to submit questions and topic suggestions prior to each call by using our short &lt;A href="https://aka.ms/officeaddinsform" target="_self"&gt;survey form&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;Support options&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;When we try to open tickets in the admin center regarding SharePoint Development they are getting immediately closed with the comment "we don't provide support for developer issues". Is that different for Office Add-ins?&lt;/STRONG&gt;&lt;BR /&gt;The comment you see applies if you don’t have a Premier account, or Enterprise SKU. If you do have a Premier account and are seeing this comment, please reach out to us on the next community call web chat so we can follow up with you.&lt;BR /&gt;&lt;STRONG&gt;What level of support can I get for my tenant from the Microsoft 365 Developer Program?&lt;/STRONG&gt;&lt;BR /&gt;The Microsoft 365 Developer Program provides standard Office 365 support, and does not include developer support. You can get help with developer questions at Microsoft Q&amp;amp;A for Office Add-ins, or at Stack Overflow [office-js].&lt;/P&gt;
&lt;H3&gt;&lt;BR /&gt;Office Scripts&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;ServiceHub is not enabled for my Enterprise ID. Is it possible for an admin to configure without admin access to rest of the Office 365 tenant?&lt;/STRONG&gt;&lt;BR /&gt;If you have a Premier account, we can reach out to your ADC/TAM and ensure you have access. If you just have an Enterprise subscription, use the O365 admin instead. Either should work.&lt;BR /&gt;&lt;STRONG&gt;Are Office Scripts for Excel on the web available to Microsoft 365 family accounts or just Enterprise?&lt;/STRONG&gt;&lt;BR /&gt;Currently, Office Scripts are only available on Enterprise, though we're exploring expanding availability to other licenses.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Miscellaneous questions&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;When will the current Outlook preview requirement set, including event-based activation, be available in production?&lt;/STRONG&gt;&lt;BR /&gt;We don't have a specific date yet, but we hope to make it available soon.&lt;BR /&gt;&lt;STRONG&gt;The Outlook REST API is going to be decommissioned. Is it safe to continue using EWS (Exchange Web Services) with Outlook add-ins going forward or is it also at risk of being decommissioned?&lt;/STRONG&gt;&lt;BR /&gt;At present, there is no plan to decommission EWS.&lt;BR /&gt;&lt;STRONG&gt;Is it possible to port Office.addin.showAsTaskpane common API function to Outlook JS?&lt;/STRONG&gt;&lt;BR /&gt;This is a great suggestion! Can you please provide more details on this idea, and scenario at &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform" target="_self"&gt;Microsoft 365 Developer Platform - Microsoft Tech Community&lt;/A&gt;?&lt;BR /&gt;&lt;STRONG&gt;One of our custom functions must access data (a table) not specified in the arguments. We've noticed that calling Excel.run to request that data through the Excel request context on every formula invocation leads to concurrency issues (RichApi.Error: Wait until the previous call completes.) Is there a flexible way to get this to work?&lt;/STRONG&gt;&lt;BR /&gt;There is a code approach used in&amp;nbsp;&lt;A href="https://github.com/OfficeDev/office-js/issues/483#issuecomment-490592291" target="_self"&gt;GitHub issue 483 in office-js&lt;/A&gt; that may help you. If that doesn’t work for your scenario, please post a question with more information at &lt;A href="https://docs.microsoft.com/answers/topics/office-js-dev.html" target="_self"&gt;Microsoft Q&amp;amp;A: Office JavaScript API&lt;/A&gt;. &lt;BR /&gt;&lt;STRONG&gt;In Excel custom functions, is there a way to pause the calculations and resume later (other than setting calculation mode to manual)? End users want to pass an additional flag to the custom function that indicates if it should run or not run.&lt;/STRONG&gt;&lt;BR /&gt;We suggest switching to manual recalc mode, instead of using an argument to the function. Our goal is for Excel custom functions to run using the same paradigm as built-in functions. We don't have a design pattern where we pause recalc based on an argument to a function. It's clearer for users if you ask them to change to manual recalc, that you could implement in the task pane UI. Then when completed, you can switch back to automatic recalculation and the custom functions will run.&lt;BR /&gt;&lt;STRONG&gt;In Excel custom functions, you can get the address of the calling cell from the invocation object. Is there a way to get the current value from the cell along with the address?&lt;/STRONG&gt;&lt;BR /&gt;We suggest that you use the onCalculated event which is called when custom functions are calculated. Here's an example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;async function onCalculated(event) {
 await Excel.run(async (context) =&amp;gt; {
        console.log(event.address);
        if (event.address == "A13") // “A13” here is an example of the cell that has the custom function. It can be replaced by a real cell address.
        {
           context.load (event.address, “values”);
           await context.sync();
          console.log(`The range value was "${cellC1.values}".`);
        }
      });
    }&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Can the Microsoft Graph API be used by an add-in without a dedicated server to proxy requests to the Graph API? We're trying to replace the usage of the Outlook REST API in an add-in that makes API calls from the client-side. We are struggling to find tutorials covering that case.&lt;/STRONG&gt;&lt;BR /&gt;If you're Outlook add-in is basically a single-page app (SPA) this tutorial will help you call the Microsoft Graph API from the add-in: &lt;A href="https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-auth-code" target="_self"&gt;Tutorial: Create a JavaScript single-page app that uses auth code flow - Microsoft identity platform | Microsoft Docs&lt;/A&gt;. There are also additional Microsoft Graph samples at &lt;A href="https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/2-WebApp-graph-user" target="_self"&gt;https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/2-WebApp-graph-user&lt;/A&gt;&lt;BR /&gt;&lt;STRONG&gt;When will Outlook sideload and debug from VS Code (as demoed in November community call) be available?&lt;/STRONG&gt;&lt;BR /&gt;This feature is available, but there is an issue that prevents it from working in all scenarios. We’re working to get a fix out soon.&lt;/P&gt;
&lt;H2&gt;Resources&lt;/H2&gt;
&lt;H3&gt;Microsoft 365 support&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://serviceshub.microsoft.com/" target="_self"&gt;Premier Services in CSS Unified Support&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://admin.microsoft.com/" target="_self"&gt;Concierge Services in Office 365 Admin Portal&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Community and Q+A Answer Forums
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/blogs/" target="_blank"&gt;https://developer.microsoft.com/en-us/office/blogs/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/answers/topics/office-addins-dev.html" target="_blank"&gt;https://docs.microsoft.com/en-us/answers/topics/office-addins-dev.html&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://stackoverflow.com" target="_blank"&gt;https://stackoverflow.com&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/office/dev/add-ins/testing/troubleshoot-development-errors" target="_self"&gt;Troubleshoot development errors with Office Add-ins&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.microsoft.com/office/dev/add-ins/testing/testing-and-troubleshooting" target="_self"&gt;Troubleshoot user errors with Office Add-ins&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://docs.microsoft.com/office/dev/add-ins/concepts/resource-limits-and-performance-optimization" target="_self"&gt;Resource limits and performance optimization for Office Add-ins&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Office Scripts demo by Leslie Black&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Source for TICTACUFOGame: &lt;A href="https://github.com/MrAnalyticals/OfficeScripts/tree/main/TICTACUFOGame" target="_blank"&gt;https://github.com/MrAnalyticals/OfficeScripts/tree/main/TICTACUFOGame&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Short demo video: &lt;A href="https://youtu.be/FMOCPm1aV_Q" target="_blank"&gt;https://youtu.be/FMOCPm1aV_Q&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Long demo video: &lt;A href="https://youtu.be/F49hwCzpygQ" target="_blank"&gt;https://youtu.be/F49hwCzpygQ&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Office Scripts LinkedIn Group: &lt;A href="https://www.linkedin.com/groups/9016822/" target="_blank"&gt;https://www.linkedin.com/groups/9016822/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Analysis Cloud Limited, The Irish Cloud Company: &lt;A href="http://www.analysis.ie" target="_self"&gt;www.analysis.ie&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;PnP: Outlook set signature&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Sample code: &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/outlook-set-signature" target="_blank"&gt;https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/outlook-set-signature&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/office/dev/add-ins/outlook/autolaunch" target="_self"&gt;Configure your Outlook add-in for event-based activation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Office Add-ins community call&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/officeaddinscommunitycall" target="_self"&gt;Recurring, monthly community call calendar invite&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/officeaddinsform" target="_self"&gt;Community call topic requests and questions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Community call recordings on &lt;A href="https://aka.ms/OfficeDevYouTube" target="_self"&gt;Microsoft 365 developer&amp;nbsp;YouTube&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&lt;BR /&gt;Office Add-ins feedback&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;Technical questions – Microsoft Q&amp;amp;A (&lt;A href="https://docs.microsoft.com/answers/topics/office-js-dev.html" target="_self"&gt;office-js-dev&lt;/A&gt;), (&lt;A href="https://docs.microsoft.com/answers/topics/office-addins-dev.html" target="_self"&gt;office-addins-dev&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;Issues – &lt;A href="https://github.com/OfficeDev/office-js/issues" target="_self"&gt;GitHub (office-js repo)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Recommendations and suggestions – &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/idb-p/Microsoft365DeveloperPlatform" target="_self"&gt;Microsoft 365 Developer Platform ideas&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The next Office Add-ins community call is on &lt;STRONG&gt;Wednesday, May 12, 2021&lt;/STRONG&gt; at 8:00AM PDT. You can download the calendar invite at &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_self"&gt;https://aka.ms/officeaddinscommunitycall&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 03 May 2021 19:56:08 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-ins-community-call-april-14-2021/ba-p/2318886</guid>
      <dc:creator>David Chesnut</dc:creator>
      <dc:date>2021-05-03T19:56:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2315356#M237</link>
      <description>&lt;P&gt;&lt;LI-USER uid="1036666"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;LI-USER uid="485227"&gt;&lt;/LI-USER&gt;&amp;nbsp;I added a link to the sample app in the blog post - this way you can download the .msapp file and the source code files to reverse engineer :)&lt;/img&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 02 May 2021 17:44:12 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2315356#M237</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-02T17:44:12Z</dc:date>
    </item>
    <item>
      <title>How to Set Up Tailwind CSS in a SPFx Project</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-set-up-tailwind-css-in-a-spfx-project/ba-p/2313192</link>
      <description>&lt;P class="graf graf--p"&gt;In the &lt;A class="markup--anchor markup--p-anchor" href="https://2020.stateofcss.com/en-US/technologies/css-frameworks/css_frameworks_experience_ranking" target="_blank" rel="noopener" data-href="https://2020.stateofcss.com/en-US/technologies/css-frameworks/css_frameworks_experience_ranking"&gt;State of CSS 2020 survey&lt;/A&gt;, the &lt;A class="markup--anchor markup--p-anchor" href="https://tailwindcss.com/" target="_blank" rel="noopener" data-href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/A&gt; becomes the number 1 CSS Framework in terms of &lt;STRONG&gt;Satisfaction&lt;/STRONG&gt; and &lt;STRONG&gt;Interest&lt;/STRONG&gt; in the last 2 years. It also gets the awards for &lt;STRONG class="markup--strong markup--p-strong"&gt;The Most Adopted Technology&lt;/STRONG&gt;. It seems a lot of developers like this framework. Based on my experience, this framework can help us rapidly build UI by reducing complexity when styling the UI.&lt;/P&gt;
&lt;FIGURE class="graf graf--figure"&gt;
&lt;DIV id="tinyMceEditorAri Gunawan_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class="lia-align-center"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="State of CSS 2020 Survey.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277241iDC0EFE176EA24C94/image-size/large?v=v2&amp;amp;px=999" role="button" title="State of CSS 2020 Survey.png" alt="State of CSS 2020 Survey.png" /&gt;&lt;/span&gt;&lt;EM&gt;State of CSS 2020 Survey — CSS Frameworks result&lt;/EM&gt;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;In this article, I will share my setup to use the Tailwind CSS in a SharePoint Framework (SPFx) project.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Prepare the SPFx Project&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;Prepare your SPFx project. I use a newly generated &lt;A class="markup--anchor markup--p-anchor" href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part" target="_blank" rel="noopener" data-href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part"&gt;SPFx project&lt;/A&gt; (v1.11) but you can also use your existing SPFx project.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Install Modules&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;Install all modules needed by executing the command below:&lt;/P&gt;
&lt;PRE class="graf graf--pre"&gt;npm install tailwindcss@1.9.6 postcss postcss-cli postcss-import @fullhuman/postcss-purgecss gulp-postcss autoprefixer@9.8.6 -D&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Initialize Tailwind CSS and PostCSS&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;Initialize Tailwind CSS by executing the command below:&lt;/P&gt;
&lt;PRE class="graf graf--pre"&gt;npx tailwind init -p --full&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;The command will create the &lt;EM class="markup--em markup--p-em"&gt;tailwind.config.js &lt;/EM&gt;in the project’s base directory. The file contains the configurations, such as colors, themes, media queries, and so on.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;The command will also create the &lt;EM class="markup--em markup--p-em"&gt;postcss.config.js&lt;/EM&gt; file. We need PostCSS because we will use Tailwind CSS as a PostCSS plugin.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Inject Tailwind CSS Components and Utilities&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;We need to create a CSS file that will be used to import Tailwind CSS styles.&lt;/P&gt;
&lt;UL class="postList"&gt;
&lt;LI class="graf graf--li"&gt;Create an a&lt;EM class="markup--em markup--li-em"&gt;ssets&lt;/EM&gt; folder in the project’s base directory&lt;/LI&gt;
&lt;LI class="graf graf--li"&gt;Create a &lt;EM class="markup--em markup--li-em"&gt;tailwind.css &lt;/EM&gt;file in the &lt;EM class="markup--em markup--li-em"&gt;assets &lt;/EM&gt;folder&lt;/LI&gt;
&lt;LI class="graf graf--li"&gt;Add the following lines of code to the file:&lt;/LI&gt;
&lt;/UL&gt;
&lt;PRE class="graf graf--pre"&gt;&lt;A class="markup--anchor markup--pre-anchor" title="Twitter profile for @import" href="http://twitter.com/import" target="_blank" rel="noopener" data-href="http://twitter.com/import"&gt;@import&lt;/A&gt; "tailwindcss/components";&lt;BR /&gt;&lt;A class="markup--anchor markup--pre-anchor" title="Twitter profile for @import" href="http://twitter.com/import" target="_blank" rel="noopener" data-href="http://twitter.com/import"&gt;@import&lt;/A&gt; "tailwindcss/utilities";&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Add Gulp Subtask for Processing Tailwind CSS&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;We need to add the Tailwind CSS build process to our SPFx build process.&lt;/P&gt;
&lt;UL class="postList"&gt;
&lt;LI class="graf graf--li"&gt;Open the &lt;EM class="markup--em markup--li-em"&gt;gulpfile.js&lt;/EM&gt;&lt;/LI&gt;
&lt;LI class="graf graf--li"&gt;Add the following lines of code to the file (before the &lt;EM class="markup--em markup--li-em"&gt;build.initialize(require(‘gulp’));&lt;/EM&gt; line):&lt;/LI&gt;
&lt;/UL&gt;
&lt;PRE class="graf graf--pre"&gt;const postcss = require("gulp-postcss");&lt;BR /&gt;const atimport = require("postcss-import");&lt;BR /&gt;const purgecss = require("@fullhuman/postcss-purgecss");&lt;BR /&gt;const tailwind = require("tailwindcss");&lt;/PRE&gt;
&lt;PRE class="graf graf--pre"&gt;const tailwindcss = build.subTask(&lt;BR /&gt;   "tailwindcss",&lt;BR /&gt;   function (gulp, buildOptions, done) {&lt;BR /&gt;      gulp&lt;BR /&gt;         .src("assets/tailwind.css")&lt;BR /&gt;         .pipe(&lt;BR /&gt;            postcss([&lt;BR /&gt;               atimport(),&lt;BR /&gt;               tailwind("./tailwind.config.js"),&lt;BR /&gt;               ...(buildOptions.args.ship&lt;BR /&gt;                  ? [&lt;BR /&gt;                       purgecss({&lt;BR /&gt;                          content: ["src/**/*.tsx"],&lt;BR /&gt;                          defaultExtractor: (content) =&amp;gt;&lt;BR /&gt;                             content.match(/[\w-/:]+(?&amp;lt;!:)/g) || [],&lt;BR /&gt;                       }),&lt;BR /&gt;                    ]&lt;BR /&gt;                  : []),&lt;BR /&gt;            ])&lt;BR /&gt;         )&lt;BR /&gt;         .pipe(gulp.dest("assets/dist"));&lt;BR /&gt;      done();&lt;BR /&gt;   }&lt;BR /&gt;);&lt;BR /&gt;build.rig.addPreBuildTask(tailwindcss);&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;The code will add the &lt;EM class="markup--em markup--p-em"&gt;tailwindcss&lt;/EM&gt; subtask to the SPFx Gulp Build task. It will also purge (remove unused styles) the Tailwind CSS for build with &lt;EM class="markup--em markup--p-em"&gt;ship &lt;/EM&gt;flag:&lt;/P&gt;
&lt;PRE class="graf graf--pre"&gt;gulp build --ship&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;or&lt;/P&gt;
&lt;PRE class="graf graf--pre"&gt;gulp bundle --ship&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Add Reference to The Generated Tailwind CSS&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;We need to add reference the generated Tailwind CSS by adding the import code in your main&amp;nbsp;&lt;EM class="markup--em markup--p-em"&gt;.ts &lt;/EM&gt;webpart file:&lt;/P&gt;
&lt;PRE class="graf graf--pre"&gt;import '../../../assets/dist/tailwind.css';&lt;/PRE&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;That’s it!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;Now you can use Tailwind CSS utilities in your SPFx project.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;STRONG class="markup--strong markup--p-strong"&gt;Result&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;You might be familiar with the below result except it’s not using styles from the 74-lines scss/css file anymore.&lt;/P&gt;
&lt;FIGURE class="graf graf--figure"&gt;
&lt;DIV id="tinyMceEditorAri Gunawan_1" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class="graf graf--p"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="REsult.png" style="width: 800px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277243i1E0124ACF6E7E0CE/image-size/large?v=v2&amp;amp;px=999" role="button" title="REsult.png" alt="REsult.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;Below is the updated React component that’s using the Tailwind CSS utility classes for styling.&lt;/P&gt;
&lt;P class="graf graf--p"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Latest code.png" style="width: 800px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277245iD2A1752C4B480D5C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Latest code.png" alt="Latest code.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="graf graf--p"&gt;You can see the full code changes in my &lt;A class="markup--anchor markup--p-anchor" href="https://github.com/AriGunawan/spfx-react-tailwindcss/commit/0234cd2ec01c465ed3d1c0cace88f79f57d5b483?branch=0234cd2ec01c465ed3d1c0cace88f79f57d5b483&amp;amp;diff=split" target="_blank" rel="noopener" data-href="https://github.com/AriGunawan/spfx-react-tailwindcss/commit/0234cd2ec01c465ed3d1c0cace88f79f57d5b483?branch=0234cd2ec01c465ed3d1c0cace88f79f57d5b483&amp;amp;diff=split"&gt;Github repository&lt;/A&gt;.&lt;/P&gt;
&lt;/FIGURE&gt;</description>
      <pubDate>Sat, 01 May 2021 08:48:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-set-up-tailwind-css-in-a-spfx-project/ba-p/2313192</guid>
      <dc:creator>Ari Gunawan</dc:creator>
      <dc:date>2021-05-01T08:48:06Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 Developer Community Call recording – 29th of April, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-29th-of-april/ba-p/2307369</link>
      <description>&lt;P&gt;Recording of the Microsoft 365 – General M365 development Special Interest Group (SIG) community call from April 29, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="sig-29th-apr-recording.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276964i1798D7CA378F1221/image-size/large?v=v2&amp;amp;px=999" role="button" title="sig-29th-apr-recording.png" alt="sig-29th-apr-recording.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Latest news from Microsoft 365 engineering and updates on open-source projects: PnP .NET libraries, PnP PowerShell, modernization tooling, on yo Teams, on Microsoft Graph Toolkit, and on Microsoft Teams Samples.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Announcing the release of SharePoint Framework v1.12.1, check out the new &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;, visit the &lt;A href="https://aka.ms/teams-samples" target="_blank" rel="noopener"&gt;Microsoft Teams samples gallery&lt;/A&gt; to get started with Microsoft Teams development, please complete the &lt;A href="https://aka.ms/m365pnp/survey" target="_blank" rel="noopener"&gt;Microsoft 365 developer community survey&lt;/A&gt;, and register now for May trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;.&amp;nbsp; Open-source project activity is focused on prepping for May releases.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Open-source project status:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Current Version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Framework&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.4.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Bug fixes, Prepping for v1.5.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP .NET Libraries - PnP Core SDK&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Bug fixes, Prepping for v1.2.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;PnP PowerShell&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.5.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Prepping for v1.6.0 (May)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - generator-teams&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v3.0.3 GA, v3.1.0 Preview&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Preview with Viva Connections support&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - yoteams-build-core&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v1.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Yo teams - msteams-react-base-component&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v3.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;Microsoft Graph Toolkit (MGT)&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;v2.1.0 GA, v2.2.0 Preview&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Bug fixes and v2.2.0 preview updates&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additionally, one new Teams sample delivered.&amp;nbsp; The host of this call was &lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen. &amp;nbsp;Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/1NE_uMlpD08" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Last week to complete the Microsoft 365 Developer Community Survey – &lt;A href="https://aka.ms/m365pnp/survey" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/survey&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Try the public beta of SPFx v1.12.1.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Reserve date - SharePoint Monthly community call - 11&lt;SUP&gt;th&lt;/SUP&gt; of May 8 AM PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;May 24&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;April&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xJTFJZN01MWlZQVFc3UjgxRUxQQkhDSS4u" target="_blank" rel="noopener"&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMDdKSjQxRDhKVzhCVUQ4VDdIQVZRVTZOSi4u" target="_blank" rel="noopener"&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Power Platform Samples – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMUIxSldXNDdTOFJWTENSTTM0QlBLWUM3NS4u" target="_blank" rel="noopener"&gt;May 5&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Tech Community – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUQlpKUUlUUUtFR1VTSUxUVzI3NUs5SzhNWC4u" target="_blank" rel="noopener"&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUNDJOOU5JREc2TUhCVzNGTTJFUldSUUNUSy4u" target="_blank" rel="noopener"&gt;May 25&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;More than Code with VS Code – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;May 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt; &amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUODY3NVRFQ0E4SFg5WlI1TU83WFJQRklZSy4u" target="_blank" rel="noopener"&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Call attention to your great work by using the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/hashtag/PnPWeekly?src=hashtag_click" target="_blank" rel="noopener nofollow noreferrer"&gt;#PnPWeekly&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;on Twitter.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft Teams Development Samples:&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;(&lt;A href="https://aka.ms/TeamsSampleBrowser" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/TeamsSampleBrowser&lt;/A&gt;)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Document manager sample app using messaging – Sathya Raveendran, Varaprasa...&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210429-together-mode.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276965i63446C91AFD4CDE5/image-size/large?v=v2&amp;amp;px=999" role="button" title="210429-together-mode.gif" alt="210429-together-mode.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for being part of the community and for helping others to succeed.&amp;nbsp; You are awesome!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;delivered in this session&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Delegated and application permissions in the Microsoft Identity Platform&lt;/STRONG&gt; – demystifies the identity model with a clearly delivered 100 level overview of app permissions - operation and terminology, i.e., delegation, requests, grants, consent, tokens, etc.&amp;nbsp; &amp;nbsp;&amp;nbsp;How app/services permission delegation works, how tokens are aligned to a machine or to a person. Is the app or person authorized to access resources?&amp;nbsp; How and when machines dynamically/statically request permissions and more.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Localization check inside SharePoint Framework projects – VS Code extension to increase your productivity&lt;/STRONG&gt; – a VS Code and Node.js extension that keeps resources in sync by making sure all localization labels inside SharePoint Framework project files across organization are consistent.&amp;nbsp; &amp;nbsp;The extension is automatically activated for your SPFx solutions and checks, whether localization resource files (en-us.js,&amp;nbsp;nl-nl.js, etc.) follow the pattern, defined in the corresponding&amp;nbsp;strings.d.ts. Prevents accidental or refactoring errors in SPFx solutions.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Using field lookups with list formatting&lt;/STRONG&gt; – Field Type = “Lookup.”&amp;nbsp; Lookups get values from a list and have limited formatting options. &amp;nbsp;Of horse, this limitation does not deter Chris from showing crazy, crazier, craziest formatting options for lookups.&amp;nbsp;&amp;nbsp; Approach = format the lookup column into which content from the list will flow.&amp;nbsp; Use advanced forEach property. &amp;nbsp;&amp;nbsp;In this demo, Chris shows formatting capabilities available in a referenced sample. &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Thank you for your work. Samples are often showcased in Demos.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Topics&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;covered in this call&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PnP .NET library updates -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/o365bert" target="_blank" rel="noopener nofollow noreferrer"&gt;Bert Jansen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @O365bert -&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/1NE_uMlpD08?t=419" target="_self"&gt;6:59&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP PowerShell updates -&amp;nbsp;&lt;A href="http://twitter.com/o365bert" target="_blank" rel="noopener nofollow noreferrer"&gt;Bert Jansen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @O365bert&amp;nbsp;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/1NE_uMlpD08?t=523" target="_self"&gt;8:43&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;yo Teams updates -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/wictor" target="_blank" rel="noopener nofollow noreferrer"&gt;Wictor Wilén&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Avanade) | @wictor&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;- &lt;A href="https://youtu.be/1NE_uMlpD08?t=593" target="_self"&gt;9:53&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit updates -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/beth_panx" target="_blank" rel="noopener nofollow noreferrer"&gt;Beth Pan&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/803637" target="_blank" rel="noopener"&gt;@beth_panx&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/1NE_uMlpD08?t=670" target="_self"&gt;11:10&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Teams Samples - &lt;A href="http://twitter.com/vesajuvonen" target="_self"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen -&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/1NE_uMlpD08?t=753" target="_self"&gt;12:33&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Delegated and application permissions in the Microsoft Identity Platform – &lt;A href="http://twitter.com/psignoret" target="_blank" rel="noopener"&gt;Philippe Signoret&lt;/A&gt; (Microsoft) | @psignoret - &lt;A href="https://youtu.be/1NE_uMlpD08?t=888" target="_self"&gt;14:48&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Localization check inside SharePoint Framework projects – VS Code extension to increase your productivity – &lt;A href="http://twitter.com/sergeev_srg" target="_blank" rel="noopener"&gt;Sergei Sergeev&lt;/A&gt; (Mastaq) | @sergeev_srg - &lt;A href="https://youtu.be/1NE_uMlpD08?t=1822" target="_self"&gt;30:22&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Demo:&lt;/STRONG&gt;&amp;nbsp; Using field lookups with list formatting – &lt;A href="http://twitter.com/theChrisKent" target="_blank" rel="noopener"&gt;Chris Kent&lt;/A&gt; (DMI) | @theChrisKent&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;- &lt;A href="https://youtu.be/1NE_uMlpD08?t=2568" target="_self"&gt;42:48&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kZjiGKQhUYlcnca?e=DksKJ7" target="_blank" rel="nofollow noopener noreferrer"&gt;Slides used in this ​community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog - &lt;A href="https://spblog.net/post/2021/04/29/spfx-check-locale-a-nice-option-to-check-your-localization-consistency-across-sharepoint-framework-solution" target="_blank" rel="noopener"&gt;SPFx Check Locale - a nice option to check your localization consistency across SharePoint Framework solution&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;VS Code Extension - &lt;A href="https://marketplace.visualstudio.com/items?itemName=s-kainet.spfx-check-locale" target="_blank" rel="noopener"&gt;SPFx Check Locale&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;Repo - &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://github.com/s-KaiNet/spfx-check-locale" target="_blank" rel="noopener"&gt;Checks that your localization files match the schema inside mystrings.d.ts&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo - &lt;A href="https://github.com/pnp/List-Formatting/tree/master/column-samples/multi-lookup-projected-field" target="_blank" rel="noopener"&gt;Multi-lookup fields and projected fields&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Demos – &lt;A href="https://youtube.com/c/Microsoft365PnPCommunity/search?query=format%20flow" target="_blank" rel="noopener"&gt;Other formatting demos from Chris&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation – &lt;A style="background-color: #ffffff;" href="https://support.microsoft.com/en-us/office/create-list-relationships-by-using-unique-and-lookup-columns-80a3e0a6-8016-41fb-ad09-8bf16d490632?ui=en-US&amp;amp;rs=en-US&amp;amp;ad=US" target="_blank" rel="noopener"&gt;Create list relationships by using unique and lookup columns&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: inherit;"&gt;PnP Weekly – Episode 124&lt;/SPAN&gt; with&lt;SPAN style="font-family: inherit;"&gt; guest MVP&amp;nbsp;from Sympraxis Consulting&amp;nbsp;&lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://twitter.com/EEMancini" target="_blank" rel="noopener"&gt;Emily Mancini&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt; |@EEMancini | &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-124/ba-p/2294147" target="_blank" rel="noopener"&gt;video&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt; | &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://pnpweekly.podbean.com/e/pnp-weekly-episode-124-26th-of-april-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://adoption.microsoft.com/extensibility-look-book?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365/extensibility&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pnp.github.io/teams-dev-samples/" target="_blank" rel="noopener nofollow noreferrer"&gt;Microsoft Teams Samples Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/teams-samples&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General resources&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp/ct-p/Microsoft365PnP" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community hub&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp/community&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Microsoft Graph Toolkit in Microsoft Learn |&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/learn-mgt" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/learn-mgt&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://lookbook.microsoft.com/?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint look book&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams-training" target="_blank" rel="noopener noreferrer"&gt;Yo Teams video training package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/net-standard-version-of-sharepoint-online-csom-apis?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;.NET Standard 2.0 version of SharePoint Online CSOM API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 community (PnP) videos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp-videos&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension" target="_blank" rel="noopener noreferrer"&gt;Microsoft Teams Toolkit for Visual Studio Code&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/yoteams" target="_blank" rel="noopener noreferrer"&gt;yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/yoteams&lt;/LI&gt;
&lt;LI&gt;Video -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://youtu.be/w0OrFkzNC10" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started using yo Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener nofollow noreferrer"&gt;Wictor Wilén&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Avanade)| @wictor&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/build-a-crisis-management-site-to-connect-people-and-information/ba-p/1216791?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener"&gt;Build a crisis management site to connect people and information&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;Developer documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-docs" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/sppnp-modernization-partnerguidance" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Partner Guidance&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Feedback welcome&lt;/LI&gt;
&lt;LI&gt;Solution -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/pnp-modern-search" target="_blank" rel="noopener noreferrer"&gt;Building a modern search experiences with SharePoint Framework web parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformation" target="_blank" rel="noopener noreferrer"&gt;Page transformation guidance&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-pagetransformationvideos" target="_blank" rel="noopener noreferrer"&gt;Page transformation videos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-modernizationscanner" target="_blank" rel="noopener noreferrer"&gt;Modernization scanner&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/dev-program?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer program site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Need to become a Tenant Admin to test look book capabilities? Get a Microsoft 365 E5 developer subscription (free tenant for 90 days)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://provisioning.sharepointpnp.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;SharePoint Provisioning Service&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;- Easily provision look book designs to any tenant in the world&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-provisioning-templates" target="_blank" rel="noopener noreferrer"&gt;SharePoint Provisioning templates on Github&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/pnp-provisioning-tenant-templates?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;PnP Provisioning Tenant Templates documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/sharepoint-page-transformation-webcast-series?WT.mc_id=m365-24198-cxa" target="_blank" rel="noopener noreferrer"&gt;SharePoint Page Transformation webcast series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sppnp-powershell" target="_blank" rel="noopener noreferrer"&gt;PnP Power Shell&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-modernization/tree/dev/Tools" target="_blank" rel="noopener noreferrer"&gt;SharePoint Modernization Tools&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming Calls | Recurrent Invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call - &lt;/STRONG&gt;May 4&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 6&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;May 12&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Identity Platform &lt;/STRONG&gt;&lt;STRONG&gt;– &lt;/STRONG&gt;May 20&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;General Microsoft 365 Dev Special Interest Group bi-weekly calls are targeted at anyone who's interested in the general Microsoft 365 development topics. This includes Microsoft Teams, Bots, Microsoft Graph, CSOM, REST, site provisioning, PnP PowerShell, PnP Sites Core, Site Designs, Microsoft Flow, PowerApps, Column Formatting, list formatting, etc. topics. More details on the Microsoft 365 community from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365pnp&lt;/A&gt;. We also welcome community demos, if you are interested in doing a live demo in these calls!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can download recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365-dev-sig" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/m365-dev-sig&lt;/A&gt;. Welcome and join in the discussion. If you have any questions, comments, or feedback, feel free to provide your input as comments to this post as well. More details on the Microsoft 365 community and options to get involved are available from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/sppnp" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;P&gt;&lt;EM&gt;Microsoft 365 PnP team, Microsoft - 30th of April 2021&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Apr 2021 11:15:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-developer-community-call-recording-29th-of-april/ba-p/2307369</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-04-30T11:15:17Z</dc:date>
    </item>
    <item>
      <title>Re: Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2309935#M235</link>
      <description>&lt;P&gt;I've recently done a video on this solution too - if you care to have a watch&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@A027B0AAF3CA617A1E2E22C4E761B2FE/images/emoticons/stareyes_40x40.gif" alt=":stareyes:" title=":stareyes:" /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.youtube.com/embed/fo0EXcjWN6w" target="_blank"&gt;Video is here&lt;/A&gt;&amp;nbsp;or watch below&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IFRAME src="https://www.youtube.com/embed/fo0EXcjWN6w?enablejsapi=1&amp;amp;origin=http://example.com" width="640" height="390" frameborder="0" id="player" type="text/html"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Apr 2021 09:47:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2309935#M235</guid>
      <dc:creator>DamoBird365</dc:creator>
      <dc:date>2021-04-30T09:47:22Z</dc:date>
    </item>
    <item>
      <title>Power Platform MS Forms Quiz with dynamic Leader Board created using Power Automate and HTTP Trigger</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-platform-ms-forms-quiz-with-dynamic-leader-board-created/ba-p/2308467</link>
      <description>&lt;P&gt;Here is an example Power Automate solution where we query a real SharePoint List acting as a Quiz Leader Board on my dev tenant and bring the contents to this very blog post (at the bottom of the page).&amp;nbsp; Using the Power Automate and the HTTP trigger we can retrieve, embed and display content from our Office 365 environments.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The competition is rife at the top of this Leader Board.&amp;nbsp; The aim is to get 100% and it is ordered by last completed to give everyone a chance to be top, albeit I am sorry to say that there is no official badge for this one.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Want to test your Power Automate knowledge?&amp;nbsp; &amp;nbsp;&lt;A href="https://forms.office.com/pages/responsepage.aspx?id=0QHJFmOXsUmWHGzXAfXQ92JiZGxvT_tLiMeGs9ElLKxUQ1RRWFpGSEtVTjFDQ0QwNU1FUlkzSDlKMC4u" target="_self"&gt;Click Here&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_0-1619726369840.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276915i5B7F6B6D08A4F094/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_0-1619726369840.png" alt="DamoBird365_0-1619726369840.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the&amp;nbsp;&lt;STRONG&gt;first flow&lt;/STRONG&gt; of &lt;STRONG&gt;two&lt;/STRONG&gt;, using Microsoft Forms and Power Automate I have built a pretty standard process.&amp;nbsp; The user completes the quiz, the form gives them feedback on how well they have done and I capture the answers to a SharePoint List - seen below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_0-1619730541847.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276941i97B4991EF528EA24/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_0-1619730541847.png" alt="DamoBird365_0-1619730541847.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I use the &lt;STRONG&gt;when a new [form] response is submitted&lt;/STRONG&gt; trigger and during the next couple of actions I calculate their score again (based on their answers) as the score is not passed back to the Cloud Flow via the Response Body.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_1-1619726475005.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276916iBC7CE36CF0E38547/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_1-1619726475005.png" alt="DamoBird365_1-1619726475005.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;What's the Score?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;In order to calculate the score I have created an array via a &lt;STRONG&gt;compose&lt;/STRONG&gt; action and used the equals expression.&amp;nbsp; If the response equals the answer, it will return true.&amp;nbsp; I then use a &lt;STRONG&gt;filter&lt;/STRONG&gt; action on the &lt;STRONG&gt;item()&lt;/STRONG&gt; of each output from the select and filter on true.&amp;nbsp; This will leave me with an array of true values.&amp;nbsp; During the create item score field and tweet action, I use the&amp;nbsp;&lt;STRONG&gt;length()&lt;/STRONG&gt; expression (i.e. length of array from 10 possible true answers) to return the number of answers equaling true and multiply by 10 to get the percentage correct.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_2-1619726584442.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276917iF1ACAB6C873F0BD3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_2-1619726584442.png" alt="DamoBird365_2-1619726584442.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The final stage of this flow is a &lt;STRONG&gt;condition&amp;nbsp;&lt;/STRONG&gt;where I check to see if the user has supplied a twitter handle.&amp;nbsp; If it's not empty I tweet out their score.&amp;nbsp; The only disappointment here is that Twitter will not let you tag users due to spamming&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@2F5B53C90739358292524B2CDF7F85DA/images/emoticons/cry_40x40.gif" alt=":cry:" title=":cry:" /&gt; any attempt to include an&amp;nbsp;@ result in it being stripped out.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;The Leader Board&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The interesting piece though, is the &lt;STRONG&gt;second flow&lt;/STRONG&gt;, using the HTTP trigger action to present the leader board to the web and seen below (at least until my &lt;EM&gt;premium trial&lt;/EM&gt; has not expired).&amp;nbsp; Using the trigger we can run an action to get items, prepare HTML table rows using a select action and send back a response to the website in a fraction of a second.&amp;nbsp; The end user loading the website almost doesn't know it's happening, albeit there is a slight delay for the flow to run, i'll admit.&amp;nbsp; &lt;EM&gt;Did you notice the delay in this page loading?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_3-1619727062254.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276919iB9B5B9694F8AC801/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_3-1619727062254.png" alt="DamoBird365_3-1619727062254.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The reponse to the embedded IFrame on my Blog and indeed this article which is simply calling the url provided by the HTTP Request trigger is an HTML table.&amp;nbsp; I create the table header and then using the select action body, I use the &lt;STRONG&gt;join()&lt;/STRONG&gt;&amp;nbsp;expression to join the elements of the array with '' into a string and complete the HTML table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_4-1619727245209.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276921i533EA55E25D87A80/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_4-1619727245209.png" alt="DamoBird365_4-1619727245209.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not a web developer and I am sure that there will be slicker ways to embed the results of the http response into your site and for that I would be grateful to hear from those with experience but what do you think of this idea?&amp;nbsp; &lt;EM&gt;Are you on the leader board yet?&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As things stand - here is the leader board.&amp;nbsp; Can you resist not talking part?&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&lt;A href="https://forms.office.com/pages/responsepage.aspx?id=0QHJFmOXsUmWHGzXAfXQ92JiZGxvT_tLiMeGs9ElLKxUQ1RRWFpGSEtVTjFDQ0QwNU1FUlkzSDlKMC4u" target="_self"&gt;Click Here&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="container" align="center"&gt;&lt;IFRAME src="https://prod-16.uksouth.logic.azure.com:443/workflows/f33207075aaa4425b9fd184f17637d14/triggers/manual/paths/invoke?api-version=2016-06-01&amp;amp;sp=%2Ftriggers%2Fmanual%2Frun&amp;amp;sv=1.0&amp;amp;sig=GdAfhGoIC-wPuREBb-AtvMXDg7p4ayRZd2rMfZiHs-4" width="80%" height="500" class="responsive-iframe"&gt;&lt;/IFRAME&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Tweets with your result will be posted via my twitter handle &lt;A href="https://twitter.com/DamoBird365" target="_self"&gt;DamoBird365&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Meanwhile, if you are looking for a certificate for your efforts, fill out my &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=0QHJFmOXsUmWHGzXAfXQ92JiZGxvT_tLiMeGs9ElLKxURVQ0WkgwUkdPRVRWOUVDNkJUTE5CRUYzTy4u" target="_self"&gt;form here&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;Happy quizzing&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@7EBDB192371E60F0C05B7773EFC0C76E/images/emoticons/xd_40x40.gif" alt=":xd:" title=":xd:" /&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 22:30:34 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-platform-ms-forms-quiz-with-dynamic-leader-board-created/ba-p/2308467</guid>
      <dc:creator>DamoBird365</dc:creator>
      <dc:date>2021-04-29T22:30:34Z</dc:date>
    </item>
    <item>
      <title>How to get Source Code files for Power Apps Canvas apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-get-source-code-files-for-power-apps-canvas-apps/ba-p/2308822</link>
      <description>&lt;P&gt;This post will guide you through the process of how to use the Power Apps Language Toolkit to extract a Power Apps .msapp file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Why would you want to have the source code files?&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;To make your app reusable, so that more people can benefit from it, you will want to share the source code files. Unfortunately, when you save your Canvas App from Power Apps Studio, it is saved in one opaque .msapp file. To be able to get the source files, you will need to use the Power Apps Language Toolkit to extract all files from the .msapp file. This way,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;developers can not only open the source code in their code editor of choice but can effectively manage the code of a Canvas app in GitHub or Azure DevOps. This makes a huge difference as we can't look into .msapp files.&lt;/LI&gt;
&lt;LI&gt;makers can still open the .msapp file to easily import an app sample into their environment&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Prerequisites&lt;/H2&gt;
&lt;P&gt;To be able to use the Power Apps Language Toolkit, you will need to&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;install&lt;A href="https://code.visualstudio.com" target="_blank" rel="noopener"&gt; Visual Studio Code&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;install&lt;A href="https://dotnet.microsoft.com/download/dotnet-core/3.1" target="_self"&gt; .NET Core 3.1.x (x64)&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;download the Power Apps Language Toolkit
&lt;UL&gt;
&lt;LI&gt;go to &lt;A href="https://github.com/microsoft/PowerApps-Language-Tooling" target="_blank" rel="noopener"&gt;github.com/microsoft/PowerApps-Language-Tooling&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;Download ZIP&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;extract the Power Apps Language Toolkit to a local folder&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;open that local folder&lt;/LI&gt;
&lt;LI&gt;locate the build.cmd file&lt;/LI&gt;
&lt;LI&gt;rightclick, &lt;STRONG&gt;Run as Administrator&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;in the Pop up Window, select &lt;STRONG&gt;more info&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;Run anyway&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Please note, that command Prompt will open, show a few lines and then close automatically again. &lt;BR /&gt;Please also not, that you can now find a &lt;STRONG&gt;bin&lt;/STRONG&gt;&amp;nbsp;folder in the local folder you extracted the PowerApps Language Toolkit to. In this &lt;STRONG&gt;bin&lt;/STRONG&gt;&amp;nbsp;folder, you will find a &lt;STRONG&gt;Debug&lt;/STRONG&gt;&amp;nbsp;folder and inside of the &lt;STRONG&gt;Debug&lt;/STRONG&gt;&amp;nbsp;folder you will find a &lt;STRONG&gt;PASopa&lt;/STRONG&gt; folder.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PASopa-folder.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/277010iF426272EB0CD5C95/image-size/large?v=v2&amp;amp;px=999" role="button" title="PASopa-folder.png" alt="PASopa-folder.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Download the .msapp file&lt;/STRONG&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;go to [make.powerapps.com](&lt;A href="https://make.powerapps.com" target="_blank" rel="noopener"&gt;https://make.powerapps.com&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;log in&lt;/LI&gt;
&lt;LI&gt;open your app in edit mode&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;File&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;Save as&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;select &lt;STRONG&gt;This Computer&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;select&amp;nbsp;&lt;STRONG&gt;Download&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;move the downloaded .msapp file to your folder in which you extracted the PowerApps Language Toolkit as well&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;unpack .msapp file&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Now that we have the .msapp file of the app:&lt;/LI&gt;
&lt;LI&gt;press the WINDOWS key on your keyboard and search for &lt;STRONG&gt;Command Prompt&lt;/STRONG&gt;&amp;nbsp;(first few letters should do)&lt;/LI&gt;
&lt;LI&gt;run as an Administrator&lt;/LI&gt;
&lt;LI&gt;copy the path of the &lt;STRONG&gt;PASopa&lt;/STRONG&gt;&amp;nbsp;folder&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;type in Command Prompt `cd &amp;lt;your PASopa path&amp;gt;`&lt;/LI&gt;
&lt;LI&gt;copy the path of the .msapp file&lt;/LI&gt;
&lt;LI&gt;create a new folder in your app folder&lt;/LI&gt;
&lt;LI&gt;copy the path of that new folder&lt;/LI&gt;
&lt;LI&gt;type in Command Prompt `pasopa -unpack &amp;lt;your msappfile path&amp;gt; &amp;lt;new folder path&amp;gt;`&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Please note that you will now find all source code files in that new folder. You can open the folder in a code Editor of your choice, for example Visual Studio Code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;submit as a sample&lt;/H2&gt;
&lt;P&gt;Well done! If you like to contribute with your app to the &lt;A href="https://pnp.github.io/powerplatform-samples/" target="_self"&gt;PnP Power Apps sample gallery&lt;/A&gt;&amp;nbsp;, you can submit your app with these source code files here. To do so, follow these steps:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now you can submit these source code files as a sample. Please&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;fork the &lt;A href="https://github.com/pnp/powerapps-samples" target="_self"&gt;PnP PowerApps repository&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;commit your files&lt;/LI&gt;
&lt;LI&gt;Pull Request by filling out the PR template&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please do not forget to provide as well a `README.md` file which explains what your sample is about.&lt;/P&gt;
&lt;P&gt;If this all sounds confusing to you and you are new on GitHub - you are more than welcome to attend the &lt;A href="https://pnp.github.io/sharing-is-caring" target="_self"&gt;Sharing Is Caring&lt;/A&gt; sessions, where we guide you through using GitHub and making your first PR.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Sharing Is Caring&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Apr 2021 10:47:20 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-get-source-code-files-for-power-apps-canvas-apps/ba-p/2308822</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-30T10:47:20Z</dc:date>
    </item>
    <item>
      <title>Re: CLI for Microsoft 365 v3.9</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2307292#M231</link>
      <description>&lt;P&gt;&lt;LI-USER uid="716447"&gt;&lt;/LI-USER&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@A027B0AAF3CA617A1E2E22C4E761B2FE/images/emoticons/stareyes_40x40.gif" alt=":stareyes:" title=":stareyes:" /&gt;&amp;nbsp;NICE!&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@A027B0AAF3CA617A1E2E22C4E761B2FE/images/emoticons/stareyes_40x40.gif" alt=":stareyes:" title=":stareyes:" /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 15:05:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2307292#M231</guid>
      <dc:creator>Timothy Balk</dc:creator>
      <dc:date>2021-04-29T15:05:53Z</dc:date>
    </item>
    <item>
      <title>Re: CLI for Microsoft 365 v3.9</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2306693#M230</link>
      <description>&lt;P&gt;&lt;LI-USER uid="228093"&gt;&lt;/LI-USER&gt;&amp;nbsp;yes, that's correct.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 13:24:44 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2306693#M230</guid>
      <dc:creator>garrytrinder</dc:creator>
      <dc:date>2021-04-29T13:24:44Z</dc:date>
    </item>
    <item>
      <title>Re: CLI for Microsoft 365 v3.9</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2306631#M229</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;Add a specific application p&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt;ermissions to a SharePoint Online site&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this feature using the scoped site permissions in the Graph API for applications?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Like in this demo:&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=wcJRQDsXMQ8&amp;amp;list=PLWZJrkeLOrbYJEr_LoIJ7-1Goy09XJzha" target="_blank"&gt;https://www.youtube.com/watch?v=wcJRQDsXMQ8&amp;amp;list=PLWZJrkeLOrbYJEr_LoIJ7-1Goy09XJzha&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 13:02:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/bc-p/2306631#M229</guid>
      <dc:creator>Timothy Balk</dc:creator>
      <dc:date>2021-04-29T13:02:24Z</dc:date>
    </item>
    <item>
      <title>CLI for Microsoft 365 v3.9</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/ba-p/2304639</link>
      <description>&lt;H2&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="banner-cli-m365.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276416i43B40F3BC785E1C6/image-size/large?v=v2&amp;amp;px=999" role="button" title="banner-cli-m365.png" alt="CLI for Microsoft 365" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;CLI for Microsoft 365&lt;/span&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="toc-hId--496485426"&gt;&lt;SPAN&gt;Manage Microsoft 365 and SharePoint Framework projects on any platform&lt;/SPAN&gt;&lt;/H2&gt;
&lt;DIV&gt;&lt;SPAN&gt;CLI for Microsoft 365 is a cross-platform CLI that allows you to manage various configuration settings of Microsoft 365 and SharePoint Framework projects no matter which operating system or shell you use.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;While building solutions for Microsoft 365 expands beyond the Windows operating system, managing many of the platform settings is possible only through PowerShell on Windows. As more and more users work on non-Windows machines, it’s inconvenient for them to have to use a Windows virtual machine to configure their tenants. With the CLI for Microsoft 365, you can configure your tenant no matter which operating system you use. Additionally, using CLI for Microsoft 365, you can manage your SharePoint Framework projects.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H2 id="toc-hId-1991027407"&gt;&lt;SPAN&gt;New version of CLI for Microsoft 365 – v3.9&lt;/SPAN&gt;&lt;/H2&gt;
&lt;DIV&gt;&lt;SPAN&gt;Following our monthly release cadence, we’ve released a new version of the CLI for Microsoft 365 with some new capabilities. Here are a few of the most noteworthy additions.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2 id="toc-hId-183572944"&gt;&lt;SPAN&gt;Changes&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;We’ve continued improving CLI building upon the changes we’ve introduced in the previous version.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Support for upgrading SharePoint Framework (SPFx) projects to beta versions&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;With the new &lt;A href="https://developer.microsoft.com/en-us/sharepoint/blogs/announcing-public-preview-of-sharepoint-framework-1-12-1/" target="_self"&gt;public preview release of SharePoint Framework 1.12.1&lt;/A&gt; and a new public quality assurance model that was announced with it, we are delighted to announce that we have added support for upgrading your SharePoint Framework projects to the latest beta release candidate.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;To upgrade your SharePoint Framework project to the latest preview version, execute:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;PRE&gt;m365 spfx project upgrade --preview&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV&gt;As part of our beta release cadence, when new release candidates are made available in npm, we will release support for upgrading to that new version as soon as they are available.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Support for creating Azure Active Directory (AAD) applications from a manifest&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;As part of our efforts to make development easier in Microsoft 365, we have released support for creating Azure Active Directory application registrations from an app manifest file.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;A typical scenario for developers and administrators is to create app registrations in the Azure Portal manually through the friendly user interface, however this can be time-consuming and error prone to repeat for multiple environments.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This update will enable you to copy the app manifest file that is generated in the Azure Portal and pass it into the command to confidently recreate app registrations.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;PRE&gt;m365 aad app add --manifest @manifest.json&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Support for using relative URLs in SharePoint Online (SPO) commands&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;CLI for Microsoft 365 contains a number of commands for managing SharePoint Online. Each of these commands requires you to specify the site or web on which you want to execute the command. For example, to get information about a site collection located at https://contoso.sharepoint.com/sites/contoso,&amp;nbsp;you'd execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 spo site get --url https://contoso.sharepoint.com/sites/contoso&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;If you executed an &lt;EM&gt;spo&lt;/EM&gt; command previously, CLI for Microsoft 365 already knows the hostname of your SharePoint Online tenant. In such case, you can use a server-relative URL as well:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 spo site get --url /sites/contoso&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;If you try to use a server-relative URL but CLI for Microsoft 365 doesn't know of your SharePoint Online URL yet, you will see an error prompting you to either use an absolute URL or set the SPO URL using the &lt;EM&gt;spo set&lt;/EM&gt; command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 spo set --url https://contoso.sharepoint.com&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;You can also execute a command like &lt;EM&gt;m365 spo site list&lt;/EM&gt; that will automatically detect your SharePoint Online tenant URL for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To check if CLI detected the SPO URL previously, use the &lt;EM&gt;m365 spo get&lt;/EM&gt;&amp;nbsp;command.&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Moved from adal-node to msal-node&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;CLI for Microsoft 365 up to this point has been using the Microsoft Azure Directory Authentication Library for nodejs (adal-node) for handling authentication requests between the CLI and Microsoft 365, however the ADAL library was put into maintenance mode and stopped receiving updates on June 30th 2020.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;With this release we have moved to use the Microsoft Authentication Library for nodejs (msal-node) which replaces adal-node, ensuring that the CLI for Microsoft 365 is able to receive updates and take advantage of new authentication features added to msal-node going forwards.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2 id="toc-hId-1543689684"&gt;&lt;SPAN&gt;New Commands&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Add a role to a specified Azure&amp;nbsp;Active&amp;nbsp;Directory (AAD) app registration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Role-based access control (RBAC) is a popular mechanism to enforce authorization in applications. When using RBAC, an administrator grants permissions to roles, and not to individual users or groups. The administrator can then assign roles to different users and groups to control who has access to what content and functionality.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To a&lt;SPAN&gt;dd a role to the Azure AD application registration specified by its name&lt;/SPAN&gt;, execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 aad app role add --appName "My app" --name Managers --description "Managers" --allowedMembers usersGroups --claim managers&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;Add a new Microsoft Planner plan&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All teams need to track tasks, a quick and easy way to do that in Microsoft 365 is to create a shared plan in Planner to manage and&amp;nbsp;assign those tasks to team members.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To add a new Microsoft Planner plan to a Microsoft 365 Group, execute:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 planner plan add --title "My Planner Plan" --ownerGroupName "My Planner Group"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;Add a specific application p&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt;ermissions to a SharePoint Online site&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;On Feb 11, Microsoft announced &lt;/SPAN&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/controlling-app-access-on-specific-sharepoint-site-collections/" target="_blank" rel="nofollow noopener"&gt;support for resource-specific consent in SharePoint via Microsoft Graph&lt;/A&gt;&amp;nbsp;in this release we have added a new command to support adding permissions to SharePoint Online sites.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To a&lt;SPAN&gt;dd a specific application permissions to a SharePoint Online site&lt;/SPAN&gt;, execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;m365 spo site apppermission add --siteUrl https://contoso.sharepoint.com/sites/project-x --permission &lt;SPAN class="nb"&gt;read&lt;/SPAN&gt; --appDisplayName Foo&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;Return&amp;nbsp;the User Profile properties of a specific SharePoint Online user&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To return the user profile properties of specific user, execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 spo userprofile get --userName 'john.doe@mytenant.onmicrosoft.com'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN&gt;Create the Microsoft Viva Connections desktop app package to upload to Microsoft Teams&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Microsoft Viva Connections was the first part of the Viva Employee Experience features to be be made Generally Available to all Microsoft 365 tenants on 31st March 2020, however to enable Viva Connections in your tenant a number of deployment steps that needed to be followed, which includes the creation of the desktop app package that is deployed to Microsoft Teams. So we have added a new command which simplifies the creation of this app package for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To create the app package, execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 viva connections app create --portalUrl https://contoso.sharepoint.com --appName Contoso --description "Contoso company app" --longDescription "Stay on top of what's happening at Contoso" --companyName Contoso --companyWebsiteUrl https://contoso.com --coloredIconPath icon-color.png --outlineIconPath icon-outline.png&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;To upload the app package to your Microsoft Teams app catalog, execute:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;m365 teams app publish --filePath ./contoso.zip&lt;/LI-CODE&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 id="toc-hId--2071219242"&gt;&lt;SPAN&gt;New script samples&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;CLI for Microsoft 365 is a great tool both for quick adjustments to the configuration of your Microsoft 365 tenant as well as automating more complex tasks. Because CLI for Microsoft 365 is cross-platform you can use it on any OS and in any shell. To help you get started using the CLI for Microsoft 365 for automation scenarios, we started gathering some &lt;/SPAN&gt;&lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/" target="_self" rel="nofollow noopener noreferrer"&gt;&lt;SPAN&gt;sample scripts&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;If you have any scripts that you use frequently, please &lt;/SPAN&gt;&lt;A href="https://github.com/pnp/cli-microsoft365/discussions" target="_self" rel="noopener noreferrer"&gt;&lt;SPAN&gt;share&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;them with us so that we can learn more about the common automation scenarios.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Cleanup completed Microsoft To Do tasks&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Microsoft To Do is the go to personal task management tool of choice in Microsoft 365, however completed tasks can sometimes get in the way.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This script helps&amp;nbsp;&lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/todo/cleanup-completed-todos/" target="_self"&gt;remove all completed Microsoft To Do tasks&lt;/A&gt; by iterating over all of your task lists and deleting tasks that have been marked as completed.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Create a Microsoft Teams team and bulk add members from CSV file&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Microsoft Teams is core to collaboration in Microsoft 365, but creating several teams and adding new members to those Teams can be time consuming.&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This sample script shows you &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/teams/create-team-and-add-members-and-owners/" target="_self"&gt;how to create a Team and add members and owners using a CSV&lt;/A&gt;.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Setup an example SharePoint Online site&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;When creating SharePoint Online sites, generally you want to make some immediate changes after its creation.&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;
&lt;P&gt;This script is a good starting point for a &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/spo/setup-example-site/" target="_self"&gt;setup script to create site with some assets like columns, content types, lists, navigation&lt;/A&gt; etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The given example:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;creates a site,&lt;/LI&gt;
&lt;LI&gt;adds a site column and a content type,&lt;/LI&gt;
&lt;LI&gt;adds list and modifies it's settings (add a content type to it and makes it hidden),&lt;/LI&gt;
&lt;LI&gt;adds a document library with a custom column and some folder,&lt;/LI&gt;
&lt;LI&gt;modifies the all items view of the document library,&lt;/LI&gt;
&lt;LI&gt;modifies the site navigation links&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Upload local files and folders to SharePoint Online&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SharePoint Online is the backbone of Microsoft 365 for file storage and sharing.&amp;nbsp;This script shows how you can use the CLI to &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/spo/upload-local-files-and-folder/" target="_self"&gt;upload files located on a local folder to a SharePoint Online library or subfolder&lt;/A&gt;.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Bulk add members to Microsoft Teams team from CSV file&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;Adding new team members to an existing Team through the&amp;nbsp;Teams user interface can be time consuming, this script will &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/teams/add-bulk-users-teams/" target="_self"&gt;add users to existing Teams contained in a .csv file&lt;/A&gt;.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Copy files to another SharePoint Library in another site&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This script helps you &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/spo/copy-files-to-another-library/" target="_self"&gt;copy files across different sites in SharePoint Online&lt;/A&gt;, it shows you how you can&amp;nbsp;copy all files and folders from source library to a different library in different SharePoint site keeping the same folder and subfolder structure and&amp;nbsp;copy all files from all folders and subfolders from source library to a different library to a root folder in different SharePoint&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Remove a Site Collection Admin User from all Site Collections&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;When employees leave organisations or change job roles it is&amp;nbsp;&lt;/SPAN&gt;important that access is removed where it is no longer required.&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This script helps&amp;nbsp;&lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/spo/remove-siteCollection-admin-user/" target="_self"&gt;remove a designated user in every SharePoint Online site in the tenant&lt;/A&gt; if he/she is a Site Collection Admin.&amp;nbsp;This applies to Group-connected sites, non group-connected sites, or classic sites.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Replace an owner in a Microsoft 365 Group or Microsoft Team&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This script helps &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/aad/replace-owner-with-a-different-one/" target="_self"&gt;find all the Microsoft 365 Groups that a user is an Owner of and replace them with someone else&lt;/A&gt; useful for when an employee leaves and ownership needs to be updated.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;SPAN&gt;Add a SharePoint Site Collection Administrator using CSV file&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This script helps you &lt;A href="https://pnp.github.io/cli-microsoft365/sample-scripts/spo/add-site-collection-admin-using-csv-file/" target="_self"&gt;add a new SharePoint Site Collection Administrator to many sites using a CSV file&lt;/A&gt;, this is useful for granting access to sites that are not visible in the SharePoint Admin Center such as Microsoft Teams Private Channels.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2 id="toc-hId-962667237"&gt;&lt;SPAN&gt;Contributors&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;This release wouldn’t be possible without the help of (in alphabetical order) &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/phillipharding" target="_self"&gt;&lt;SPAN&gt;Phil Harding&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/plamber" target="_self"&gt;&lt;SPAN&gt;Patrick Lamber&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/veronicageek" target="_self"&gt;&lt;SPAN&gt;Veronique Lengelle&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/waldekmastykarz" target="_self" rel="noopener noreferrer"&gt;Waldek Mastykarz&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SmitaNachan" target="_self"&gt;&lt;SPAN&gt;Smita Nachan&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/nanddeepn" target="_self"&gt;&lt;SPAN&gt;Nanddeep Nachan&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/dips365" target="_self"&gt;Dipen Shah&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/appieschot" target="_self"&gt;Albert Jan-Schot&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/garrytrinder/" target="_self" rel="noopener noreferrer"&gt;Garry Trinder&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/sprider" target="_self" rel="noopener noreferrer"&gt;Joseph Velliah&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/rabwill" target="_self"&gt;&lt;SPAN&gt;Rabia Williams&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://github.com/Adam-it" target="_self"&gt;Adam&amp;nbsp;Wojcik&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Thank you all for the time you chose to spend on the CLI for Microsoft 365 and your help to advance it!&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2 id="toc-hId--844787226"&gt;&lt;SPAN&gt;Work in progress&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Here are some things that we’re currently working on.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 id="toc-hId-1771808326"&gt;&lt;SPAN&gt;More commands, what else&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Microsoft 365 is evolving and new capabilities are being released every day. With CLI for Microsoft 365, we aim to help you manage your tenant on any platform in a consistent way, no matter which part of Microsoft 365 you interact with. While we keep adding new commands to CLI for Microsoft 365 each release, we still barely scratched the surface with what’s possible in Microsoft 365. In the upcoming versions of the CLI for Microsoft, you can expect us to add more commands across the different workloads in Microsoft 365.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 id="toc-hId--35646137"&gt;&lt;SPAN&gt;Improved managing SharePoint pages&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Microsoft keeps investing in modern SharePoint pages continuously introducing new capabilities to let us publish rich content. We're looking into extending our support for managing modern SharePoint pages to let you use them to their full potential.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 id="toc-hId--1843100600"&gt;&lt;SPAN&gt;Improved creating Azure AD apps&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Recently, we've introduced a command to easily create Azure AD app registrations. Because they're backbone of every app you'd build on Microsoft 365, we think you should be able to create them as easily as possible. So with CLI for Microsoft 365, you can create a fully configured Azure AD app for the most common scenarios with just one line of code.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;In the future versions of CLI for Microsoft 365 you can expect us extend the capabilities with additional scenarios and features supported by Azure AD.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 id="toc-hId-644412233"&gt;&lt;SPAN&gt;Script examples&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;In every release of the CLI for Microsoft 365, we introduce new commands for managing Microsoft 365. With over 350 commands across the different Microsoft 365 services, the CLI for Microsoft 365 has become a powerful tool, not just for managing your tenant but also for automating your daily work.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;We’d love to show you how you can use the CLI for Microsoft 365 to build automation scripts in PowerShell Core and Bash. If you have any scripts using SPO or PnP PowerShell that you use frequently, please share them with us so that we can learn more about the common automation scenarios.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H3 id="toc-hId--1163042230"&gt;&lt;SPAN&gt;'ensure' commands&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;We've just shipped our first ensure command - an easy way to help you that a site with specific settings exists. If it doesn't, CLI creates it for you, if it does, CLI ensures it has the right properties. All in one line of code. We'd love to hear from you how you like it and if it's something you'd like us to implement for other commands as well.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="toc-hId-1195387884"&gt;&lt;SPAN&gt;Try it today&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Get the latest release of the CLI for Microsoft 365 from npm by executing:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;LI-CODE lang="bash"&gt;npm i -g @pnp/cli-microsoft365&lt;/LI-CODE&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;Alternatively, you can get the latest release from Docker by executing:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;LI-CODE lang="bash"&gt;docker run --rm -it m365pnp/cli-microsoft365:latest&lt;/LI-CODE&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;If you need more help getting started or want more details about the commands, the architecture or the project, go to &lt;/SPAN&gt;&lt;A href="http://aka.ms/cli-m365" target="_self" rel="noopener noreferrer"&gt;&lt;SPAN&gt;aka.ms/cli-m365&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;SPAN&gt;If you see any room for improvement, please, don’t hesitate to reach out to us either on &lt;/SPAN&gt;&lt;A href="https://github.com/pnp/cli-microsoft365" target="_self" rel="noopener noreferrer"&gt;&lt;SPAN&gt;GitHub&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;or &lt;/SPAN&gt;&lt;A href="https://twitter.com/climicrosoft365" target="_self" rel="nofollow noopener noreferrer"&gt;&lt;SPAN&gt;twitter&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Apr 2021 12:29:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-9/ba-p/2304639</guid>
      <dc:creator>garrytrinder</dc:creator>
      <dc:date>2021-04-29T12:29:57Z</dc:date>
    </item>
    <item>
      <title>Power Virtual Agents bot setting the Out Of Office</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-virtual-agents-bot-setting-the-out-of-office/ba-p/2303716</link>
      <description>&lt;P&gt;&lt;SPAN&gt;It is always&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;interesting&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;to hit the wall with limitations when you are working with Power Automate. Some limits are due to licensing but some are due to other good reasons. I was running a PoC where a person interacting with a Power Virtual Agent bot required to do actions on behalf of that person. And after digging some information out (Thank you&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://poszytek.eu/en/homepage/" target="_blank" rel="noreferrer noopener"&gt;@Tomasz&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;for helping there! ) it was clear that I had reached the wall when I was trying to make my little bot to set up Out of Office for the interacting user. Using the Office 365 Set Automatic Replies action always works on the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;connection&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;user&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;only. And since you can not act on behalf of that user it required to go beyond the wall and say “there is no spoon”. And I found it there wasn’t a spoon- just the miracle world of Graph API.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-35" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276359iD8D42A37FF90A548/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-35" alt="image-35" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From that phase I advanced to create&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Azure Logic Apps that uses&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Graph API&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;to set the Out of Office / Automatic replies to a specific user.&lt;/LI&gt;
&lt;LI&gt;Setting up a Azure API Management service so that Azure Logic App can be called from the Cloud Flow running inside Power Virtual Agent – and still keep on using standard licensing (no need to go to premium)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;First it was necessary to create the&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Azure App Registration&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(applicationid, secret) with suitable set of API permissions. After that it was all about figuring out the Graph API call &amp;amp; JSON to set the Automatic Reply / Out of Office.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/graph/api/user-update-mailboxsettings?view=graph-rest-1.0&amp;amp;tabs=http&amp;amp;WT.mc_id=M365-MVP-5003326" target="_blank" rel="noreferrer noopener"&gt;Read the documentation (&amp;amp; about permissions) from Docs here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Next I built a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Azure Logic Apps&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that uses&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;HTTP Request trigger&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(get) to retrieve user email and number of away days in parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-36" style="width: 658px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276360i6DDA8DC36480C578/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-36" alt="image-36" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the format to exclude parameters from the GET request.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;triggerOutputs()[‘queries’][‘FileID’]&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;After those steps I have user email and number of days that needs to be set Out of Office. I returned the HTTP-request and prepared variables with Application ID, TenantID and App Secret information to be able to call Graph API with application permissions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-37" style="width: 685px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276361iA963AB32FC5704EE/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-37" alt="image-37" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The key is of course setting the Out of Office information JSON.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-38" style="width: 713px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276362iB7DB24B379C502A9/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-38" alt="image-38" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The Graph API call URL and example JSON I used to test this are:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;https://graph.microsoft.com/v1.0/users/useremail/mailboxsettings
 
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/mailboxSettings",
     "automaticRepliesSetting": {
     "externalAudience": "all",
      "externalReplyMessage": "I am away from the office. ",
      "internalReplyMessage": "I am away from the office. ",
      "status": "Scheduled",
      "scheduledStartDateTime": {
          "dateTime": "2021-04-17T18:00:00.0000000",
          "timeZone": "UTC"
        },
       "scheduledEndDateTime": {
          "dateTime": "2021-04-18T18:00:00.0000000",
          "timeZone": "UTC"
        }
  }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Then it was just the case of patching the information&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-39" style="width: 770px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276363i18B2F44C26475A26/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-39" alt="image-39" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The next step was to create the &lt;A href="https://azure.microsoft.com/en-us/services/api-management" target="_blank" rel="noopener"&gt;Azure API Management Service&lt;/A&gt; and define the API call there. There are two ways to handle the information transportation: in the body (as JSON) or as parameters. I put the Username and Days in this Proof of Concept to parameters.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-40" style="width: 763px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276364i7D9CF8774AB07CA5/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-40" alt="image-40" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For how to create and set up Azure API Management you can&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/azure/api-management/?WT.mc_id=M365-MVP-5003326" target="_blank" rel="noreferrer noopener"&gt;find information in this URL&lt;/A&gt;. It is good to keep in mind that Azure API Management has a cost involved – it is not a free one. I created the one with Developer (No SLA) tier to keep costs lower. And it still estimated to be over 40€ per month. For production use the price will be higher.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Another alternative would have been to put the “set these to Out of Office” information to a SharePoint List (for example) and use a Azure Logic Apps trigger to read that list and make those API Calls. That would have some delay, but since Out of Office is rarely requiring an instant response it would be a better one for the real world scenario in this case. However if you are already using Azure API management then using it for this as well is a good idea. But setting it up solely for a single purpose does not get a good ROI for most cases.&lt;/P&gt;
&lt;P&gt;After setting the API up into the Azure you can export it directly to the Dataverse for Teams environment – so it is there for the bot to use without any Premium licensing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-45" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276365i1A56D5CDAFC53001/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-45" alt="image-45" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-47" style="width: 353px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276366i49D66F0C43701953/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-47" alt="image-47" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-46" style="width: 355px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276367i6710BA4F9513D517/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-46" alt="image-46" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;When adding an action to your Cloud Flow in the Dataverse for Teams environment where your bot runs you can find the custom action in the menu.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-43" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276368iD2A5E1849587A41B/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-43" alt="image-43" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-44" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276369iA00F191DDCA2954D/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-44" alt="image-44" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Cool – what about the test-run side?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;And when running this one from the PVA of the acting user I can see the results via Teams easily&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-42" style="width: 935px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276370iA00069AD8302561E/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-42" alt="image-42" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image-41" style="width: 867px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276371i3DC3DBB74814B005/image-size/large?v=v2&amp;amp;px=999" role="button" title="image-41" alt="image-41" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;There are of course other steps as well in that PoC conversation &amp;amp; flow but setting up the Out of Office proved to require a bit more steps than I originally thought. I have to say that this was also a great learning experience about updating user mailbox settings via Graph API and as well about using Azure API management to create a custom connector to Power Automate.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;With Azure API Management &amp;amp; Graph API you can quite easily go beyond the walls what you have with Dataverse for Teams bots and applications.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This article is a &lt;A href="https://myteamsday.com/2021/04/17/pva-and-oof/" target="_blank" rel="noopener"&gt;repost of my blog post in my own blog at MyTeamsDay.Com&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 10:12:33 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-virtual-agents-bot-setting-the-out-of-office/ba-p/2303716</guid>
      <dc:creator>Vesa Nopanen</dc:creator>
      <dc:date>2021-04-29T10:12:33Z</dc:date>
    </item>
    <item>
      <title>Office Add-in Developer Community (PnP) – March 2021 update</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-in-developer-community-pnp-march-2021-update/ba-p/2304950</link>
      <description>&lt;P&gt;The Office Add-ins developer platform team has new updates to share this month on Office Add-ins Patterns and Practices. PnP is a community effort, so if you are interested in contributing, see our &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" target="_self"&gt;good first issue list&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Use Outlook event-based activation to set the signature (preview)&lt;/H2&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pnp-set-signature.png" style="width: 624px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276858i3669BD4A5E36FD5D/image-size/large?v=v2&amp;amp;px=999" role="button" title="pnp-set-signature.png" alt="Screen shot of PnP sample displaying an information bar prompting the user to set up signatures, and sample signature inserted into the email." /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Screen shot of PnP sample displaying an information bar prompting the user to set up signatures, and sample signature inserted into the email.&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This sample uses event-based activation to run an Outlook add-in when the user creates a new message or appointment. The add-in can respond to events, even when the task pane is not open. It also uses the &lt;A href="https://docs.microsoft.com/javascript/api/outlook/office.body?view=outlook-js-preview#setSignatureAsync_data__options__callback_" target="_self"&gt;setSignatureAsync API&lt;/A&gt;. If no signature is set, the add-in prompts the user to set a signature, and can then open the task pane for the user.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Check out the code sample: &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/outlook-set-signature" target="_self"&gt;Use Outlook event-based activation to set the signature (preview)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out the docs: &lt;A href="https://docs.microsoft.com/office/dev/add-ins/outlook/autolaunch" target="_self"&gt;Configure your Outlook add-in for event-based activation (preview)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Contributors&lt;/H2&gt;
&lt;P&gt;Thank you to our contributors who are actively helping each month with the &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins" target="_self"&gt;PnP-OfficeAddins&lt;/A&gt; community effort.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://mvp.microsoft.com/en-us/PublicProfile/33535" target="_self"&gt;Maarten van Stam&lt;/A&gt; - helping review PRs and issues on PnP-OfficeAddins&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Want to contribute?&lt;/H2&gt;
&lt;P&gt;PnP is a community effort by developers like you. Check out our &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" target="_self"&gt;good first issue list&lt;/A&gt; as a great place to help with some samples. Feel free to contribute to existing samples or create new ones.&lt;/P&gt;
&lt;H2&gt;About Office Add-ins Patterns &amp;amp; Practices (PnP)&lt;/H2&gt;
&lt;P&gt;Office Add-ins PnP is a Microsoft-led, community driven effort that helps developers extend, build, and provision customizations on the Office platform the right way by providing guidance and help through official documentation and open-source initiatives. The source is maintained in GitHub where anyone can participate. You can provide contributions to the samples, reusable components, and documentation. Office Add-ins PnP is owned and coordinated by Office engineering teams, but the work is done by the community for the community.&lt;/P&gt;
&lt;P&gt;You can find code samples for Office Add-in development in the &lt;A href="https://github.com/OfficeDev/PnP-OfficeAddins" target="_self"&gt;Office Add-ins PnP repo&lt;/A&gt;. Some samples are also documented in the &lt;A href="https://docs.microsoft.com/office/dev/add-ins/" target="_self"&gt;Office Add-ins docs&lt;/A&gt;, such as &lt;A href="https://docs.microsoft.com/office/dev/add-ins/excel/pnp-open-in-excel" target="_self"&gt;Open in Excel&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Additional resources&lt;/H2&gt;
&lt;P&gt;Get started with Office development by joining the &lt;A href="https://developer.microsoft.com/office/dev-program" target="_self"&gt;Microsoft 365 developer program&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Try out some samples and get coding quickly with Office add-ins by &lt;A href="https://www.microsoft.com/en-us/garage/profiles/script-lab/" target="_self"&gt;downloading Script Lab&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Learn more by joining the monthly &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_self"&gt;Office Add-ins community call&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Apr 2021 16:21:42 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/office-add-in-developer-community-pnp-march-2021-update/ba-p/2304950</guid>
      <dc:creator>David Chesnut</dc:creator>
      <dc:date>2021-04-29T16:21:42Z</dc:date>
    </item>
    <item>
      <title>Power Apps Community Call – April 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-community-call-april-2021/ba-p/2298021</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumbnail - Power Apps Community Call - April 2021.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/276123iE4162BBF22203D09/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumbnail - Power Apps Community Call - April 2021.png" alt="Thumbnail - Power Apps Community Call - April 2021.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Call Summary:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Topics covered in this month’s community call include - Make your Power Apps sessions persistent when switching Microsoft Teams tabs! (Making your Teams mobile and desktop power apps off-line capable), Power Apps Custom Functions Library (sharing your great work - find, use, submit samples), Make your Power Apps user experience awesome with Gestalt design principles (create visually compelling model driven apps), and Recent Power Apps News and Community Contributions.&amp;nbsp; This session included Q&amp;amp;A in chat.&amp;nbsp; The call was&lt;SPAN&gt; hosted by &lt;/SPAN&gt;Todd Baginski (Canviz)&lt;SPAN&gt;.&amp;nbsp; Demo presenters include &lt;/SPAN&gt;Hardit Bhatia, Matthew Devaney, April Dunnam, Hiro Nagao, Geetha Sivasailam, Hugo Bernier, Anton Robbins and Rory Neary.&amp;nbsp; R&lt;SPAN&gt;ecorded &lt;/SPAN&gt;on April 21, 2021&lt;SPAN&gt;.&amp;nbsp; Thank for attending the call or viewing it on demand.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/BKMNGt0d8Ac" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Demos:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://youtu.be/BKMNGt0d8Ac?t=305" target="_self"&gt;Make your Power Apps sessions persistent when switching Microsoft Teams tabs!&lt;/A&gt;&amp;nbsp;- &lt;/STRONG&gt;tired of losing data captured in your Microsoft Teams-based Power Apps when you leave the app to respond to a chat message or go to another channel?&amp;nbsp; Learn how to store data and then reload data when restarting your Power App to effectively achieve session data persistence.&amp;nbsp;&amp;nbsp; Hint – make your app off-line capable.&amp;nbsp; Works on desktop too!&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;A href="https://youtu.be/BKMNGt0d8Ac?t=1558" target="_self"&gt;&lt;STRONG&gt;Power Apps Custom Functions Library&lt;/STRONG&gt;&lt;/A&gt; – &lt;SPAN&gt;now that it is possible to create user defined custom functions in Power Apps the DRY principle applies, so let’s share! &amp;nbsp;The custom functions library is the new Power Platform samples repository.&amp;nbsp; F&lt;/SPAN&gt;ind, use, and submit custom functions, Power app, Power Automate and Power Virtual Agents samples.&amp;nbsp; Not sure where to start?&amp;nbsp; Community contributor training offered at &lt;A href="PnP%20|%20Sharing%20Is%20Caring" target="_blank" rel="noopener"&gt;PnP | Sharing Is Caring&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="https://youtu.be/BKMNGt0d8Ac?t=2385" target="_self"&gt;Make your Power Apps user experience&amp;nbsp;awesome with Gestalt design&amp;nbsp;principles&amp;nbsp;&lt;/A&gt; - &lt;/STRONG&gt;how you layout objects in your Power Apps UI is a mixture of art, industry standard, and Gestalt.&amp;nbsp;&amp;nbsp; In Power Apps, objects are in a 2D frame. &amp;nbsp;&amp;nbsp;In this demo, you will understand how and why using Gestalt principles in app design matters in a world where users do not typically read manuals and adoption is largely based on visual perceptions.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Recent News &amp;amp; Cool Stuff:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Power Apps Custom Functions Library -&lt;A href="https://github.com/yourekittenme/powerapps-custom-functions" target="_blank" rel="noopener"&gt;https://github.com/yourekittenme/powerapps-custom-functions&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;PowerPlatformLearn – Gestalt Principles -&lt;A href="https://www.powerplatformlearn.academy/courses/power-apps/contents/6061fe2159dfb" target="_blank" rel="noopener"&gt;https://www.powerplatformlearn.academy/courses/power-apps/contents/6061fe2159dfb&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Power Apps Demo Extravaganza 2021 - &lt;A href="https://aka.ms/PowerAppsDemoExtravaganza" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsDemoExtravaganza&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Actions:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Complete the Microsoft 365 Developer Community Survey – &lt;A href="https://aka.ms/m365pnp/survey" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/survey&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Entries Start May for Demo Extravaganza 2021 | &lt;A href="https://aka.ms/PowerAppsDemoExtravaganza" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsDemoExtravaganza&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft Office 365 Developer Survey - &lt;A href="https://aka.ms/developersuccess" target="_blank" rel="noopener"&gt;https://aka.ms/developersuccess&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Join the M365 Customer Success Platform Panel - &lt;A href="https://aka.ms/SuccessPanel" target="_blank" rel="noopener"&gt;https://aka.ms/SuccessPanel&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Join the community - Find a user group - &lt;A href="https://aka.ms/Dynamics365UserGroups" target="_blank" rel="noopener"&gt;https://aka.ms/Dynamics365UserGroups&lt;/A&gt;, &lt;A href="https://aka.ms/PowerPlatformUserGroups" target="_blank" rel="noopener"&gt;https://aka.ms/PowerPlatformUserGroups&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Join us for our next call: May 19, 2021 at 08:00am PDT | &lt;A href="https://aka.ms/powerappscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/powerappscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Learn more:&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;See the full blog post for this call on the Tech Community Blog - &lt;A href="https://aka.ms/m365pnp/community/blog" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/community/blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft’s&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://powerplatform.microsoft.com/" target="_blank" rel="noopener noreferrer"&gt;Power Platform website&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Apps Responsive Design -&amp;nbsp;&lt;SPAN&gt;https://&lt;/SPAN&gt;&lt;A href="https://bit.ly/responsivepowerapps" target="_blank" rel="noopener nofollow noreferrer"&gt;bit.ly/responsivepowerapps&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Power Apps Training Resources -&amp;nbsp;&lt;A href="https://aka.ms/PowerAppsTraining" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/PowerAppsTraining&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Apps Community -&amp;nbsp;&lt;A href="https://community.powerapps.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://Community.PowerApps.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Power Apps Community Samples -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/PowerAppsCommunitySamples" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/PowerAppsCommunitySamples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Power Apps Community Videos -&lt;/SPAN&gt;&lt;A href="https://aka.ms/PowerAppsCommunityVideos" target="_blank" rel="noopener noreferrer"&gt;&amp;nbsp;https://aka.ms/PowerAppsCommunityVideos&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Power Addicts Hangout -&amp;nbsp;&lt;A href="https://wearepoweraddicts.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://wearepoweraddicts.com&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;#LessCodeMorePower Video Series -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PL8IYfXypsj2Cr4DUqMKYkGM-Wejfim2QX" target="_blank" rel="noopener nofollow noreferrer"&gt;https://www.youtube.com/playlist?list=PL8IYfXypsj2Cr4DUqMKYkGM-Wejfim2QX&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Share more - draw attention to your great work - &lt;A href="https://twitter.com/hashtag/PowerAppsCC?src=hashtag_click" target="_self"&gt;#PowerAppsCC&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;Stay connected:&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter: &lt;A href="https://twitter.com/MSPowerPlat" target="_blank" rel="noopener"&gt;https://twitter.com/MSPowerPlat&lt;/A&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Twitter -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkdvcDJHcGdzM2VIUkwzU3lOYkJaVFEzM0Q2QXxBQ3Jtc0ttM1NyaTQ2RjFSOFh3a0l4c1pralBRQVI1bDNSQ2RaVm9OdzJrRkdtV1Z1SW5VdmdwamNNLTBEaFdaSmZMc0lQNzdRZ2dDYV9WZVF1ZVIwc2dPQTZBRUZ3b3hoWUVJdDJoQWZUcWdCR2JKdmwtUU43RQ&amp;amp;q=https%3A%2F%2Ftwitter.com%2Fmicrosoft365dev" target="_blank" rel="noopener nofollow noreferrer"&gt;https://twitter.com/microsoft365dev&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;YouTube -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqa3RzWmpNU2VPRmh6dXBad3hKMmxySjBaQVl6Z3xBQ3Jtc0trVjYyeXZlSXZiX0JydHlyeHdqcTRSUnczX2xrVDloOWhzeGVCYXFibjBiM1VpXzFOd2dZX2dJdlNYQWYtekcyWXZOTHp3VkdoU2JsdmNVQ3dtdkw2ZHF0cVdCS29TQmJ1Z3hoVmJyd3JtYlFxUW92WQ&amp;amp;q=https%3A%2F%2Faka.ms%2FM365DevYouTube" target="_blank" rel="noopener nofollow noreferrer"&gt;https://aka.ms/M365DevYouTube&lt;/A&gt;&lt;SPAN&gt;​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Blogs -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevBlog" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/M365DevBlog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Recurrent Invite -&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/powerappscommunitycall" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/powerappscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Apr 2021 16:48:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/power-apps-community-call-april-2021/ba-p/2298021</guid>
      <dc:creator>Todd Baginski</dc:creator>
      <dc:date>2021-04-28T16:48:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2302032#M225</link>
      <description>&lt;P&gt;That's amazing.&amp;nbsp; You do such a great job.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Apr 2021 13:01:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2302032#M225</guid>
      <dc:creator>Valerie Fahel-Schaffer</dc:creator>
      <dc:date>2021-04-28T13:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2301979#M224</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;LI-USER uid="7333"&gt;&lt;/LI-USER&gt;&amp;nbsp;: I draw my sketchnotes in OneNote on a Surface Pro and record the replay with Camtasia, Then I export as a gif.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Apr 2021 12:51:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2301979#M224</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-28T12:51:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2301934#M223</link>
      <description>&lt;P&gt;&lt;LI-USER uid="89985"&gt;&lt;/LI-USER&gt;&amp;nbsp;Thanks for this; it's great!&amp;nbsp; Question: how did you create the sketchnote?&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Apr 2021 12:40:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2301934#M223</guid>
      <dc:creator>Valerie Fahel-Schaffer</dc:creator>
      <dc:date>2021-04-28T12:40:32Z</dc:date>
    </item>
    <item>
      <title>Re: Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2301461#M222</link>
      <description>&lt;P&gt;Thank you for sharing, what an awesome idea!&lt;/P&gt;</description>
      <pubDate>Wed, 28 Apr 2021 10:11:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/bc-p/2301461#M222</guid>
      <dc:creator>gilblumberg</dc:creator>
      <dc:date>2021-04-28T10:11:23Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Weekly - Episode 124</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-124/ba-p/2294147</link>
      <description>&lt;P data-unlink="true"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Thumb-Ep124.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275691iC91784ED62051F03/image-size/large?v=v2&amp;amp;px=999" role="button" title="Thumb-Ep124.png" alt="Thumb-Ep124.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this installment of the weekly discussion revolving around the latest news and topics on&amp;nbsp;&lt;SPAN&gt;Microsoft 365&lt;/SPAN&gt;, hosts –&amp;nbsp;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt;&amp;nbsp;(Microsoft) | @vesajuvonen,&amp;nbsp;&lt;A href="http://twitter.com/waldekm" target="_blank" rel="noopener"&gt;Waldek Mastykarz&lt;/A&gt;&amp;nbsp;(Microsoft) | @waldekm are joined by MVP, PnP Team member, and Architect at US-based Sympraxis Consulting &lt;A href="https://twitter.com/EEMancini" target="_blank" rel="noopener"&gt;Emily Mancini&lt;/A&gt; |@EEMancini.&amp;nbsp; &amp;nbsp;Topics discussed in this session include:&amp;nbsp; Sharing is Caring engagement model, Aligning and addressing the client’s business needs with capabilities of owned technologies, i.e., Microsoft 365 for making changes with the business and not to the business! &amp;nbsp;&amp;nbsp;Conscious/unconscious usage of the Microsoft 365 Maturity Model for business ROI maximization. &amp;nbsp;&amp;nbsp;Ideas for increasing diversity in IT personnel, Imposter Syndrome, Tech vs Outcome and Teams or Yammer.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Please remember to keep on providing us feedback on how we can help on this journey. We always welcome feedback on making the community more inclusive and diverse.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;Covering also 23 articles from Microsoft and the Community.&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&lt;LI-VIDEO vid="https://youtu.be/TXqSa4F9uzU" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This episode was recorded on Monday, April 26, 2021.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Video at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community YouTube channel.&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Podcast format at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnpweekly.podbean.com/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://pnpweekly.podbean.com.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;These videos and podcasts are published each week and are intended to be roughly 45 - 60 minutes in length.&amp;nbsp; Please do give us feedback on this video and podcast series and also do let us know if you have done something cool/useful so that we can cover that in the next weekly summary! The easiest way to let us know is to share your work on Twitter and add the hashtag&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/search?q=%23pnpweekly" target="_self" rel="nofollow noopener noreferrer"&gt;#PnPWeekly&lt;/A&gt;. We are always on the lookout for refreshingly new content. “&lt;EM&gt;Sharing is caring!”&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are all the links and people mentioned in this recording. Thanks, everyone for your contributions to the community!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Events:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;April 26-28, 2021 - &lt;A href="https://www.m365virtualmarathon.com/" target="_self"&gt;Microsoft 365 Virtual Marathon 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;May 25-27, 2021-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://mybuild.microsoft.com/?WT.mc_id=m365-26913-wmastyka" target="_self" rel="noopener noreferrer"&gt;Microsoft Build 2021&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;August 9-11, 2021 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.collabsummit.org/" target="_blank" rel="noopener nofollow noreferrer"&gt;North American Collaboration Summit&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;Register with coupon code "PnP" for 25% off from the prize at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://nacs.ticketspice.com/nacs2021" href="https://nacs.ticketspice.com/nacs2021" target="_blank" rel="noreferrer noopener nofollow"&gt;https://nacs.ticketspice.com/nacs2021&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Microsoft articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-viva-blog/announcing-viva-learning-public-preview/ba-p/2251542?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Announcing Viva Learning public preview&lt;/A&gt; - John Mighell (Microsoft)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-teams-blog/build-and-ship-software-better-with-github-and-microsoft-teams/ba-p/2290231?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Build and ship software better with GitHub and Microsoft Teams&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-sharepoint-blog/microsoft-365-virtual-marathon-2021-free-online-training-event/ba-p/2279514?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Microsoft 365 Virtual Marathon 2021 - free, online training event&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-blog/ipad-support-now-available-in-microsoft-lists-for-ios/ba-p/2281161?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;iPad support now available in Microsoft Lists for iOS&lt;/A&gt; - &lt;A href="https://twitter.com/mkashman" target="_blank" rel="noopener"&gt;Mark Kashman&lt;/A&gt; (Microsoft) |&amp;nbsp;@mkashman&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/build-quality-microsoft-teams-apps-with-these-best-practices-part-3/?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Build quality Microsoft Teams apps with these best practices: Part 3&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/utilize-change-notification-apis-for-microsoft-teams-messages/?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Utilize change notification APIs for Microsoft Teams messages&lt;/A&gt; - Microsoft&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Community articles:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/ba-p/2290219?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/DamoBird365" target="_blank" rel="noopener"&gt;Damien Bird&lt;/A&gt; (Aberdeen City Council) |&amp;nbsp;&lt;LI-USER uid="1035201"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-wictor-wil%C3%A9n/ba-p/2290078?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Microsoft 365 PnP Community Spotlight: Wictor Wilén&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener nofollow noreferrer"&gt;Luise Freese&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&amp;nbsp;@LuiseFreese &amp;amp; &lt;A href="https://twitter.com/wictor" target="_blank" rel="noopener"&gt;Wictor Wilén&lt;/A&gt; (Avanade) |&amp;nbsp;@wictor&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-i-as-a-non-dev-learned-as-i-created-my-first-power-app/ba-p/2288239?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;What I (as a non dev) learned as I created my first Power App&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/@gezeitenbrand" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P Information Technology-Partner GmbH) |&amp;nbsp;&lt;LI-USER uid="308558"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/learn-to-debug-your-power-apps/ba-p/2288271?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Learn to debug your Power Apps&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/@gezeitenbrand" target="_blank" rel="noopener"&gt;Michael Roth&lt;/A&gt; (IT-P Information Technology-Partner GmbH) |&amp;nbsp;&lt;LI-USER uid="308558"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/export-power-apps-and-power-automate-user-licenses/ba-p/2281840?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Export Power Apps and Power Automate user licenses&lt;/A&gt; -&amp;nbsp;&lt;A href="https://www.twitter.com/yhabersaat" target="_blank" rel="noopener"&gt;Yves Habersaat&lt;/A&gt; (Sword Group) |&amp;nbsp;&lt;LI-USER uid="957821"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/ba-p/2280799?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;How to beautify your Power Apps&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/LuiseFreese" target="_blank" rel="noopener nofollow noreferrer"&gt;Luise Freese&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&amp;nbsp;@LuiseFreese&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=MQGqHwZdUes" target="_blank" rel="noopener"&gt;Intro to Power Apps Components and Custom Functions&lt;/A&gt; -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener nofollow noreferrer"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) |&amp;nbsp;@aprildunnam&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/playlist?list=PLWZJrkeLOrbYY0fA3G6m9pi37WuhwI0ab" target="_blank" rel="noopener"&gt;Microsoft 365 Developer -&amp;nbsp;Tips &amp;amp; Tricks playlist&lt;/A&gt; - &lt;A href="https://twitter.com/Bob1German" target="_blank" rel="noopener"&gt;Bob German&lt;/A&gt; (Microsoft) | @Bob1German, &lt;A href="https://twitter.com/DanWahlin" target="_blank" rel="noopener"&gt;Dan Wahlin&lt;/A&gt; (Microsoft) | @DanWahlin,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener nofollow noreferrer"&gt;April Dunnam&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) |&amp;nbsp;@aprildunnam and &lt;A href="http://twitter.com/aycabs" target="_self"&gt;Ayca Bas&lt;/A&gt;&lt;SPAN&gt;&lt;A href="http://twitter.com/aycabs" target="_self"&gt;&amp;nbsp;&lt;/A&gt;(Microsoft) |&amp;nbsp;@aycabs​&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=H_gg3fmCWzo" target="_blank" rel="noopener"&gt;Episode #151​ - Paging Data with Microsoft Graph SDK for .NET&lt;/A&gt; - &lt;A href="https://twitter.com/PaoloPia" target="_blank" rel="noopener"&gt;Paolo Pialorsi&lt;/A&gt; (PiaSys) |&amp;nbsp;@PaoloPia&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=S0Zs66RVka4" target="_blank" rel="noopener"&gt;Power Apps Forms - Updates, Unsaved &amp;amp; Submit Confirmation&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/rezadorrani" target="_blank" rel="noopener"&gt;Reza Dorrani&lt;/A&gt; (Catapult Systems) |&amp;nbsp;&lt;LI-USER uid="285374"&gt;&lt;/LI-USER&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://tipsbybits.com/other/actually-its-already-in-the-sharepoint-pagecontext/" target="_blank" rel="noopener"&gt;Actually, It’s Already In The SharePoint PageContext!&lt;/A&gt; - &lt;A href="https://twitter.com/TipsByBits" target="_blank" rel="noopener"&gt;Tips by Bits&lt;/A&gt; |&amp;nbsp;@TipsByBits&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://knowledge-junction.com/2021/04/22/implement-carousel-in-spfx-webpart-using-react-slick/" target="_blank" rel="noopener"&gt;Implement Carousel in SPFx web part using react-slick&lt;/A&gt; - &lt;A href="https://twitter.com/SabadraPrasham" target="_blank" rel="noopener"&gt;Prasham Sabadra&lt;/A&gt; |&amp;nbsp;@SabadraPrasham&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://chuvash.eu/2021/04/20/monitoring-microsoft-365-using-raspberry-pi-and-m365-cli/" target="_blank" rel="noopener"&gt;Monitoring Microsoft 365 using Raspberry Pi and M365 CLI&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/mirontoli" target="_blank" rel="noopener"&gt;Anatoly Mironov&lt;/A&gt; (Bool by Sigma) |&amp;nbsp;@mirontoli&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://coupledtech.com/2021/04/20/sharepoint-quick-links/" target="_blank" rel="noopener"&gt;Building Modern SharePoint Pages with Quick Links&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/SamC148" target="_blank" rel="noopener"&gt;Sam Collins&lt;/A&gt; (Coupled Technology) |&amp;nbsp;@SamC148&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://sympmarc.com/2021/04/21/adding-conditional-formatting-for-a-list-form-header-with-json/" target="_blank" rel="noopener"&gt;Adding Conditional Formatting for a List Form Header with JSON&lt;/A&gt; - &lt;A href="https://twitter.com/sympmarc" target="_blank" rel="noopener"&gt;Marc D Anderson&lt;/A&gt; (Sympraxis Consulting) |&amp;nbsp;@sympmarc&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://www.sharepointnutsandbolts.com/2021/04/Syntex-Forms-Processing.html" target="_blank" rel="noopener"&gt;SharePoint Syntex - teaching AI to extract contents of structured documents with Form Processing&lt;/A&gt; - &lt;A href="https://twitter.com/ChrisO_Brien" target="_blank" rel="noopener"&gt;Chris O'Brien&lt;/A&gt; (Content+Cloud) |&amp;nbsp;@ChrisO_Brien&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="https://regarding365.com/would-you-ever-use-sharepoint-online-without-microsoft-teams-42056319f7de" target="_blank" rel="noopener"&gt;Would you ever use SharePoint Online without Microsoft Teams?&lt;/A&gt; -&amp;nbsp;&lt;A href="https://twitter.com/sarahhaase" target="_blank" rel="noopener"&gt;Sarah Haase&lt;/A&gt;&amp;nbsp;| @sarahhaase,&amp;nbsp;&lt;A href="https://twitter.com/AntonioMaio2" target="_blank" rel="noopener"&gt;Antonio Maio&lt;/A&gt;&amp;nbsp;| @AntonioMaio2 and&amp;nbsp;&lt;A href="https://twitter.com/mikemaadarani" target="_blank" rel="noopener"&gt;Mike Maadarani&lt;/A&gt;&amp;nbsp;| @mikemaadarani&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoft-365/community/microsoft365-maturity-model--intro?WT.mc_id=m365-26913-wmastyka" target="_blank" rel="noopener"&gt;Maturity Model for Microsoft 365&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365pnp/survey" target="_self" rel="noopener noreferrer"&gt;Microsoft 365 Community Survey&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Open for April 2021 - please let us know how we can help to help you!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/powerplatform-samples" target="_self" rel="noopener noreferrer"&gt;Power Platform Sample Gallery&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for finding easily samples from the GitHub - contributions from the community are welcome!&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;PnP Sharing is Caring initiative&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Getting started guidance and training for using GitHub and contributing to the community&lt;/LI&gt;
&lt;LI&gt;Want to ask a question or in general engage with the community - Add a note in the Microsoft 365 PnP Community hub at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp/community" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp/community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Check out all the great community calls, SDKs, and tooling for Microsoft 365 from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/m365pnp&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for Microsoft 365 engineering or visitors – please let us know. We will do our best to address your requests or questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Sharing is caring!"&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Apr 2021 08:05:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-124/ba-p/2294147</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-04-30T08:05:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290597#M218</link>
      <description>&lt;P&gt;thank you so much&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 08:15:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290597#M218</guid>
      <dc:creator>sagisim</dc:creator>
      <dc:date>2021-04-26T08:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290583#M217</link>
      <description>&lt;P&gt;will ping you once I made the sample app available.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 08:14:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290583#M217</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-26T08:14:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290582#M216</link>
      <description>&lt;P&gt;Thank you for getting back so quickly, I've uploaded the images (icons) created the collection and included them in my collection successfully, i struggle from this point onwards, i'm obviously missing something as i can't get the menu to work properly for me, i just get errors&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 08:12:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290582#M216</guid>
      <dc:creator>sagisim</dc:creator>
      <dc:date>2021-04-26T08:12:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290578#M215</link>
      <description>&lt;P&gt;Hey there&amp;nbsp;&lt;LI-USER uid="1036666"&gt;&lt;/LI-USER&gt;&amp;nbsp;I will make a sample app available soo and link to it here. Still, out of curiosity - which part doesn't work right now? (I don't feel bothered)&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 08:09:21 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290578#M215</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-26T08:09:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290570#M214</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you, looks amazing but i struggle to get it working, any chance you can include the sample app? it will be easier for me to reverse engineer it than bother you with million questions&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 08:06:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2290570#M214</guid>
      <dc:creator>sagisim</dc:creator>
      <dc:date>2021-04-26T08:06:58Z</dc:date>
    </item>
    <item>
      <title>Teams - an adoption idea? Transfer your group chat emails to Teams with Power Automate</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/ba-p/2290219</link>
      <description>&lt;P class="lia-align-center"&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Transfer your group chat emails to Teams with Power Automate&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I recently covered this idea on &lt;A href="https://damobird365.birdhoose.co.uk/2021/02/11/an-adoption-idea-instantly-transfer-an-email-to-teams-chat-with-powerautomate/" target="_blank"&gt;my blog&lt;/A&gt;&amp;nbsp;but it is a Cloud Flow that I make use of often so I thought I would share it with you all.&amp;nbsp; My organisation is well in to their Teams adoption journey and whilst a large proportion of users use Teams for their first port of call for a group chat, it still often surprises me when a conversation is struck up via Outlook Email and very quickly we get lost between reply to alls and reply to sender.&amp;nbsp; Could Power Automate help you move that conversation group or one to one to Teams with a mouse click before the conversation gets out of control?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The simplest way for me, to transfer the conversation from Outlook and trigger a flow, was to use “When an email is flagged” trigger. Therefore I can simply flag an email in Outlook and take the conversation onto Teams.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;With the variables provided by the email trigger, I compose (by default) the to and from fields in order to get all mail recipients (albeit you may want to include the CC'd emails to) and simply replace the semi colon with a comma, this is needed for the final and only other step.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using the “Post your own adaptive card as the Flow bot to a user” step, I am able to send an adaptive card notification in Teams to myself and provide a summary of the email I am transferring, from, subject and body preview and in my case the option to start a one to one chat with the sender or a group chat if there are more than one recipients of the email. This is done using the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links#generating-a-deep-link-to-a-chat" target="_blank" rel="noreferrer noopener"&gt;Deep Link&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;feature of Teams.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have supplied a copy/paste option at the end of my post that will allow you to replicate this in your personal PowerAutomate / Teams environment in a matter of seconds.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;**NOTE**&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;make sure you update the TO field in the post adaptive card action as it’s currently set to youremail[at]yourdomain[dot]com&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;So, what does the Cloud Flow look like?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DamoBird365_0-1619420006466.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275450i92CAB5B73DB315ED/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_0-1619420006466.png" alt="DamoBird365_0-1619420006466.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;The cloud flow only has 2 actions&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;The flow simply consists of a compose action in order to structure the list of emails from the email trigger, above I don't include the cc'd emails.&amp;nbsp; You've therefore a couple options for the get group email compose action, do you want to include cc'd or not in the Group Chat Deep Link?&amp;nbsp; The below sample snippet expression includes the ccRecipients, but feel free to adjust as necessary.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;replace(tolower(concat(triggerOutputs()?[‘body/toRecipients’], ‘;’, triggerOutputs()?[‘body/from’], ‘;’, triggerOutputs()?[‘body/ccRecipients’])), ‘;’, ‘,’)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The second and final step is an adaptive card built via &lt;A href="https://adaptivecards.io/samples/" target="_blank"&gt;adaptive cards designer&lt;/A&gt;.&amp;nbsp; It's a steep learning curve but Designer site gives you plenty of sample cards to experiment with and it is here that you need to include the&amp;nbsp;&lt;A href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links#generating-a-deep-link-to-a-chat" target="_blank" rel="noreferrer noopener"&gt;deep links&lt;/A&gt;&amp;nbsp;to your new Teams conversations which will automatically launch a teams conversation with these users.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;The User Experience&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My colleague Alex, sends me an email with a list of colleagues in the to field.&amp;nbsp; Before the conversation gets out of control, I simply flag the email and instigate a move to Teams Group Chat.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_1-1619420516989.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275452i67851DC47108FDED/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_1-1619420516989.png" alt="DamoBird365_1-1619420516989.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Within a matter of seconds, basically as fast as your Flow is triggered, a Flow Bot message is received to my Teams application with the subject and summary email body including a link to both a one to one and group chat.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_2-1619420664133.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275453i877B8B396274F40F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="DamoBird365_2-1619420664133.png" alt="DamoBird365_2-1619420664133.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Clicking on that Group DM in Teams button results in an opening conversation line and conversation subject (in draft), all courtesy of the deep link.&amp;nbsp; Now it's time to get the conversation going.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="DamoBird365_3-1619420755529.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275454iD34CA2DA7B8F9C58/image-size/large?v=v2&amp;amp;px=999" role="button" title="DamoBird365_3-1619420755529.png" alt="DamoBird365_3-1619420755529.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Want to try the solution quickly?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;Did you know that you can copy and paste Cloud Flow actions between environments really easily?&amp;nbsp; Simply by creating a new Cloud Flow with the "&lt;SPAN&gt;When an email is flagged” trigger you can then copy the provided code below and paste it into your ClipBoard by clicking Next Step, selecting My ClipBoard and pasting with Ctrl + V.&amp;nbsp; The only field you need to change is the Adaptive Card Recipient which by default is set to&amp;nbsp;youremail[at]yourdomain[dot]com.&amp;nbsp; Just make sure you set this to your own email address to receive the Adaptive Card.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV id="tinyMceEditorDamoBird365_4" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV id="tinyMceEditorDamoBird365_5" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="HowToCopyPasteSolution.gif" style="width: 600px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275456i628798D2F2C6081F/image-size/large?v=v2&amp;amp;px=999" role="button" title="HowToCopyPasteSolution.gif" alt="HowToCopyPasteSolution.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{"id":"f616b2c7-1645-4360-aff5-1710-a2bfb6a1","brandColor":"#8C3900","connectionReferences":{"shared_office365":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_office365/connections/shared-office365-2c7a215d-616e-4cc2-9dab-9d05f14c21a5"}},"shared_teams_1":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_teams/connections/shared-teams-c32e6b36-e3dd-4ca6-806d-5969ba7e6dee"}}},"connectorDisplayName":"Control","icon":"data&amp;amp;colon;image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"DamoBird365_Transfer_Email_To_Teams","operationDefinition":{"type":"Scope","actions":{"Get_All_To_and_From_Emails":{"type":"Compose","inputs":"@replace(tolower(concat(triggerOutputs()?['body/toRecipients'], ';', triggerOutputs()?['body/from'])), ';', ',')","runAfter":{}},"Post_your_own_adaptive_card_as_the_Flow_bot_to_a_user":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams_1","operationId":"PostUserAdaptiveCard","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"PostAdaptiveCardRequest/recipient/to":"youremail[at]yourdomain[dot]com;","PostAdaptiveCardRequest/messageBody":"{\n    \"type\": \"AdaptiveCard\",\n    \"body\": [\n        {\n            \"type\": \"TextBlock\",\n            \"size\": \"Medium\",\n            \"weight\": \"Bolder\",\n            \"text\": \"Transfer Email to Chat\",\n            \"wrap\": true\n        },\n        {\n            \"type\": \"ColumnSet\",\n            \"columns\": [\n                {\n                    \"type\": \"Column\",\n                    \"items\": [\n                        {\n                            \"type\": \"TextBlock\",\n                            \"weight\": \"Bolder\",\n                            \"text\": \"@{triggerOutputs()?['body/from']}\",\n                            \"wrap\": true\n                        },\n                        {\n                            \"type\": \"TextBlock\",\n                            \"spacing\": \"None\",\n                            \"text\": \"@{triggerOutputs()?['body/subject']}\",\n                            \"isSubtle\": true,\n                            \"wrap\": true\n                        }\n                    ],\n                    \"width\": \"stretch\"\n                }\n            ]\n        },\n        {\n            \"type\": \"TextBlock\",\n            \"text\": \"@{triggerOutputs()?['body/bodyPreview']}\",\n            \"wrap\": true\n        }\n    ],\n  \"actions\": [\n    {\n      \"type\": \"Action.OpenUrl\",\n      \"title\": \"Start Group DM in Teams\",\n      \"url\": \"https://teams.microsoft.com/l/chat/0/0?users=@{outputs('Get_All_To_and_From_Emails')}&amp;amp;topicName=@{triggerOutputs()?['body/subject']}&amp;amp;message=Hi, regarding your Email (@{triggerOutputs()?['body/subject']}). \"\n    },\n    {\n      \"type\": \"Action.OpenUrl\",\n      \"title\": \"Start 1:1 DM in Teams\",\n      \"url\": \"https://teams.microsoft.com/l/chat/0/0?users=@{triggerOutputs()?['body/from']}&amp;amp;topicName=@{triggerOutputs()?['body/subject']}&amp;amp;message=Hi, regarding your Email (@{triggerOutputs()?['body/subject']}). \"\n    },\n  ],\n    \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",\n    \"version\": \"1.2\"\n}","PostAdaptiveCardRequest/messageTitle":"Transfer Email To Teams"},"authentication":"@parameters('$authentication')"},"runAfter":{"Get_All_To_and_From_Emails":["Succeeded"]}}},"runAfter":{},"description":"***Please make sure you update the TO: in the Adaptive Card***"}}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;Summary&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;Get that internal conversation moved from traditional Email into modern Teams.&amp;nbsp; Not all conversation is better suited to Teams, I accept, but it's often far more productive to have the order of conversation in front of you, expecially if you have had a couple days off.&amp;nbsp; If a colleague has taken the initiative to shift a conversation into Teams, it will save the group a lot of effort having to sift through that email string and potentially allows you to work in real time seeing if someone is available/online, rather than wait for that next email to come in or maybe a couple of people reply to that email at the same time with a different opinion&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@FE3C8A5543DEF164D4C09E9B7F45E1A4/images/emoticons/facepalm_40x40.gif" alt=":facepalm:" title=":facepalm:" /&gt;&amp;nbsp; I've enjoyed working with you email, but Teams messaging is my preferred internal conversation route these days if I can't start a call of course.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;What trigger would suit you best?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;Would you include To/From or CC'd members too in your Group Email?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;Have you used Teams Deep Links before?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-left"&gt;&lt;FONT size="4"&gt;Check out &lt;A href="https://damobird365.birdhoose.co.uk/" target="_blank"&gt;my blog&lt;/A&gt; for more ideas or if you have an idea of your own but don't know where to start, give me a shout via the various platforms - DamoBird365&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 07:31:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/teams-an-adoption-idea-transfer-your-group-chat-emails-to-teams/ba-p/2290219</guid>
      <dc:creator>DamoBird365</dc:creator>
      <dc:date>2021-04-26T07:31:06Z</dc:date>
    </item>
    <item>
      <title>Microsoft 365 PnP Community Spotlight: Wictor Wilén</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-wictor-wil%C3%A9n/ba-p/2290078</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="wictorwilen.jpg" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275451iD586984C4BE7D4A3/image-size/large?v=v2&amp;amp;px=999" role="button" title="wictorwilen.jpg" alt="wictorwilen.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Which community project do you maintain?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;yo teams&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;How does it help people?&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;yo teams helps developers kickstart their Teams extensibility projects by providing an easy way to create the first Teams App all the way to scaffolding a solution that can be deployed, scaled and maintained.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What have you been working on lately?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;yo teams is continuously evolving based on feedback and real-world feedback and experience from the community. As of lately we've been focused on making it easier and faster to create a project and at the same keep a high level of flexibility for those developers who wants to control and manage everything themselves.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What do you do at work?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I'm the global innovation lead for Modern Workplace at Avanade&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Why are you a part of the M365 community?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Because I learn new stuff all the time - the benefits of a community is the diversity of different voices and opinions. This eventually makes me become better in what I do, and I hope that others learn from what I do.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What was you first community contribution?&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;My first true open source community contribution was in the form of a web part for SharePoint 2007/WSS 3.0, called the &lt;A href="https://github.com/wictorwilen/ChartPart" target="_blank" rel="noopener"&gt;ChartPart&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;One tip for someone who’d like to start contributing&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Just do it. You never know &lt;STRONG&gt;what&lt;/STRONG&gt;&amp;nbsp;you might learn and&amp;nbsp; &lt;STRONG&gt;who&lt;/STRONG&gt;&amp;nbsp;you might learn to know.&amp;nbsp;​&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:259}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 10:59:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-community-spotlight-wictor-wil%C3%A9n/ba-p/2290078</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-05-07T10:59:46Z</dc:date>
    </item>
    <item>
      <title>What I (as a non dev) learned as I created my first Power App</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-i-as-a-non-dev-learned-as-i-created-my-first-power-app/ba-p/2288239</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Header_pic_Power_Apps.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275358i2B3D1E7E57FA577B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Header_pic_Power_Apps.png" alt="Header picture for article &amp;quot;What I (as a non dev) learned as I created my first Power App&amp;quot;" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Header picture for article "What I (as a non dev) learned as I created my first Power App"&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I like to share my very own&amp;nbsp;experiences while building my first canvas app. I have no tech background and at the beginning I thought that I could never do it. But now, looking back, I’ve learned so many things. Not only about functions and Power Apps syntax, but about the process of building apps, learning from failure and community.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope you find that helpful, get inspiration or learn anything from it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let’s dive into the topic, without any further delay: Here are 9 things I’ve learned while building my first canvas app. Why only 9? Why not 10? Because I want to leave room for improvement ;)&lt;/img&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Canvas App vs Model driven app&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;The first question I had for myself was “Do I want to build a model driven app or a canvas app”? And since I had no idea at all, I tried to go for a model driven app. The app will be modelled around your data, so it sounds like this would be a lot easier than starting from scratch, right?&lt;/P&gt;
&lt;P&gt;For several cases that remains true, but actually it depends from which mindset you’re coming. If you’re familiar with your data and have an idea about how data may be presented within an app, model driven apps are your way to go. It makes it really easy to design an app with little clicks.&lt;/P&gt;
&lt;P&gt;BUT&lt;/P&gt;
&lt;P&gt;If you come from a non-tech background, like I did, maybe a canvas app is the better choice. I had a very clear image in my mind, how the app was supposed to look and perform. If you start with a model driven app you must customize it heavily until it suits your needs/ideas. And I actually found out, that while customizing it, I was deleting and editing connections, that came automatically. And then everything broke. Nothing worked anymore and it left me so frustrated.&lt;/P&gt;
&lt;P&gt;For me it was so much easier to start with a canvas app. There is nothing there, just the plain white canvas. And that had two very important effects:&lt;/P&gt;
&lt;P&gt;1. I was forced to build the app step by step and let it grow over time.&lt;/P&gt;
&lt;P&gt;2. I learned how the connections, items and bits worked from the very beginning.&lt;/P&gt;
&lt;P&gt;Let’s get into those two aspects a little bit deeper, shall we?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Scavenger Hunt. Build your app bit by bit&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;If you build your app step by step you are forced to think about an MVP in the very beginning. I don’t talk about the Microsoft Most Valuable Player, but a Minimal Viable Product. Ask yourself: What is the basic functionality that my app needs to work? That is a very important question at the beginning. After you’ve created your MVP you can add functionality and features step by step.&lt;/P&gt;
&lt;P&gt;And that leads to a much more fulfilling learning experience. You will have multiple tiny success experiences and your confidence will grow. You will get the feeling, while your app grows and gets more functionality, it will become YOUR baby. Your thing, that you created out of nothing. There’s hardly a related feeling.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;It’s Trial and Error all the time&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Start with a canvas app and add functionality piece by piece. If something doesn’t work, you know exactly what you did, before it broke (at least in theory). That makes troubleshooting so much easier. If you start with a model driven app, you have no idea where to even begin with looking for possible problems.&lt;/P&gt;
&lt;P&gt;But in your own canvas app, you can recreate the steps you’ve taken, before something stopped working.&lt;/P&gt;
&lt;P&gt;And you will experience this over and over again: It’s trial and error. Get comfortable with the feeling, that this may be long way. Frustration and anger are natural parts of this and it’s perfectly fine. When you solved a problem that seems impossible to even understand at the beginning, that’s the moment when you really learn how these things work.&lt;/P&gt;
&lt;P&gt;Get used to it and embrace failure as THE way of learning.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;You’re constantly reading Microsoft Docs. All the time&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Usually I have an idea in my mind, what I want my app to do. Then I start to google, if this is even possible, I’ll find the right function and read on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;how this works. I try it out. Doesn’t’ work? Back to Microsoft Docs. Are all the circumstances okay? Did you use the same data source as MS docs describes it? Try it out again. Still not working? Back to reading MS docs.&lt;/P&gt;
&lt;P&gt;Actually, I found myself more time reading instructions, than really working in my app, but that is part of the process, too. Even people who are familiar with Power Apps and are deep into the topic have to check up things again and again. MS docs has (nearly) all the information you need to make this work. It’s all in there, but you have to be prepared to dig into this. Really deep.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Knowing about the Power Apps Community is crucial&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;MS docs may have the answer to your problem, but quite often I couldn’t find the right answer, or I didn’t understand the answer at all (no tech background, remember?). That is frustrating. So much.&lt;/P&gt;
&lt;P&gt;But you can be sure about one thing: Somebody has been at exactly that point, where you are right now. And that’s where community comes into play. There are so many amazing people out there who love to share their knowledge, give you hints and tricks. There are blogs, video tutorials, the Power Apps community forum and an endless list of other sources, where you can get help.&lt;/P&gt;
&lt;P&gt;Next to MS docs this is the most useful source of information, by far. Quite often these people don’t give you a plain manual but describe their problem and their solution. That makes it easier to understand it yourself.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Find someone who can take you by hand&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;MS docs and the community are awesome. Hands down. But I found myself in a couple of situations where I wasn’t really able to explain my problem (I didn’t know this at this point yet). And that would make even the best manual/explanation/tutorial useless.&lt;/P&gt;
&lt;BLOCKQUOTE class="wp-block-quote is-style-large"&gt;
&lt;P&gt;THIS CRAP ISN’T WORKING AND I DON’T KNOW WHY. I DON’T EVEN KNOW WHERE TO GET HELP ANYMORE&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I’ve screamed something like this a thousand times, I swear. At least. And do you know what helps? If you can talk to someone, who’s been there. If you struggle to solve your problem on your own (even with a good tutorial at hand), reach out and talk to people. Even better, if you can show them what’s not working and where you are at the moment.&lt;/P&gt;
&lt;P&gt;If you spend some time building your app you sometimes struggle to see the obvious. A view from someone uninvolved is so important. I found myself emotionally involved and too frustrated to remain calm and clear. My view was too narrow and too focused to see new ways to the solution.&lt;/P&gt;
&lt;P&gt;And quite often I shared my screen with someone and before I even explained my problem, the other person knew what was wrong. I was just buried too deep into my problems and views. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;And believe me, there are far more people out there, who are happy to take your hand and show you a couple if things than you may believe. I had to overcome myself to ask not only for help, but for people showing me how things work. But the member of the communities are eager to help. Shall I tell you, why so many of them are happy, if they can help you and show you stuff?&lt;/P&gt;
&lt;P&gt;If you teach, you’ll learn. If you explain something to somebody else, you are forced to explain it in a way that the other person understands. And therefore, you must learn, how to describe things from different perspectives. Teachers don’t just give away their knowledge, they’re gaining experience and get deeper into the topic themselves.&lt;/P&gt;
&lt;P&gt;It’s a win-win situation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Always insert, create, make!&lt;/STRONG&gt;&lt;/H2&gt;
&lt;BLOCKQUOTE class="wp-block-quote"&gt;
&lt;P&gt;“Nothing will work, unless you do!” – Maya Angelou&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Try things out. Insert a function, create a button, make things work. As I mentioned earlier, building an app is trial and error and therefore you have to do something. Every action you make, everything that you try out, makes you better. Makes you understand more things. Lets you learn.&lt;/P&gt;
&lt;P&gt;So, before you google and read for ours, go out there and try things out. Yes, it may be frustrating, but that is part of the learning process and it’s actually good for you.&lt;/P&gt;
&lt;P&gt;If you are building a canvas app, you can undo every step you take, so there is actually little risk to try things out. Click and see, what happens. It will teach you a lot.&lt;/P&gt;
&lt;P&gt;Here is a little trick that I found especially useful: Always make a button. What do I mean by that? For every new function I want to try out I make a new button. It doesn’t look good, but it gives me the possibility to test a functionality in an own, separated environment. There are no other functions on that button but the one I want to test. If it works, I copy the code and paste it into the place, where I originally wanted it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;8.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Form follows function. Make it work, then make it pretty&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;I think this point should be obvious from what I explained earlier, but this was hard for me to learn. You take care of the functionality first; then you work on the looks and the interface. Of course I wanted to create a pretty app right away, but that didn’t work out at all.&lt;/P&gt;
&lt;P&gt;I ended up with a lot of different buttons, shapes and text all over the place. But everything worked.&lt;/P&gt;
&lt;P&gt;From this point on I had all the possibilities to make it pretty and didn’t need to worry about any functionality anymore. That was a relieving point while creating my first app.&lt;/P&gt;
&lt;P&gt;If you focus on the functionality first, you focus on the backend first (frontend: the layer the user sees and uses; backend: the functionality layer that no user should ever see). When the backend works, you can take care about the frontend.&lt;/P&gt;
&lt;P&gt;You have a lot of possibilities to make a working app look nice. The other way around, getting a nice-looking app to work is way more difficult.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Backend.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275356i29969AFB81B5C517/image-size/large?v=v2&amp;amp;px=999" role="button" title="Backend.png" alt="Compare frontend and Backend" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Compare frontend and Backend&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;STRONG&gt;9.&amp;nbsp;&amp;nbsp;&amp;nbsp; Give back to the community. Tell others, what and how you did it&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Maybe that is one of the most important parts. I talked a lot about the community, about resources to learn online, about getting help from the community. And all of this only works, if there’s content to learn from.&lt;/P&gt;
&lt;P&gt;I guess many people might feel intimidated because their first app doesn’t look that beautiful or offers not that much of functionality.&lt;/P&gt;
&lt;P&gt;But that doesn’t matter.&lt;/P&gt;
&lt;P&gt;You created something, you learned something and you should be proud of it, so tell people about it. There are many, many people who want to hear about it. And those are thankful for the opportunity to learn from you and your experiences. There are many people out there, just starting, just as you did. Help them, teach them, learn from that experience.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The community thrives from content that is at every level of expertise. Your experiences matters and can help a lot of people.&lt;/P&gt;
&lt;P&gt;Give a little bit back, because I’m sure you needed help as well.&lt;/P&gt;
&lt;P&gt;That is how we all progress and grow. That is community&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 25 Apr 2021 15:29:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/what-i-as-a-non-dev-learned-as-i-created-my-first-power-app/ba-p/2288239</guid>
      <dc:creator>MichaelRoth42</dc:creator>
      <dc:date>2021-04-25T15:29:53Z</dc:date>
    </item>
    <item>
      <title>Learn to debug your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/learn-to-debug-your-power-apps/ba-p/2288271</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Debugging_Pic.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275359i4BB2129BA59E8E76/image-size/large?v=v2&amp;amp;px=999" role="button" title="Debugging_Pic.png" alt="Head pic for article &amp;quot;Start debugging your Power App&amp;quot;" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Head pic for article "Start debugging your Power App"&lt;/span&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Make troubleshooting and understanding single elements easier.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;They exist. Those little moments that drive you crazy. Things simply don’t work; they don’t work the way you imagined and you almost despair because it just doesn’t want to go on. Or they break. I swear I didn’t touch anything, yet all of a sudden, my functions are broken. WHAT THE HECK???&lt;/P&gt;
&lt;P&gt;I’ve built a few apps by now and I always realize that I have a different view and approach than classic developers. I’m a citizen developer, with no IT knowledge and no technical background, and I’ve learned some useful techniques while building apps that I benefit from with every app. Really, with every app.&lt;/P&gt;
&lt;P&gt;I have talked to many people and found that these little tips and tricks can save you a lot of nerves and a lot of frustration. If you haven’t read my blog about&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://gezeitenbrand.de/what-i-as-a-non-dev-learned-as-i-created-my-first-power-app/" target="_blank" rel="noopener"&gt;9 things I wish I learned before I build my first Power App&lt;/A&gt;, you should check it out, but this one here is the next step. It’s not only about troubleshooting and debugging, but some of those tips will also just keep you sane or teach you good habits that will make your app building experience easier.&lt;/P&gt;
&lt;P&gt;So, let’s lift our troubleshoot and debugging experience on the next level&lt;/P&gt;
&lt;P&gt;Keep calm and let’s build apps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;1. Duplicate your screen&lt;/H2&gt;
&lt;P&gt;Remember my tip to build your app step by step? If you don’t add all the functionality at once, your app grows over time. At some point your pretty satisfied with your app but you want to try out new things and add others.&lt;/P&gt;
&lt;P&gt;If you don’t know how some functions work exactly, always duplicate your screen, before adding new things.&lt;/P&gt;
&lt;P&gt;While building your app and adding new functions, you need to add things, you need to delete others to make it work. And you don’t want to mess with the progress you’ve made so far.&lt;/P&gt;
&lt;P&gt;A duplicated screen is like an additional save game slot, just to make sure. If you break everything, you can always go back. &amp;nbsp;&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_13" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture1.png" style="width: 365px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275360iF45067F3457A6021/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture1.png" alt="Duplicate your screen before trying out new things" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Duplicate your screen before trying out new things&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;FIGCAPTION&gt;&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;H2&gt;2. Use debug label&lt;/H2&gt;
&lt;P&gt;Label are a life saver in Power Apps. They literally make things visible. Let me show you an example. I have a time app and I control the timer with a variable called&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Uhr_tickt&lt;/CODE&gt;. If it’s set to true, the clock is ticking, if it’s set to false it isn’t. The “Go!” button sets the variable to true, the stop button sets it to false. &amp;nbsp;&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_14" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;FIGCAPTION&gt;&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;While testing your app and adding a new functionality, I tried to make the Reset button work and had a hard time figuring out, why it wasn’t working. Quite often it was because my variable&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Uhr-tickt&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;wasn’t set the correct way. Is my timer not starting, because the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;UpdateContext&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;function for my variable wasn’t working or was it something else?&lt;/P&gt;
&lt;P&gt;That’s when I added a debug label. It’s a simple label that shows you the status of your variable. This way you can actually see, what’s happening in the background, making debugging and troubleshooting so much easier.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;FIGURE class="wp-block-video aligncenter"&gt;&lt;VIDEO src="https://gezeitenbrand.de/wp-content/uploads/Time-Control-App.mp4" controls="controls" width="300" height="150"&gt;&lt;/VIDEO&gt;
&lt;FIGCAPTION&gt;Demonstrating how debug label can give you information of the state of a varible&lt;BR /&gt;&lt;BR /&gt;&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;H2&gt;3. Build a button&lt;/H2&gt;
&lt;P&gt;Build a button to test a function. If it works, include it in your desired function.&lt;/P&gt;
&lt;P&gt;I’ve said this a million times before, but it is the most helpful habit, ever. If you want to add a new functionality, don’t put it on top of that main function you have. Insert a button and try the new functionality on that button. If it works, add it to the place where you want to have it.&lt;/P&gt;
&lt;P&gt;But if it doesn’t work, you will never wonder where the error is.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_15" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;H2&gt;4. Snap to align&lt;/H2&gt;
&lt;P&gt;Okay, this one is a mini tipp: Did you ever try to align some buttons or elements and the snap to align functionality drives you crazy? Often it helps to arrange your elements but sometimes it’s your worst enemy.&lt;/P&gt;
&lt;P&gt;Did you know, that you can disable this function by holding the Alt-Key while placing elements?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;5. Use more Excel&lt;/H2&gt;
&lt;P&gt;Whaaaat? More Excel, are you sure? Okay, hear me out. Did you know, that Power FX (the syntax used in Power Apps) is based to Excel functionalities.&lt;/P&gt;
&lt;P&gt;I’m pretty sure you’ve seen that If-Statement before, haven’t you? That is because Power FX is designed for people who are familiar with Excel functions.&lt;/P&gt;
&lt;P&gt;But how can we make use of it?&lt;/P&gt;
&lt;P&gt;I often have a hard time trying to visualize how my data sources work. If I want to write a functional&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;VLOOKUP&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;function, I need to see my tables. That can be difficult with Power Apps because your tables may be anywhere. Somebody gave me the tip to try out difficult functions (AN: like nested if-functions) (another AN: Try to avoid nested if-functions at ALL costs) in Excel. When they work you can replace the fields in your formula with the fields you need in your Power App.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_16" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;H2&gt;6. …but it worked a minute ago&lt;/H2&gt;
&lt;P&gt;Do you know that: You swear you haven’t touched anything, yet all of sudden nothing works anymore? I’ve been there too, and still am from time to time. It happens. Here’s what you do, first thing:&lt;/P&gt;
&lt;P&gt;Check your connections. Are they all working fine? No? Go fix them.&lt;/P&gt;
&lt;P&gt;Did you just change anything in your data source? Are you sure? Update them anyway.&lt;/P&gt;
&lt;P&gt;Did that help already? Good, I thought so.&lt;/P&gt;
&lt;P&gt;Check your connections and data sources every once in a while. If you add another column to that SharePoint list and didn’t update your data source….well. It’s a common pitfall, just remember to check those things.&lt;/P&gt;
&lt;P&gt;Something else about data sources. If you use SharePoint or Excel in your OneDrive (and yes, both can be very valid data sources, don’t let any “IT pro” tell you something different), consider that not everyone in your organization has access to those. If you published and shared your app, ask yourself if everyone who wants to use it has access to the data source you used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;7. Name the elements you use, as you build them&lt;/H2&gt;
&lt;P&gt;Develop the habit of re-naming your screens and elements as you build them. That will keep you a lot of frustration and time. Especially if you have multiple screens, apps can become crowdy. So every time you add another function or you want to try something new, unnamed elements can not only cause unnecessary extra work to find the right element you’re looking for. It can also be frustrating, when you keep adding the wrong elements to your function and that causes it to not work. It can be a serious source of errors.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_17" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture5.png" style="width: 357px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275365i8A24092F0653DDEB/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture5.png" alt="a bunch of unnamed labels and elements" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;a bunch of unnamed labels and elements&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;FIGCAPTION&gt;Which label shows you variable and which is just some explanatory text? &lt;BR /&gt;&lt;BR /&gt;&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;H2&gt;8. Learn what the result view is&lt;/H2&gt;
&lt;P&gt;I haven’t used it for too long because nobody explained it to me. But this a so important to understand in order to learn what it needs for functions to work properly. If you click on functions you can get two important views. The result view and the data type.&lt;/P&gt;
&lt;P&gt;By clicking on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Office365User&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the formular bar shows you the original record with all elements.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_18" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture6.png" style="width: 274px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275366iB6A15D561F9DBC7F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture6.png" alt="If it’s not showing at first, click on the little arrow next to the function." /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;If it’s not showing at first, click on the little arrow next to the function.&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;FIGCAPTION&gt;If it’s not showing at first, click on the little arrow next to the function.&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_19" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;This way you can see, what kind of records are stored and what data you can work with.&lt;/P&gt;
&lt;P&gt;If you click on the next part of the function&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;DisplayName&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Power Apps will show you what this function does AND what data type you get.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_20" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;FIGCAPTION&gt;&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;That helps you understanding complex formulars (try it with a filter function to examine what it does) and also how to work with the data. Do you know the error message “This formula expects data of the type value”? If a functions give you data type text, like in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Office365Users&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;example above, you can’t use it in a function that needs a value to work. Here is a comparison between the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Now()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Today()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;function. The output looks similar, but it’s different data types.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;DateTime&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;is some else than&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_21" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture9.png" style="width: 293px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275369i5544F2AEEE2487E5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture9.png" alt="Difference of functions Now and Today" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Difference of functions Now and Today&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture10.png" style="width: 293px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275370iBE35CC9761C182D6/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture10.png" alt="Difference of functions Now and Today" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Difference of functions Now and Today&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;The formular bar shows it to you, which might help you debugging your app and functions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;9. Dear Diary….&lt;/H2&gt;
&lt;P&gt;Document what you just learned. Like a learning diary. You will need this knowledge later and you can recycle bits and pieces you’ve once build again and again. Already countless times I was relieved to have written down insights and functions. That way, I can always check back to see how they work. This saves me a lot of time and above all frustration.&lt;/P&gt;
&lt;P&gt;Also, the brain processes things differently when you not only think about them but write them down. This additional occupation with learning content consolidates what you just learned.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;10. The world gains beauty through all its colors&lt;/H2&gt;
&lt;P&gt;If you want to make your app pretty and professional (I recommend Luise Freese’s latest blog “&lt;A href="https://m365princess.com/how-to-beautify-your-power-apps/" target="_blank" rel="noreferrer noopener" aria-label="undefined (opens in a new tab)"&gt;How to beautify your Power Apps&lt;/A&gt;” on that) you want to use more then the set of standard colors. But I can be a lot of work to paste all the color codes in every single element you have in your app.&lt;/P&gt;
&lt;P&gt;But it’s very handy to set your colors in labels to make sure you can quickly use the correct colors.&lt;/P&gt;
&lt;P&gt;Set up a label for every color you want to use and set the Color value as you like. To not get confused later on, set the Text value to something clear, like&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;BackgroundColor&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;IconColor&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;and remember to rename the labels in the Tree view as well (see tipp #7).&lt;/P&gt;
&lt;P&gt;Now, whenever you want to use that color you don’t need to remember or copy the Hexcode, but just set the value to your color label by using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;IconColor.Color&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;Quick, easy and you will always use the correct color without much effort.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;
&lt;FIGURE class="aligncenter size-large"&gt;
&lt;DIV id="tinyMceEditorGezeitenbrand42_23" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;FIGCAPTION&gt;Two labels for my most used colors&lt;/FIGCAPTION&gt;
&lt;/FIGURE&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture12.png" style="width: 416px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275379iC9D6621F8554C554/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture12.png" alt="Fill value of the Rectangle_background" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Fill value of the Rectangle_background&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Picture13.png" style="width: 416px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275374i363F84D05A3F3466/image-size/large?v=v2&amp;amp;px=999" role="button" title="Picture13.png" alt="Color value of the Icon_heart" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Color value of the Icon_heart&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here you see the Fill and Color values, set by the labels we defined earlier.&lt;/P&gt;
&lt;DIV class="wp-block-image"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;HR /&gt;
&lt;P&gt;There we have it. That are 10 tipps on how to start debugging your app.&lt;/P&gt;
&lt;P&gt;Do you like them? Do you have more tipps for me? I’m always happy to get new ideas and hints because I am far from being an expert and I’m always learning&lt;/P&gt;</description>
      <pubDate>Sun, 25 Apr 2021 15:11:27 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/learn-to-debug-your-power-apps/ba-p/2288271</guid>
      <dc:creator>MichaelRoth42</dc:creator>
      <dc:date>2021-04-25T15:11:27Z</dc:date>
    </item>
    <item>
      <title>Re: CLI for Microsoft 365 v3.7</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-7/bc-p/2287367#M209</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm upgrading my SPFx version in my project from 1.6.0 to 1.10.0 using CLI. I went through all steps that the upgrade task suggested but running into gulp errors. I upgraded my gulp version from 3.9.1 to 4.0.2 but still having issues. The error I get is shown below. Any ideas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error: More tasks executed then were scheduled.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;at D:\Rightpoint\ACH\ACH-Upgraded-Project\ACH-%20Intranet%20Migration\spark-meganav\node_modules\zone.js\dist\zone-node.js:1266:9&lt;BR /&gt;at process.removeListener (eval at createNamedFn (D:\Rightpoint\ACH\ACH-Upgraded-Project\ACH-%20Intranet%20Migration\spark-meganav\node_modules\zone.js\dist\zone-node.js:1207:17), &amp;lt;anonymous&amp;gt;:3:41)&lt;BR /&gt;at process.on (domain.js:151:13)&lt;BR /&gt;at process.emit (events.js:187:15)&lt;BR /&gt;at process.EventEmitter.emit (domain.js:442:20)&lt;/P&gt;</description>
      <pubDate>Sun, 25 Apr 2021 04:31:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/cli-for-microsoft-365-v3-7/bc-p/2287367#M209</guid>
      <dc:creator>sptrack</dc:creator>
      <dc:date>2021-04-25T04:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286797#M208</link>
      <description>&lt;P&gt;Finally... the problem was - as expected - not the code, but my system.&lt;/P&gt;&lt;P&gt;I use a Mac and Safari which is somehow incompatible with PA.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It struck me as odd that the CPU was close to 100% when I edited the code.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;After restart it runs faster and the interpreter accepted the inputs.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Now it works.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;M.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 24 Apr 2021 19:29:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286797#M208</guid>
      <dc:creator>miniwi</dc:creator>
      <dc:date>2021-04-24T19:29:22Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286784#M207</link>
      <description>&lt;P&gt;&lt;LI-USER uid="794646"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry for coming back, but when I add the lines exactly without converting the text into functions, PA doesn't interpret them.&lt;/P&gt;&lt;P&gt;In other words the URL composed for the news post is composed like this:&lt;/P&gt;&lt;P&gt;Outputs:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"BannerImageUrl"&lt;/SPAN&gt;&lt;SPAN&gt;:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;FONT color="#FF0000"&gt;outputs('Get_Thumbnail')?['body']?['d']?['ThumbnailUrl']&lt;/FONT&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"Description"&lt;/SPAN&gt;&lt;SPAN&gt;:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"&amp;lt;p&amp;gt;&amp;nbsp;dqwdsDS&amp;amp;lt;CSCswcwWc&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Der&amp;nbsp;Beitrag&amp;nbsp;&amp;lt;a&amp;nbsp;rel=\"nofollow\"&amp;nbsp;href=\"&lt;A href="https://techcommunity.microsoft.com/" target="_blank"&gt;https://uavdach.org/?p=1309692\"&amp;gt;Neuer&amp;nbsp;RSS&amp;nbsp;Test&amp;lt;/a&amp;gt;&amp;nbsp;erschien&amp;nbsp;auf&amp;nbsp;&amp;lt;a&amp;nbsp;rel=\"nofollow\"&amp;nbsp;href=\"https://uavdach.org\"&amp;gt;UAV&amp;nbsp;DACH&amp;nbsp;e.V.&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;\n&lt;/A&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"IsBannerImageUrlExternal"&lt;/SPAN&gt;&lt;SPAN&gt;:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;which is obviously simply the text and not the Url expected.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;M.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 24 Apr 2021 19:08:27 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286784#M207</guid>
      <dc:creator>miniwi</dc:creator>
      <dc:date>2021-04-24T19:08:27Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286531#M206</link>
      <description>&lt;P&gt;&lt;LI-USER uid="1035734"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In terms of syntax, I used exactly (copy - paste) the lines Will mentioned.&lt;/P&gt;&lt;P&gt;When renaming each component, use the ones in my image.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RaulPop_0-1619286162607.png" style="width: 400px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275277i360F9F8E0A99FBFF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RaulPop_0-1619286162607.png" alt="RaulPop_0-1619286162607.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope that this works for you.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Apr 2021 17:43:13 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286531#M206</guid>
      <dc:creator>RaulPop</dc:creator>
      <dc:date>2021-04-24T17:43:13Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286408#M205</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;LI-USER uid="794646"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;nope: If I add&amp;nbsp;outputs('Get_Thumbnail')?['body']?['d']?['ThumbnailUrl'] in the blocks edit field, no error occurs but I am not sure if it works. If I use the dynamic input box to add&amp;nbsp;outputs('Get_Thumbnail')?['body']?['d']?['ThumbnailUrl'] OR&amp;nbsp;outputs('Get_Thumbnail') only, the error is reported. Since in the receipt above the OUTPUTS function logo is show, I thought I have to use the dynamic content function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, PowerAutomate doesn't allow to set Url as described.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Bildschirmfoto 2021-04-24 um 18.28.30.png" style="width: 200px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/275271iC2D1ECAE503F3D27/image-size/small?v=v2&amp;amp;px=200" role="button" title="Bildschirmfoto 2021-04-24 um 18.28.30.png" alt="Bildschirmfoto 2021-04-24 um 18.28.30.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyhow, thanks for repsonding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Apr 2021 16:29:56 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286408#M205</guid>
      <dc:creator>miniwi</dc:creator>
      <dc:date>2021-04-24T16:29:56Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286334#M204</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;LI-USER uid="1035734"&gt;&lt;/LI-USER&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When you rename that component - keep only "GetThumbnail" without the rest - that worked for me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards!&lt;/P&gt;</description>
      <pubDate>Sat, 24 Apr 2021 16:14:11 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286334#M204</guid>
      <dc:creator>RaulPop</dc:creator>
      <dc:date>2021-04-24T16:14:11Z</dc:date>
    </item>
    <item>
      <title>Betreff: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286274#M203</link>
      <description>&lt;P&gt;Sad, would love to use it BUT in my international Power Automate environment,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. the variable reports an error: the reference linked to GetTumbnail is incorrect AND&lt;/P&gt;&lt;P&gt;2. the expression&amp;nbsp;&lt;SPAN&gt;_api/sitepages/pages/reposts is invalid to be set as Url&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Any idea? I can set&amp;nbsp;Sharepoint&amp;nbsp;BODY für Url in (2) but miss&amp;nbsp;documentation to understand if this is correct.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;M.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 24 Apr 2021 15:59:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2286274#M203</guid>
      <dc:creator>miniwi</dc:creator>
      <dc:date>2021-04-24T15:59:25Z</dc:date>
    </item>
    <item>
      <title>Re: Use Power Automate to automatically create SharePoint News Links from an RSS feed</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2282946#M202</link>
      <description>&lt;P&gt;Tested and it works like a charm&amp;nbsp;&lt;img class="lia-deferred-image lia-image-emoji" src="https://techcommunity.microsoft.com/html/@D0941B27F467CBA2580A8C085A80A0CF/images/emoticons/happyface_40x40.gif" alt=":happyface:" title=":happyface:" /&gt;&lt;/P&gt;&lt;P&gt;Thank you&amp;nbsp;&lt;LI-USER uid="393431"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 17:56:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/use-power-automate-to-automatically-create-sharepoint-news-links/bc-p/2282946#M202</guid>
      <dc:creator>RaulPop</dc:creator>
      <dc:date>2021-04-23T17:56:57Z</dc:date>
    </item>
    <item>
      <title>Export Power Apps and Power Automate user licenses</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/export-power-apps-and-power-automate-user-licenses/ba-p/2281840</link>
      <description>&lt;H2&gt;Context&lt;/H2&gt;
&lt;P&gt;During a Power Platform audit for a customer, I was looking for exporting all user licenses data into a single file to analyze it with Power BI. In this article, I’ll show you the easy way to export Power Apps and Power Automate user licenses with PowerShell!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Download user licenses&lt;/H2&gt;
&lt;P&gt;To do this, we are using &lt;A href="https://docs.microsoft.com/en-us/powershell/powerapps/overview" target="_blank" rel="noopener"&gt;PowerApps PowerShell&lt;/A&gt; and more particular, the Power Apps admin module.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To install this module, execute the following command as a &lt;STRONG&gt;local&amp;nbsp;administrator&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Install-Module -Name Microsoft.PowerApps.Administration.PowerShell&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt;&amp;nbsp;if this module is already installed on your machine, you can use the &lt;A href="https://docs.microsoft.com/en-us/powershell/module/powershellget/update-module" target="_blank" rel="noopener"&gt;Update-Module&lt;/A&gt; command to update it to the latest version available.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then to export user licenses data, you just need to execute the following command and replace the target file path to use:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Get-AdminPowerAppLicenses -OutputFilePath &amp;lt;PATH-TO-CSV-FILE&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; you will be prompted for your Microsoft 365 tenant credentials, you need to sign-in as&amp;nbsp;&lt;STRONG&gt;Power Platform Administrator or Global Administrator&lt;/STRONG&gt; to execute this command successfully.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After this, you can easily use the generated CSV file in Power BI Desktop for further data analysis:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="power-platform-licenses.png" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/274789iE9950278D1A7DBFC/image-size/large?v=v2&amp;amp;px=999" role="button" title="power-platform-licenses.png" alt="power-platform-licenses.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Happy reporting everyone!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can read this article on my blog &lt;A href="https://yhabersaat.ch/2021/04/18/get-power-apps-power-automate-user-licenses/" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN&gt;Resources&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://docs.microsoft.com/en-us/powershell/powerapps/get-started-powerapps-admin" target="_blank" rel="noopener"&gt;https://docs.microsoft.com/en-us/powershell/powerapps/get-started-powerapps-admin&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell/get-adminpowerapplicenses" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;https://docs.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell/get-adminpowerapplicenses&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 12:48:48 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/export-power-apps-and-power-automate-user-licenses/ba-p/2281840</guid>
      <dc:creator>yhabersaat</dc:creator>
      <dc:date>2021-04-23T12:48:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282514#M201</link>
      <description>&lt;P&gt;I will update the article accordingly soon, thank you for your feedback.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. get the icons&lt;/P&gt;
&lt;P&gt;2. upload them into your app&lt;/P&gt;
&lt;P&gt;3. include the name of the image into the collection right after `image:` , please don't use the `.svg` at the end of the file name.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does this help? Please reach out if you need more support&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 12:39:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282514#M201</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-23T12:39:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282419#M200</link>
      <description>&lt;P&gt;&lt;LI-USER uid="89985"&gt;&lt;/LI-USER&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Primarily its it step 1 about adding the collection, not how to make that work and what to do honestly. Does this require I add those icons first, because there seems to be multiple ways to add those icons you mention in the beginning, but can't quite figure that out either.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 10:57:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282419#M200</guid>
      <dc:creator>Michael_Larsenmlan</dc:creator>
      <dc:date>2021-04-23T10:57:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282371#M199</link>
      <description>&lt;P&gt;&lt;SUP&gt;&lt;LI-USER uid="485227"&gt;&lt;/LI-USER&gt;&amp;nbsp; would it be helpful if you could download this sample app?&amp;nbsp;&lt;/SUP&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SUP&gt;Or do you need me in detail instructions?&amp;nbsp;&lt;/SUP&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 09:50:02 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282371#M199</guid>
      <dc:creator>Luise Freese</dc:creator>
      <dc:date>2021-04-23T09:50:02Z</dc:date>
    </item>
    <item>
      <title>SharePoint Framework Community Call Recording – 22nd of April, 2021</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-22nd-of-april-2021/ba-p/2281674</link>
      <description>&lt;P&gt;SharePoint Framework Special Interest Group (SIG) bi-weekly community call recording from April 22nd is now available from the Microsoft 365 Community YouTube channel at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/m365pnp-videos" target="_blank" rel="noopener noreferrer"&gt;http://aka.ms/m365pnp-videos&lt;/A&gt;. You can use SharePoint Framework for building solutions for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Microsoft Teams&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;SharePoint&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Online.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;LI-VIDEO vid="https://youtu.be/08UBXLU-g04" align="center" size="large" width="600" height="338" uploading="false" thumbnail="" external="url"&gt;&lt;/LI-VIDEO&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Call summary:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Preview the new &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt; co-developed by Microsoft Teams and Sharepoint engineering.&amp;nbsp; Download showcase apps, samples, and documentation. &amp;nbsp;&amp;nbsp;Register now for April trainings on &lt;A href="https://pnp.github.io/sharing-is-caring/" target="_blank" rel="noopener"&gt;Sharing-is-caring&lt;/A&gt;. &amp;nbsp;Give us feedback, the &lt;A href="https://aka.ms/m365pnp/survey" target="_blank" rel="noopener"&gt;Microsoft 365 developer community survey&lt;/A&gt; is now open.&amp;nbsp; Announcing public preview of SharePoint Framework 1.12.1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There were six &lt;STRONG&gt;PnP SPFx web part samples&lt;/STRONG&gt; delivered in last 2 weeks.&amp;nbsp; Great work!&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Latest project updates include:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;PnP Project&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Current version&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;&lt;STRONG&gt;Release/Status&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;SharePoint Framework (SPFx)&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v1.12.1 (beta)&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;GA by end-of-April&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnPjs Client-Side Libraries&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.4.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;April 9th&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;CLI for Microsoft 365&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;v3.9 (beta)&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="57px"&gt;Upgrading SPFx projects to v1.12.1-rc.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.6.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v3.0.0 when SPFx v1.12.1 GA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Reusable SPFx React Property Controls&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v2.5.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v3.0.0 when SPFx v1.12.1 GA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;PnP SPFx Generator&lt;/TD&gt;
&lt;TD&gt;v1.16.0&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;PnP Modern Search&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;v3.19 and v4.1.0&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;April and March 20th&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The host of this call is &lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener"&gt;Patrick Rodgers&lt;/A&gt; (Microsoft) @mediocrebowler.&amp;nbsp; Q&amp;amp;A takes place in chat throughout the call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="210422-spfx.gif" style="width: 999px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/274865i1BAC810C020C6FB0/image-size/large?v=v2&amp;amp;px=999" role="button" title="210422-spfx.gif" alt="210422-spfx.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jungle seating in a Pacific Northwest, Washington, US amphitheater!&amp;nbsp; Truly unique like this Community!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Complete the Microsoft 365 Developer Community Survey – &lt;A href="https://aka.ms/m365pnp/survey" target="_blank" rel="noopener"&gt;https://aka.ms/m365pnp/survey&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Reserve date - SharePoint Monthly community call - 13&lt;SUP&gt;th&lt;/SUP&gt; of April 8 AM PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Register for Sharing is Caring Events:
&lt;UL&gt;
&lt;LI&gt;First Time Contributor Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUREZVRDVYUUJLT1VNRDM4SjhGMlpUNzBORy4u" target="_blank" rel="noopener"&gt;April 27&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp; (EMEA, APAC &amp;amp; US friendly times available)&lt;/LI&gt;
&lt;LI&gt;Community Docs Session –&amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUOUdFR0U1STdGS0lXUDA2Sk1YSE1WMEtHSy4u" target="_blank" rel="noopener"&gt;April&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP – SPFx Developer Workstation Setup – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUM0xJTFJZN01MWlZQVFc3UjgxRUxQQkhDSS4u" target="_blank" rel="noopener"&gt;April 29&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples – Solving SPFx version differences using Node Version Manager – May TBD&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Power Platform Samples – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUMUIxSldXNDdTOFJWTENSTTM0QlBLWUM3NS4u" target="_blank" rel="noopener"&gt;May 5&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;AMA (Ask Me Anything) – Tech Community – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdUQlpKUUlUUUtFR1VTSUxUVzI3NUs5SzhNWC4u" target="_blank" rel="noopener"&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;First Time Presenter – May TBD&lt;/LI&gt;
&lt;LI&gt;More than Code with VSCode – &lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=KtIy2vgLW0SOgZbwvQuRaXDXyCl9DkBHq4A2OG7uLpdURFZPM00xREdYMzVIOEJCWUhWRzBVMlRJWS4u" target="_blank" rel="noopener"&gt;April 28&lt;SUP&gt;th&lt;/SUP&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Maturity Model Practitioners – May TBD&lt;/LI&gt;
&lt;LI&gt;PnP Office Hours – 1:1 session - &lt;A href="https://outlook.office365.com/owa/calendar/PnPSharingisCaring@warner.digital/bookings/" target="_blank" rel="noopener"&gt;Register&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Download the recurrent invite for this call –&amp;nbsp;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Running the CLI for Microsoft 365 in Azure Container Instances orchestrated by Logic Apps&lt;/STRONG&gt; – or Flow in Power Automate. &amp;nbsp;Step through how the Azure Container Instance is created with the specified managed identity.&amp;nbsp; Docker enables you to bundle a pre-configured version of CLI for Microsoft 365 together with all its required dependencies and also is used to orchestrate containers. &amp;nbsp;&amp;nbsp;Purpose of configuration is to run scripts or reports against your tenant.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Advanced Page Properties web part solution&lt;/STRONG&gt; – when the normal page properties web part is not enough, this new Advanced Page Properties web part delivers more.&amp;nbsp; New properties supporting theme variants, capsule format for list options, support for image fields, for links, for currency, and for dates.&amp;nbsp; Tour the code for tracking available properties for drop downs, tracking property selections and parameters for refreshing and rendering the data.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;SharePoint Framework 1.12.1 new features&lt;/STRONG&gt; – support for Node v12, Gulp 4, Microsoft Teams SDK v1.8 and for creating Microsoft Teams meeting apps. &amp;nbsp;Demos – 1) Increased access to page structure and context to avoid DOM dependency (web part detects DOM structure and selects output size to fit allotted space) and 2) SPFx support for Complex Microsoft Teams solutions (manifest included in Package to synchronize with Teams App catalog).&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;SPFx extension samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-extensions&lt;/A&gt;)&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/master/samples/react-send-to-teams" target="_blank" rel="noopener"&gt;News Ticker&lt;/A&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/master/samples/react-send-to-teams" target="_blank" rel="noopener noreferrer"&gt; - &lt;/A&gt;&lt;A href="http://twitter.com/arigunawan" target="_blank" rel="noopener"&gt;Ari Gunawan&lt;/A&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-extensions/tree/master/samples/react-send-to-teams" target="_blank" rel="noopener noreferrer"&gt; |&amp;nbsp;@arigunawan&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;SPFx web part samples:&amp;nbsp; (&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/spfx-webparts&lt;/A&gt;)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/pull/1818" target="_blank" rel="noopener"&gt;Data Table&lt;/A&gt; - &lt;A href="http://twitter.com/Chandani_SPD" target="_blank" rel="noopener"&gt;Chandani Prajapati&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@Chandani_SPD&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-staffdirectory" target="_blank" rel="noopener"&gt;Staff Directory&lt;/A&gt; - Tristian O'Brien&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-onedrive-finder" target="_blank" rel="noopener"&gt;OneDrive Finder&lt;/A&gt; - &lt;A href="http://twitter.com/aaclage" target="_blank" rel="noopener"&gt;André Lage&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="861803"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/blob/master/samples/react-graph-mgt-client" target="_blank" rel="noopener"&gt;Graph MGT Client&lt;/A&gt; - &lt;A href="http://twitter.com/sebastienlevert" target="_blank" rel="noopener"&gt;Sébastien Levert&lt;/A&gt;&amp;nbsp;|&amp;nbsp;&lt;LI-USER uid="926766"&gt;&lt;/LI-USER&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-teams-membership-updater" target="_blank" rel="noopener"&gt;Teams Membership Updater&lt;/A&gt; - &lt;A href="http://twitter.com/techienickb" target="_blank" rel="noopener"&gt;Nick Brown&lt;/A&gt;&amp;nbsp;|&amp;nbsp;@techienickb&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your great work.&amp;nbsp; Samples are often showcased in Demos.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Agenda items:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Latest updates on SharePoint Framework -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener nofollow noreferrer"&gt;Vesa Juvonen&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @vesajuvonen – &lt;A href="https://youtu.be/08UBXLU-g04?t=385" target="_self"&gt;6:25&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;PnPjs Client-Side Libraries -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/jfj1997" target="_self" rel="nofollow noreferrer noopener"&gt;Julie Turner&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Sympraxis Consulting) | @jfj1997 –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=487" target="_self"&gt;8:07&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;CLI for Microsoft 365 -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=620" target="_self"&gt;10:20&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Controls -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler –&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=694" target="_self"&gt;11:34&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP Modern Search -&amp;nbsp;&lt;A href="http://twitter.com/mediocrebowler" target="_blank" rel="noopener nofollow noreferrer"&gt;Patrick Rodgers&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Microsoft) | @mediocrebowler&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=769" target="_self"&gt;12:49&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Samples -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://twitter.com/bernierh" target="_blank" rel="noopener nofollow noreferrer"&gt;Hugo Bernier&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Tahoe Ninjas) | @bernierh&amp;nbsp;–&lt;SPAN&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=837" target="_self"&gt;13:57&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Demos:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Running the CLI for Microsoft 365 in Azure Container Instances orchestrated by Logic Apps – &lt;A href="http://twitter.com/appieschot" target="_blank" rel="noopener"&gt;Albert-Jan Schot&lt;/A&gt; (Portiva) | @appieschot | &lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kWX8lhXVWx2QXGF?e=VogeNR" target="_self"&gt;deck&lt;/A&gt;&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;–&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=1084" target="_self"&gt;18:04&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Advanced Page Properties web part solution – &lt;A href="http://twitter.com/homol" target="_blank" rel="noopener"&gt;Mike Homol&lt;/A&gt; (ThreeWill) |&amp;nbsp;@homol | &lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kQb2NjM2sQAiEOu?e=q7eLpV" target="_self"&gt;deck&lt;/A&gt;&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;–&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=1920" target="_self"&gt;32:00&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;SharePoint Framework 1.12.1 new features – &lt;A href="http://twitter.com/vesajuvonen" target="_blank" rel="noopener"&gt;Vesa Juvonen&lt;/A&gt; (Microsoft) | @vesajuvonen&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt; –&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;A href="https://youtu.be/08UBXLU-g04?t=2733" target="_self"&gt;45:33&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Additional resources around the covered topics and links from the slides.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://1drv.ms/p/s!AlposW7ozA_90kMrJvE87jh_s6n1?e=bsowBg" target="_blank" rel="nofollow noopener noreferrer"&gt;The presentation used for this community call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Walkthrough - &lt;A href="https://www.cloudappie.nl/running-m365-cli-container-instances/" target="_blank" rel="noopener"&gt;Running the CLI for Microsoft 365 in an Azure Container Instance&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Tool - &lt;A href="https://aka.ms/cli-m365" target="_blank" rel="noopener"&gt;CLI for Microsoft 365&lt;/A&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Docker Hub - &lt;A href="https://hub.docker.com/r/m365pnp/cli-microsoft365" target="_blank" rel="noopener"&gt;m365pnp/cli-microsoft365&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Blog - &lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/run-cli-microsoft-365-in-docker/" target="_blank" rel="noopener"&gt;Run CLI for Microsoft 365 in Docker&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Article - &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/improving-the-page-properties-web-part/ba-p/2256651" target="_blank" rel="noopener"&gt;Improving the Page Properties web part&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Repo - &lt;A style="background-color: #ffffff;" href="https://github.com/pnp/sp-dev-fx-webparts/tree/master/samples/react-advanced-page-properties" target="_blank" rel="noopener"&gt;Advanced Page Properties&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Framework - v1.12.1 public preview \ npm install –g &lt;LI-USER uid="41501"&gt;&lt;/LI-USER&gt;/generator-sharepoint@next&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Gallery - &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;Microsoft 365 Extensibility look book gallery&lt;/A&gt; | &lt;A href="https://aka.ms/m365/extensibility" target="_blank" rel="noopener"&gt;aka.ms/m365/extensibility&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;PnP Weekly – Episode 123 with guest Power Platform Cloud Advocate -&amp;nbsp;&lt;A href="https://twitter.com/aprildunnam" target="_blank" rel="noopener"&gt;April Dunnam&lt;/A&gt; (Microsoft) |&amp;nbsp;@aprildunnam&amp;nbsp; | &lt;A href="https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/microsoft-365-pnp-weekly-episode-123/ba-p/2278796" target="_blank" rel="noopener"&gt;video&lt;/A&gt; | &lt;A href="https://pnpweekly.podbean.com/e/microsoft-365-pnp-weekly-episode-123-19th-of-april-2021/" target="_blank" rel="noopener"&gt;podcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Viva Connections&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/VivaConnections" target="_blank" rel="noopener noreferrer"&gt;https://aka.ms/VivaConnections&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;General Resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/office/blogs/cli-microsoft-365-3/" target="_blank" rel="noopener noreferrer"&gt;CLI for Microsoft 365 v3&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/codetour" target="_blank" rel="noopener noreferrer"&gt;CodeTour&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sharing-is-caring" target="_blank" rel="noopener noreferrer"&gt;Sharing is Caring&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/sharing-is-caring&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;Tools - &lt;/A&gt;&lt;A href="https://microsoft-search.github.io/pnp-modern-search/" target="_blank" rel="noopener"&gt;PnP Modern Search v4&lt;/A&gt;&lt;A href="http://aka.ms/pnp-search" target="_blank" rel="noopener noreferrer"&gt;&amp;nbsp; | &lt;/A&gt;&lt;A href="https://aka.ms/pnp-search" target="_blank" rel="noopener"&gt;https://aka.ms/pnp-search&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/m365pnp" target="_blank" rel="noopener noreferrer"&gt;M365 PnP site&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;| aka.ms/m365pnp&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/sp-starter-kit/tree/v2" target="_blank" rel="noopener noreferrer"&gt;SharePoint Starter Kit v2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Blog: "&lt;A href="https://aka.ms/mgtLap" target="_blank" rel="noopener noreferrer"&gt;A Lap Around Microsoft Graph Toolkit" blog series&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.microsoft.com/en-us/microsoft-365/blogs/new-microsoft-365-patterns-and-practices-pnp-team-model-with-new-community-leads/" target="_blank" rel="noopener noreferrer"&gt;New Microsoft 365 Patterns and Practices (PnP) team model with new community leads&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/m365-community-docs" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 Community Content&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(non-Dev docs)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx web part samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx extension samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/pnpjs/" target="_blank" rel="noopener noreferrer"&gt;GitHub PnPjs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Tutorials&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(12 videos)&lt;/LI&gt;
&lt;LI&gt;Tutorials -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/playlist?list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV" target="_blank" rel="noopener nofollow noreferrer"&gt;Getting started with SharePoint Framework v1.10 Extensions&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(6 videos)&lt;/LI&gt;
&lt;LI&gt;Docs -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://docs.microsoft.com/sharepoint/dev/training/training/?wt.mc_id=YT_CCrecording" target="_blank" rel="noopener noreferrer"&gt;Tutorials and training material for SharePoint Development&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-training" target="_blank" rel="noopener noreferrer"&gt;SPFX Training Package&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-webparts" target="_blank" rel="noopener noreferrer"&gt;SPFx Web Parts&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/spfx-extensions" target="_blank" rel="noopener noreferrer"&gt;SPFx Extensions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spfx-library-components" target="_blank" rel="noopener noreferrer"&gt;SPFx Library Components&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Documentation -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://pnp.github.io/pnpjs/" target="_blank" rel="noopener nofollow noreferrer"&gt;PnPjs v2 documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/M365DevTraining" target="_blank" rel="noopener noreferrer"&gt;Microsoft 365 developer training&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Link -&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/O365DevProgram" target="_blank" rel="noopener noreferrer"&gt;Office 365 Developer Program&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-docs" target="_blank" rel="noreferrer noopener"&gt;Latest documentation on SharePoint Framework&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Found an issue with SharePoint Dev? - please let us know at&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://aka.ms/spdev-issues" target="_blank" rel="noreferrer noopener"&gt;http://aka.ms/spdev-issues&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-property-controls/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable web part property controls&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/sp-dev-fx-controls-react/" target="_blank" rel="noopener nofollow noreferrer"&gt;Reusable react controls for SharePoint Framework solutions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://dev.office.com/blogs/webcast-reusable-controls-for-your-sharepoint-framework-solutions" target="_blank" rel="noreferrer noopener"&gt;Reusable controls webcast&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://sharepoint.github.io/office365-cli/" target="_blank" rel="noreferrer noopener nofollow"&gt;Office 365 CLI&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/pnp/generator-spfx" target="_blank" rel="noopener noreferrer"&gt;PnP SPFx Yeoman Generator&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Extends the out-of-the-box experience with open-source community capabilities&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://aka.ms/spdev-uservoice" target="_blank" rel="noreferrer noopener"&gt;SharePoint Dev UserVoice&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- for new feature requests&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Other mentioned topics:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/sharepoint/dev/" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SharePoint/sp-dev-docs/issues" target="_blank" rel="noreferrer noopener"&gt;SharePoint dev issue list&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Upcoming calls | Recurrent invites:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;M365 General Dev call – &lt;/STRONG&gt;April 29&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/m365-dev-sig" target="_blank" rel="noopener"&gt;https://aka.ms/m365-dev-sig&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Graph call - &lt;/STRONG&gt;May 4&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftgraphcall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftgraphcall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint Framework call – &lt;/STRONG&gt;May 6&lt;SUP&gt;th&lt;/SUP&gt; at 7:00 am PDT | &lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SharePoint monthly call – &lt;/STRONG&gt;May 11&lt;SUP&gt;th&lt;/SUP&gt; at 8:00am PDT | &lt;A href="https://aka.ms/sp-call" target="_blank" rel="noopener"&gt;https://aka.ms/sp-call&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office add-in monthly call – &lt;/STRONG&gt;May 12&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/officeaddinscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/officeaddinscall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Adaptive Cards monthly call – &lt;/STRONG&gt;May 13&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT | &lt;A href="https://aka.ms/adaptivecardscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/adaptivecardscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Teams monthly call – &lt;/STRONG&gt;May 18&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/microsoftteamscommunitycall" target="_blank" rel="noopener"&gt;https://aka.ms/microsoftteamscommunitycall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Power Apps monthly call – &lt;/STRONG&gt;May 19&lt;SUP&gt;th&lt;/SUP&gt; at 8:00 am PDT | &lt;A href="https://aka.ms/PowerAppsMonthlyCall" target="_blank" rel="noopener"&gt;https://aka.ms/PowerAppsMonthlyCall&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="font-family: inherit;"&gt;Microsoft Identity Platform – &lt;/STRONG&gt;&lt;SPAN style="font-family: inherit;"&gt;May 20&lt;/SPAN&gt;&lt;SUP&gt;th&lt;/SUP&gt; at 9:00 am PDT |&amp;nbsp;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://aka.ms/IDDevCommunityCalendar" target="_blank" rel="noopener"&gt;https://aka.ms/IDDevCommunityCalendar&lt;/A&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PnP SharePoint Framework Special Interest Group bi-weekly calls are targeted at anyone who is interested in the JavaScript-based development towards Microsoft Teams, SharePoint Online, and also on-premises. SIG calls are used for the following objectives.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SharePoint Framework engineering update from Microsoft&lt;/LI&gt;
&lt;LI&gt;Talk about PnP JavaScript Core libraries&lt;/LI&gt;
&lt;LI&gt;Office 365 CLI Updates&lt;/LI&gt;
&lt;LI&gt;SPFx reusable controls&lt;/LI&gt;
&lt;LI&gt;PnP SPFx Yeoman generator&lt;/LI&gt;
&lt;LI&gt;Share code samples and best practices&lt;/LI&gt;
&lt;LI&gt;Possible engineering asks for the field - input, feedback, and suggestions&lt;/LI&gt;
&lt;LI&gt;Cover any open questions on the client-side development&lt;/LI&gt;
&lt;LI&gt;Demonstrate SharePoint Framework in practice in Microsoft Teams or SharePoint context&lt;/LI&gt;
&lt;LI&gt;You can download a recurrent invite from&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/spdev-spfx-call" target="_blank" rel="noreferrer noopener"&gt;https://aka.ms/spdev-spfx-call&lt;/A&gt;. Welcome and join the discussion!&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;“Sharing is caring”&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 13:29:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/sharepoint-framework-community-call-recording-22nd-of-april-2021/ba-p/2281674</guid>
      <dc:creator>Vesa Juvonen</dc:creator>
      <dc:date>2021-04-23T13:29:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to beautify your Power Apps</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282336#M198</link>
      <description>&lt;P&gt;Love it..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But a powerapps simpleton like me, might need a more simple guide, since I simply cannot duplicate what you have done here :)&lt;/img&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 09:23:15 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-beautify-your-power-apps/bc-p/2282336#M198</guid>
      <dc:creator>Michael_Larsenmlan</dc:creator>
      <dc:date>2021-04-23T09:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to configure and use Incoming Webhooks in Microsoft Teams</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-configure-and-use-incoming-webhooks-in-microsoft-teams/bc-p/2282065#M196</link>
      <description>&lt;P&gt;How do we use the templating feature of Adaptive Cards through an incoming Teams webhook?&lt;/P&gt;</description>
      <pubDate>Fri, 23 Apr 2021 00:02:18 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/how-to-configure-and-use-incoming-webhooks-in-microsoft-teams/bc-p/2282065#M196</guid>
      <dc:creator>jameskirsop</dc:creator>
      <dc:date>2021-04-23T00:02:18Z</dc:date>
    </item>
    <item>
      <title>Re: Change your own profile picture as a Guest in Microsoft Teams</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/change-your-own-profile-picture-as-a-guest-in-microsoft-teams/bc-p/2281340#M193</link>
      <description>&lt;P&gt;Never mind, of course I was logged in as the wrong user 🤦‍:male_sign:&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Apr 2021 09:40:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/change-your-own-profile-picture-as-a-guest-in-microsoft-teams/bc-p/2281340#M193</guid>
      <dc:creator>MichaelRoth42</dc:creator>
      <dc:date>2021-04-22T09:40:06Z</dc:date>
    </item>
    <item>
      <title>Re: Change your own profile picture as a Guest in Microsoft Teams</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/change-your-own-profile-picture-as-a-guest-in-microsoft-teams/bc-p/2281315#M192</link>
      <description>&lt;P&gt;Super cool idea, but it didn't work for me. I am not allowed to edit my profile in Azure :(&lt;/img&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Not_allowed.png" style="width: 256px;"&gt;&lt;img src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/274654i0320C7385A976C3D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Not_allowed.png" alt="Not_allowed.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Apr 2021 09:21:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/change-your-own-profile-picture-as-a-guest-in-microsoft-teams/bc-p/2281315#M192</guid>
      <dc:creator>MichaelRoth42</dc:creator>
      <dc:date>2021-04-22T09:21:37Z</dc:date>
    </item>
  </channel>
</rss>

