<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>SharePoint &#8211; Learn SharePoint, Microsoft Power Platform and SPFx Tutorials &#8211; SPGuides</title>
	<atom:link href="https://www.spguides.com/category/sharepoint/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.spguides.com</link>
	<description>Learn SharePoint, Power Platform, SPFx, etc, SharePoint training courses</description>
	<lastBuildDate>Thu, 28 May 2026 13:20:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.spguides.com/wp-content/uploads/2026/05/SPguides-Favicon-new-348x215.avif</url>
	<title>SharePoint &#8211; Learn SharePoint, Microsoft Power Platform and SPFx Tutorials &#8211; SPGuides</title>
	<link>https://www.spguides.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Extract Invoice Data From PDF or Image Using Power Apps and Power Automate</title>
		<link>https://www.spguides.com/extract-invoice-data-from-pdf-or-image-using-power-apps/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Mon, 25 May 2026 05:36:06 +0000</pubDate>
				<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Extract Invoice Data From PDF or Image Using Power Apps]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=135407</guid>

					<description><![CDATA[Recently, while working on an Expense Claim application in Power Apps, I noticed one common problem faced by employees and finance teams. Whenever users submitted an expense claim, they had to manually enter all invoice details, such as: Even though all these details were already available inside the invoice PDF or image, users still had ... <a title="How to Extract Invoice Data From PDF or Image Using Power Apps and Power Automate" class="read-more" href="https://www.spguides.com/extract-invoice-data-from-pdf-or-image-using-power-apps/" aria-label="Read more about How to Extract Invoice Data From PDF or Image Using Power Apps and Power Automate">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>Recently, while working on an <a href="https://www.tsinfotechnologies.com/expense-claim-request-power-apps-app/" target="_blank" rel="noopener">Expense Claim application</a> in Power Apps, I noticed one common problem faced by employees and finance teams.</p>



<p>Whenever users submitted an expense claim, they had to manually enter all invoice details, such as:</p>



<ul class="wp-block-list">
<li>Vendor name</li>



<li>Invoice date</li>



<li>Tax amount</li>



<li>Total amount</li>



<li>Bank details</li>



<li>Invoice line items</li>
</ul>



<p>Even though all these details were already available inside the invoice PDF or image, users still had to type everything manually. This process was time-consuming and sometimes led to typing errors or incorrect data entry.</p>



<p>The client wanted a smarter solution.</p>



<p>They asked:</p>



<blockquote class="wp-block-quote has-contrast-2-background-color has-background is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-base-2-background-color has-background">“Can users simply upload the invoice and let the system automatically fill most of the fields?”</p>
</blockquote>



<p>That is when I built this Invoice Processing solution using <strong>Power Apps, Power Automate, AI Builder, and SharePoint</strong>.</p>



<p>In this solution, the user <a href="https://www.spguides.com/powerapps-upload-file-to-sharepoint-document-library/">uploads an invoice file</a>, such as a PDF or image, then clicks the <strong>Process Invoice</strong> button. Power Automate automatically extracts the invoice details using AI Builder and sends the extracted data back to Power Apps.</p>



<p>The best part is that users no longer need to manually enter all invoice details. Most of the fields are automatically populated from the uploaded invoice. Users can simply review the extracted information, make changes if needed, and then save the final data into SharePoint lists.</p>



<p>This not only improves the user experience but also reduces manual effort and helps prevent data entry errors.</p>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://spguides.gumroad.com/l/AI-Invoice-Processing-App-for-Power-Apps" target="_blank" rel="noopener">AI Invoice Processing App for Power Apps</a></div>
</div>



<h2 class="wp-block-heading">Business Requirement</h2>



<p>The main requirement is:</p>



<p>A user should be able to upload an invoice file in Power Apps. The invoice can be a PDF, JPG, JPEG, PNG, or GIF file. After clicking the Process Invoice button, Power Automate should extract all invoice details using AI Builder and return them to Power Apps.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="dce7f1" data-has-transparency="false" style="--dominant-color: #dce7f1;" fetchpriority="high" decoding="async" width="1024" height="451" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate-1024x451.avif" alt="How to Extract Data from PDF with Power Automate" class="wp-image-135408 not-transparent" title="How to Extract Data from PDF with Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate-1024x451.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate-300x132.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate-768x338.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate-1536x677.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/05/How-to-Extract-Data-from-PDF-with-Power-Automate.avif 1882w" /></figure></div>


<p>The user should then be able to:</p>



<ul class="wp-block-list">
<li>View extracted invoice fields</li>



<li>Modify extracted values if needed</li>



<li>Add or edit invoice line items</li>



<li><a href="https://www.spguides.com/powerapps-submit-data-to-two-sharepoint-lists/">Save the final data into SharePoint</a></li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="dce8f2" data-has-transparency="false" style="--dominant-color: #dce8f2;" decoding="async" width="1024" height="885" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate-1024x885.avif" alt="Extract Data From a PDF With Power Automate" class="wp-image-135409 not-transparent" title="Extract Data From a PDF With Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate-1024x885.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate-300x259.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate-768x664.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate-1536x1327.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-a-PDF-With-Power-Automate.avif 1891w" /></figure></div>


<p>Another important aspect of this solution is that the entire application is built with a <a href="https://www.spguides.com/power-apps-modern-card-control/">responsive layout</a> in Power Apps. I used responsive containers, dynamic width and height formulas, and flexible layouts so that the application works properly across desktop, tablet, and mobile devices.</p>



<h2 class="wp-block-heading">SharePoint Lists Used in This Solution</h2>



<p>For this solution, I created two SharePoint lists:</p>



<ol class="wp-block-list">
<li><strong>Extracted Invoice Data</strong></li>



<li><strong>Invoice Items</strong></li>
</ol>



<h3 class="wp-block-heading">1. Extracted Invoice Data SharePoint List</h3>



<p>This is the main <a href="https://www.spguides.com/retrieve-sharepoint-list-items-using-sharepoint-framework/">SharePoint list</a> where invoice header-level details are stored.</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Column Name</th><th>Data Type</th></tr></thead><tbody><tr><td>Title</td><td>Single line of text</td></tr><tr><td>Invoice Date</td><td>Date and Time</td></tr><tr><td>Due Date</td><td>Date and Time</td></tr><tr><td>Vendor Name</td><td>Single line of text</td></tr><tr><td>Vendor Address</td><td>Multiple lines of text</td></tr><tr><td>Customer Name</td><td>Single line of text</td></tr><tr><td>Customer Address</td><td>Multiple lines of text</td></tr><tr><td>Subtotal</td><td>Single line of text</td></tr><tr><td>Tax Amount</td><td>Single line of text</td></tr><tr><td>Tax Percentage</td><td>Single line of text</td></tr><tr><td>Total Amount</td><td>Single line of text</td></tr><tr><td>Currency</td><td>Single line of text</td></tr><tr><td>Item Count</td><td>Single line of text</td></tr><tr><td>Bank Name</td><td>Single line of text</td></tr><tr><td>Account Number</td><td>Single line of text</td></tr><tr><td>IFSC Code</td><td>Single line of text</td></tr><tr><td>UPI ID</td><td>Single line of text</td></tr></tbody></table></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fcfcfc" data-has-transparency="false" style="--dominant-color: #fcfcfc;" decoding="async" width="1024" height="291" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-1024x291.avif" alt="Automatically Extract Invoice Data from PDF to SharePoint " class="wp-image-135410 not-transparent" title="Automatically Extract Invoice Data from PDF to SharePoint" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-1024x291.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-300x85.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-768x218.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-1536x437.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/05/Automatically-Extract-Invoice-Data-from-PDF-to-SharePoint-2048x582.avif 2048w" /></figure></div>


<p>The <strong>Title</strong> column can store the invoice number or a generated invoice reference number.</p>



<h3 class="wp-block-heading">2. Invoice Items SharePoint List</h3>



<p>This list stores the line item details extracted from the invoice.</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Column Name</th><th>Data Type</th></tr></thead><tbody><tr><td>Title</td><td>Single line of text</td></tr><tr><td>Name</td><td>Single line of text</td></tr><tr><td>Quantity</td><td>Single line of text</td></tr><tr><td>Rate</td><td>Single line of text</td></tr><tr><td>Amount</td><td>Single line of text</td></tr></tbody></table></figure>



<p>The <strong>Title</strong> column can be used to store the invoice number or invoice reference ID, so that each item can be connected with the main invoice record.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="fbfbfa" data-has-transparency="false" style="--dominant-color: #fbfbfa;" loading="lazy" decoding="async" width="825" height="432" sizes="(max-width: 825px) 100vw, 825px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-from-PDF-Power-Automate.avif" alt="Extract Invoice from PDF Power Automate" class="wp-image-135411 not-transparent" title="Extract Invoice from PDF Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-from-PDF-Power-Automate.avif 825w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-from-PDF-Power-Automate-300x157.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-from-PDF-Power-Automate-768x402.avif 768w" /></figure></div>


<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://spguides.gumroad.com/l/AI-Invoice-Processing-App-for-Power-Apps" target="_blank" rel="noopener">AI Invoice Processing App for Power Apps</a></div>
</div>



<h2 class="wp-block-heading">Create a Power Automate Flow to Extract Data from PDF Invoices</h2>



<p>To extract invoice details from the uploaded PDF or image, I created a Power Automate flow. This flow is triggered from Power Apps when the user clicks the <strong>Process Invoice</strong> button.</p>



<p>In this tutorial, I am not going to explain the complete step-by-step process for creating the AI Builder invoice extraction flow, because I have already explained that in detail in this article:</p>



<p><a href="https://www.spguides.com/extract-data-from-pdf-invoices-automatically-using-power-automate/">Extract Data from PDF Invoices Automatically Using Power Automate</a></p>



<p>In this solution, the flow contains three main actions:</p>



<pre class="wp-block-code"><code>When Power Apps calls a flow (V2)<br>        ↓<br>Run a prompt<br>        ↓<br>Respond to a Power App or flow</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f4f4f5" data-has-transparency="false" style="--dominant-color: #f4f4f5;" loading="lazy" decoding="async" width="280" height="370" sizes="(max-width: 280px) 100vw, 280px" src="https://www.spguides.com/wp-content/uploads/2026/05/Create-a-Power-Automate-Flow-to-Extract-Data-from-PDF-Invoices.avif" alt="Create a Power Automate Flow to Extract Data from PDF Invoices" class="wp-image-135412 not-transparent" title="Create a Power Automate Flow to Extract Data from PDF Invoices" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Create-a-Power-Automate-Flow-to-Extract-Data-from-PDF-Invoices.avif 280w, https://www.spguides.com/wp-content/uploads/2026/05/Create-a-Power-Automate-Flow-to-Extract-Data-from-PDF-Invoices-227x300.avif 227w" /></figure></div>


<p>The uploaded invoice file is passed from Power Apps to Power Automate. Then, the <strong>Run a prompt</strong> action reads the invoice content and extracts key details, including the invoice date, vendor name, subtotal, tax amount, total amount, bank details, and line items.</p>



<p>Finally, the extracted values are returned back to Power Apps using the <strong>Respond to a Power App or flow</strong> action. Once the response is received, all extracted invoice fields are displayed in Power Apps, allowing the user to review and modify them before saving the data to SharePoint.</p>



<h2 class="wp-block-heading">Build the Power Apps Extracted Invoice Data</h2>



<p>After creating the Power Automate flow, I created a Power Apps screen where users can upload the invoice file.</p>



<p>In this screen, I used an <a href="https://www.spguides.com/powerapps-email-attachment-control/">Attachment control</a>. This control allows users to select and upload an invoice file from their system. In this application, the user can upload only one invoice file at a time.</p>



<p>The uploaded file can be:</p>



<ul class="wp-block-list">
<li>PDF</li>



<li>JPG</li>



<li>JPEG</li>



<li>PNG</li>



<li>GIF</li>
</ul>



<p>Once the invoice is selected, the file name is displayed inside the attachment control. In my example, I uploaded a PDF invoice named <strong>INV-2026-001.pdf</strong>.</p>



<p>I also added two buttons:</p>



<ul class="wp-block-list">
<li><strong>Clear</strong></li>



<li><strong>Process an Invoice</strong></li>
</ul>



<p>The <a href="https://www.spguides.com/power-apps-clear-text-input/">Clear</a> button is used to remove the selected invoice from the attachment control.</p>



<pre class="wp-block-code"><code>Reset(attachInvoice)</code></pre>



<p>The <strong>Process an Invoice</strong> button is used to <a href="https://www.spguides.com/create-a-folder-in-sharepoint-from-power-apps/">call the Power Automate flow</a>. This button sends the uploaded invoice file to the flow, where the invoice details are extracted and returned back to Power Apps.</p>



<p>This is the Power FX code where I am calling the Power Automate flow:</p>



<pre class="wp-block-code"><code>Set(
            varExtractedData,
            invoiceProcess.Run(
                {
                    file: {
                        name: First(attach.Attachments).Name,
                        contentBytes: First(attach.Attachments).Value
                    }
                }
            )
        );</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="ebeff4" data-has-transparency="false" style="--dominant-color: #ebeff4;" loading="lazy" decoding="async" width="1024" height="447" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Details-With-Power-Automate-And-AI-Builder-1024x447.avif" alt="Extract Invoice Details With Power Automate And AI Builder" class="wp-image-135413 not-transparent" title="Extract Invoice Details With Power Automate And AI Builder" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Details-With-Power-Automate-And-AI-Builder-1024x447.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Details-With-Power-Automate-And-AI-Builder-300x131.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Details-With-Power-Automate-And-AI-Builder-768x335.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Details-With-Power-Automate-And-AI-Builder.avif 1341w" /></figure></div>


<p>In this solution, the <a href="https://www.spguides.com/powerapps-email-attachment-control/">attachment control</a> is mainly used to pass the uploaded invoice file from Power Apps to Power Automate for invoice extraction.</p>



<p>After processing the invoice, the extracted data is displayed on the <strong>Extracted Invoice Data</strong> screen.</p>



<p>On this screen, I used a <a href="https://www.spguides.com/power-apps-modern-form-control/">Form control</a> to display the main invoice details. These fields are automatically populated from the uploaded invoice file, such as invoice number, invoice date, due date, vendor details, customer details, subtotal, tax amount, total amount, currency, and bank information.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="e8eff4" data-has-transparency="false" style="--dominant-color: #e8eff4;" loading="lazy" decoding="async" width="1024" height="428" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Use-invoice-processing-in-Power-Apps-AI-Builder-1024x428.avif" alt="Use invoice processing in Power Apps - AI Builder" class="wp-image-135414 not-transparent" title="Use invoice processing in Power Apps AI Builder" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Use-invoice-processing-in-Power-Apps-AI-Builder-1024x428.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Use-invoice-processing-in-Power-Apps-AI-Builder-300x125.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Use-invoice-processing-in-Power-Apps-AI-Builder-768x321.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Use-invoice-processing-in-Power-Apps-AI-Builder.avif 1325w" /></figure></div>


<p>Below the form, I added an <strong>Invoice Items</strong> section. For this, I used a <a href="https://www.spguides.com/power-apps-split-string-into-repeating-table/">repeating table</a> concept in a <a href="https://www.spguides.com/power-apps-search-gallery/">gallery</a> to display the invoice line items extracted from the invoice. Each row contains the item description, quantity or hours, rate, and amount.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="e6ecf1" data-has-transparency="false" style="--dominant-color: #e6ecf1;" loading="lazy" decoding="async" width="1024" height="322" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Power-Apps-1024x322.avif" alt="Extract Invoice Data From PDF or Image Power Apps" class="wp-image-135415 not-transparent" title="Extract Invoice Data From PDF or Image Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Power-Apps-1024x322.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Power-Apps-300x94.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Power-Apps-768x241.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Power-Apps.avif 1222w" /></figure></div>


<p>The user can review the extracted data and make changes if required. If the invoice has an extra item, the user can click the <strong>plus (+)</strong> icon to add a new row. If any item is not required, the user can remove it using the delete icon.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="d5e3eb" data-has-transparency="false" style="--dominant-color: #d5e3eb;" loading="lazy" decoding="async" width="1896" height="566" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Build-the-Power-Apps-Extracted-Invoice-Data.gif" alt="Build the Power Apps Extracted Invoice Data" class="wp-image-135416 not-transparent" title="Build the Power Apps Extracted Invoice Data"></figure></div>


<p>Finally, I added two buttons at the bottom of the screen:</p>



<ul class="wp-block-list">
<li><strong>Submit</strong>: Saves the invoice header data into the <strong>Extracted Invoice Data</strong> SharePoint list and saves the invoice line items into the <strong>Invoice Items</strong> SharePoint list.</li>



<li><strong>Clear</strong>: Clears the current invoice data and resets the screen for a new invoice.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="e9eff6" data-has-transparency="false" style="--dominant-color: #e9eff6;" loading="lazy" decoding="async" width="860" height="74" sizes="(max-width: 860px) 100vw, 860px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Table-Data-from-PDF-files-in-Power-Automate.avif" alt="Extract Table Data from PDF files in Power Automate" class="wp-image-135417 not-transparent" title="Extract Table Data from PDF files in Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Table-Data-from-PDF-files-in-Power-Automate.avif 860w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Table-Data-from-PDF-files-in-Power-Automate-300x26.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Table-Data-from-PDF-files-in-Power-Automate-768x66.avif 768w" /></figure></div>


<p>This is the <a href="https://www.spguides.com/power-apps-set-combo-box-value-on-button-click/">Submit button</a> Power FX code:</p>



<pre class="wp-block-code"><code>SubmitForm(Form3_2);

ForAll(
    galItems_2.AllItems,
    Patch(
        'Invoice Items',
        Defaults('Invoice Items'),
        {
            Title: First(colInvoiceData).Title,
            Name: txtName.Text,
            Quantity: Value(numQty.Value),
            Rate: Value(numRate.Value),
            Amount: Value(numAmount.Value)
        }
    )
);

Notify(
    "Your Order Has Been Submitted Successfully",
    NotificationType.Success
);
Clear(colInvoiceData);Clear(colInvoiceItems);
Navigate('Attachment Uplode Screen',ScreenTransition.Cover);</code></pre>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://spguides.gumroad.com/l/AI-Invoice-Processing-App-for-Power-Apps" target="_blank" rel="noopener">AI Invoice Processing App for Power Apps</a></div>
</div>



<h2 class="wp-block-heading">Test the Application</h2>



<p>After completing the Power Apps screen and the Power Automate flow, the next step is to test the entire invoice-processing application.</p>



<p>First, upload an <a href="https://www.spguides.com/wp-content/uploads/2026/05/INV-2026-003.pdf">invoice file</a> using the attachment control. In this solution, the application supports PDF and image files such as JPG, JPEG, PNG, and GIF.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="dbe7f1" data-has-transparency="false" style="--dominant-color: #dbe7f1;" loading="lazy" decoding="async" width="1024" height="428" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model-1024x428.avif" alt="Invoice processing prebuilt AI model" class="wp-image-135419 not-transparent" title="Invoice processing prebuilt AI model" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model-1024x428.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model-300x125.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model-768x321.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model-1536x642.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/05/Invoice-processing-prebuilt-AI-model.avif 1896w" /></figure></div>


<p>After selecting the invoice file, click the <strong>Process an Invoice</strong> button. This button calls the Power Automate flow and sends the uploaded invoice file for processing.</p>



<p>Users can also remove the selected invoice file using the <strong>Clear</strong> button before processing another invoice.</p>



<p>In this application, only supported invoice file types can be uploaded, such as PDF, JPG, JPEG, PNG, and GIF.</p>



<p>If the user selects an unsupported file type, such as a Word document (.docx), the application displays a notification that the selected file type is not supported.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="aab4bf" data-has-transparency="false" style="--dominant-color: #aab4bf;" loading="lazy" decoding="async" width="1280" height="720" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/how-to-extract-data-or-text-from-the-pdf-in-the-power-automate-flow.gif" alt="how to extract data or text from the pdf in the power automate flow" class="wp-image-135420 not-transparent" title="how to extract data or text from the pdf in the power automate flow"></figure></div>


<p>Once the flow runs successfully, AI Builder extracts the invoice details and returns the response to Power Apps. Then, all extracted invoice fields are automatically populated on the screen.</p>



<p>The user can then:</p>



<ul class="wp-block-list">
<li>Review the extracted invoice details</li>



<li>Modify incorrect values if required</li>



<li>Add additional invoice items</li>



<li>Remove unnecessary invoice items</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Data-From-PDFs-and-Images-With-GPT-in-Power-Autoamte.jpg" alt="Extract Data From PDFs and Images With GPT in Power Automate" class="wp-image-135421" title="Extract Data From PDFs and Images With GPT in Power Autoamte"></figure></div>


<p>After verifying the information, click the <strong>Submit</strong> button to save the data in the SharePoint lists.</p>



<p>The invoice header information is stored in the <strong>Extracted Invoice Data</strong> list, and all invoice line items are stored in the <strong>Invoice Items</strong> list.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fcfcfc" data-has-transparency="false" style="--dominant-color: #fcfcfc;" loading="lazy" decoding="async" width="1024" height="310" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-1024x310.avif" alt="Extract Invoice Data From PDF or Image Using Power Apps and Power Automate" class="wp-image-135423 not-transparent" title="Extract Invoice Data From PDF or Image Using Power Apps and Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-1024x310.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-300x91.avif 300w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-768x232.avif 768w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-1536x464.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/05/Extract-Invoice-Data-From-PDF-or-Image-Using-Power-Apps-and-Power-Automate-2048x619.avif 2048w" /></figure></div>


<p>This way, we can extract the invoice data in Power Automate, modify it in Power Apps, and then store it in a SharePoint list.</p>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://spguides.gumroad.com/l/AI-Invoice-Processing-App-for-Power-Apps" target="_blank" rel="noopener">AI Invoice Processing App for Power Apps</a></div>
</div>



<h2 class="wp-block-heading">Conclusion</h2>



<p>In this tutorial, we learned how to build an invoice processing application using Power Apps, Power Automate, AI Builder, and SharePoint.</p>



<p>The user uploads an invoice file from Power Apps, Power Automate extracts the invoice data using AI Builder, and the extracted values are returned to Power Apps. The user can review, edit, and finally submit the invoice data. Once submitted, the invoice header details are saved into the <strong>Extracted Invoice Data</strong> SharePoint list, and invoice line items are saved into the <strong>Invoice Items</strong> SharePoint list.</p>



<p>Also, you may like some more Power Automate tutorials:</p>



<ul class="wp-block-list">
<li><a href="https://www.enjoysharepoint.com/power-automate-multilevel-approvals/" target="_blank" rel="noreferrer noopener">Power Automate Multilevel Approvals</a></li>



<li><a href="https://www.spguides.com/extract-sharepoint-site-owner-email-power-automate/">Extract SharePoint Site Owner Email Using Power Automate</a></li>



<li><a href="https://www.enjoysharepoint.com/power-automate-send-7-or-14-day-task-due-reminder-emails/" target="_blank" rel="noreferrer noopener">Power Automate Send seven or 14-Day Task Due Reminder Emails</a></li>



<li><a href="https://www.spguides.com/expense-reimbursement-and-approval-using-power-automate/">Expense Reimbursement and Approval using Power Automate</a></li>



<li><a href="https://www.spguides.com/create-multiple-sites-in-sharepoint-online-using-power-automate-from-excel/">Create Multiple Sites in SharePoint Online using Power Automate from Excel</a></li>



<li><a href="https://www.spguides.com/create-sharepoint-online-list-and-columns-from-excel-using-power-automate/">Create SharePoint Online List and Columns from Excel Using Power Automate</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Power Apps Dataverse vs SharePoint List: Which One Should You Use?</title>
		<link>https://www.spguides.com/power-apps-dataverse-vs-sharepoint-list/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Fri, 03 Apr 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Power Apps Dataverse vs SharePoint List]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=132762</guid>

					<description><![CDATA[If you&#8217;ve spent any time building apps in Power Apps, you&#8217;ve almost certainly hit this exact question: Should I store my data in a SharePoint list or in Dataverse? It&#8217;s one of those decisions that feels simple on the surface but can seriously affect how your app performs, scales, and behaves six months down the road. ... <a title="Power Apps Dataverse vs SharePoint List: Which One Should You Use?" class="read-more" href="https://www.spguides.com/power-apps-dataverse-vs-sharepoint-list/" aria-label="Read more about Power Apps Dataverse vs SharePoint List: Which One Should You Use?">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve spent any time <a href="https://www.tsinfotechnologies.com/products/" target="_blank" rel="noopener">building apps in Power Apps</a>, you&#8217;ve almost certainly hit this exact question: Should I store my data in a SharePoint list or in Dataverse?</p>



<p>It&#8217;s one of those decisions that feels simple on the surface but can seriously affect how your app performs, scales, and behaves six months down the road. Pick the wrong one early, and you&#8217;re either rewriting everything or stuck with an app that crawls to a halt when your data grows.</p>



<p>I&#8217;ve worked with both, and in this <a href="https://www.spguides.com/power-platform-training-course/">tutorial</a>, I&#8217;m going to walk you through the real differences — not just a boring feature comparison, but the practical stuff that actually matters when you&#8217;re building.</p>



<h2 class="wp-block-heading" id="what-is-a-sharepoint-list-really">What Is a SharePoint List, Really?</h2>



<p>A <a href="https://www.spguides.com/power-apps-search-sharepoint-list/">SharePoint list</a> is essentially a table you can create inside a SharePoint site. Think of it like an Excel table that lives in the cloud. It has rows and columns, people can view and edit it directly in SharePoint, and you can connect to it from Power Apps without needing any extra licensing.</p>



<p>It&#8217;s been around for over 20 years, which tells you something — it&#8217;s reliable, familiar, and deeply woven into the <a href="https://www.microsoft.com/en-in/microsoft-365" target="_blank" rel="noopener">Microsoft 365</a> world. Most people in your organization probably already know what SharePoint is. That&#8217;s a big deal when you&#8217;re trying to get adoption for a new app.</p>



<p>Here&#8217;s what a SharePoint list gives you out of the box:</p>



<ul class="wp-block-list">
<li>Columns for text, numbers, dates, choices, people, lookups, and more</li>



<li>Built-in views and filtering directly in SharePoint</li>



<li>Version history and basic item-level permissions</li>



<li>Tight integration with Power Automate for simple workflows</li>



<li>No extra licensing — it comes with almost every Microsoft 365 plan</li>
</ul>



<h2 class="wp-block-heading" id="what-is-dataverse">What Is Dataverse?</h2>



<p>Dataverse is Microsoft&#8217;s cloud-based relational database, and it&#8217;s the native data platform for the entire Power Platform. It&#8217;s built on top of Azure SQL, which means it behaves more like a proper database than a list.</p>



<p>When you use Dataverse, you&#8217;re working with&nbsp;<a href="https://www.spguides.com/dataverse-create-table/">tables</a>&nbsp;(not lists), and those tables can have real relationships between them — one-to-many, many-to-many, the works. You can also build model-driven apps in Power Apps, which is something you simply can&#8217;t do with a SharePoint list.</p>



<p>Here&#8217;s what Dataverse brings to the table (pun intended):</p>



<ul class="wp-block-list">
<li>True relational data model with table relationships</li>



<li>Row-level and column-level security (much more granular than SharePoint)</li>



<li>Business rules and calculated columns built right into the data layer</li>



<li>Full delegation support, so large datasets don&#8217;t break your app</li>



<li>Audit logging and change history at the data level</li>



<li>Supports both Canvas Apps and Model-Driven Apps</li>



<li>Deep integration with Dynamics 365, Power BI, and <a href="https://www.spguides.com/detect-text-in-dataverse-using-ai-builder/">AI Builder</a></li>
</ul>



<p>The catch? You need a Power Apps Premium licence to use it in production. More on that in a moment.</p>



<h2 class="wp-block-heading" id="the-big-differences-that-actually-matter">The Big Differences That Actually Matter</h2>



<p>Let me break down the areas where these two really diverge in practice.</p>



<h3 class="wp-block-heading" id="the-5000-item-problem-delegation">The 5,000-Item Problem (Delegation)</h3>



<p>This is the one that bites almost everyone who starts with SharePoint lists and then grows their app.</p>



<p>Power Apps has a concept called&nbsp;<a href="https://www.spguides.com/powerapps-countrows-function/">delegation</a>. When your app filters or searches data, it ideally sends that query&nbsp;<em>to the data source</em>&nbsp;(server-side), and the data source returns only the matching records. That&#8217;s efficient.</p>



<p>But when you use a function or a column type that SharePoint doesn&#8217;t support in a delegated way, Power Apps has to download a chunk of records&nbsp;<em>locally</em>&nbsp;and then filter them on your device. And here&#8217;s the problem — it only pulls a maximum of 2,000 records by default (you can bump this to 2,000 in the settings, but not beyond).</p>



<p>So if your SharePoint list has 10,000 rows and you&#8217;re searching on a column that isn&#8217;t delegable, you&#8217;re only ever searching through the first 2,000. Your users will get wrong results and won&#8217;t even know it. That&#8217;s the kind of bug that&#8217;s really embarrassing to explain.</p>



<p>Dataverse handles delegation far better. Most filter and search operations are fully delegable, which means it can process millions of records server-side without ever hitting a local limit. If your data is going to grow, this alone is a massive reason to consider Dataverse.</p>



<h3 class="wp-block-heading" id="data-relationships">Data Relationships</h3>



<p>SharePoint lists don&#8217;t have real relationships. Yes, you can add a&nbsp;<em>Lookup</em>&nbsp;column that points to another list, but it&#8217;s very limited — you can only pull one column from the related list, and it doesn&#8217;t support cascading deletes, referential integrity, or anything resembling a proper foreign key.</p>



<p>Dataverse supports one-to-many and many-to-many relationships natively. You can look up related records across tables, enforce referential integrity, and use rollup and calculated columns that aggregate data from related tables automatically. If your app has anything more complex than a flat list — say, orders that have multiple line items, or employees that belong to departments — Dataverse gives you the tools to model that properly.</p>



<h3 class="wp-block-heading" id="security">Security</h3>



<p>This is where SharePoint&#8217;s approach starts to feel a little basic when compared to Dataverse.</p>



<p><a href="https://www.spguides.com/sharepoint-permissions-best-practices/">SharePoint security</a> works at the site level, list level, and item level. You can share a list with a group of people or lock down individual items, but the configuration gets complicated quickly, and there&#8217;s no easy way to say &#8220;this user can read all records, but only edit their own.&#8221;</p>



<p>Dataverse uses role-based access control (RBAC). You create security roles, assign them to users or teams, and define permissions at a very granular level — per table, per operation (create, read, update, delete), and even per column. You can hide an entire column from certain users without any custom code. For anything business-critical, this kind of control is invaluable.</p>



<h3 class="wp-block-heading" id="performance-at-scale">Performance at Scale</h3>



<p>SharePoint lists technically support up to 30 million items, but performance starts to degrade noticeably beyond around 100,000 records — especially in Power Apps. You&#8217;ll need to carefully manage indexed columns and view thresholds, and even then, some operations just get slow.</p>



<p>Dataverse is purpose-built for enterprise-scale workloads. It handles millions of rows without breaking a sweat, with optimised querying and no arbitrary thresholds to work around.</p>



<h3 class="wp-block-heading" id="app-types-you-can-build">App Types You Can Build</h3>



<p>Here&#8217;s something a lot of people miss. If you want to build a&nbsp;<a href="https://www.spguides.com/model-driven-apps-in-power-apps/">Model-Driven App</a>&nbsp;in Power Apps, you&nbsp;<em>must</em>&nbsp;use Dataverse. SharePoint lists aren&#8217;t supported for model-driven apps at all.</p>



<p>Canvas Apps work with both. So if you&#8217;re happy building canvas apps (which are perfectly capable for most business needs), you have the flexibility to choose either. But if you ever want to use the model-driven experience — which gives you a lot of UI structure for free — Dataverse is your only option.</p>



<h2 class="wp-block-heading" id="side-by-side-the-key-differences">Side-by-Side: The Key Differences</h2>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>SharePoint List</th><th>Dataverse</th></tr></thead><tbody><tr><td>Cost</td><td>Included with Microsoft 365</td><td>Requires Power Apps Premium ($20/user/month)</td></tr><tr><td>Data structure</td><td>Flat, limited lookups</td><td>Full relational model</td></tr><tr><td>Max practical records</td><td>~100,000 before issues</td><td>Millions, no practical limit</td></tr><tr><td>Delegation support</td><td>Partial, tricky</td><td>Full, much more reliable</td></tr><tr><td>Security</td><td>Site/list/item level</td><td>Row, column, and role-based</td></tr><tr><td>Business logic</td><td>Basic validation only</td><td>Business rules, calculated &amp; rollup columns</td></tr><tr><td>App types supported</td><td>Canvas Apps only</td><td>Canvas + Model-Driven Apps</td></tr><tr><td>ALM / Deployment</td><td>Hard to move together</td><td>Solution-aware, clean deployments</td></tr><tr><td>Offline support</td><td>No</td><td>Yes (mobile scenarios)</td></tr><tr><td>Setup complexity</td><td>Very easy</td><td>Moderate</td></tr></tbody></table></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="4b5488" data-has-transparency="false" style="--dominant-color: #4b5488;" loading="lazy" decoding="async" width="1024" height="683" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Dataverse-vs-SharePoint-List-Which-One-Should-You-Use-1024x683.avif" alt="Power Apps Dataverse vs SharePoint List Which One Should You Use" class="wp-image-133210 not-transparent" title="Power Apps Dataverse vs SharePoint List Which One Should You Use" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Dataverse-vs-SharePoint-List-Which-One-Should-You-Use-1024x683.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Dataverse-vs-SharePoint-List-Which-One-Should-You-Use-300x200.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Dataverse-vs-SharePoint-List-Which-One-Should-You-Use-768x512.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Dataverse-vs-SharePoint-List-Which-One-Should-You-Use.avif 1536w" /></figure></div>


<h2 class="wp-block-heading" id="so-when-should-you-use-sharepoint-lists">So, When Should You Use SharePoint Lists?</h2>



<p>Honestly, SharePoint lists are great for a lot of real-world scenarios. Don&#8217;t let anyone talk you out of them just because Dataverse sounds fancier.</p>



<p>Use a SharePoint list when:</p>



<ul class="wp-block-list">
<li>You&#8217;re building a simple departmental app — a leave tracker, an equipment request form, a visitor log</li>



<li>Your data is unlikely to grow beyond a few thousand rows</li>



<li>Your users already manage data in SharePoint and need direct access to it outside the app</li>



<li>Cost is a constraint and you don&#8217;t have Premium licences</li>



<li>You need to build something quickly and get it into people&#8217;s hands fast</li>



<li>The app is tied to document management or <a href="https://www.spguides.com/create-sharepoint-site-using-power-apps-power-automate/">SharePoint site</a> content</li>
</ul>



<p>I&#8217;d say the majority of small-to-medium business apps I&#8217;ve seen built by teams without dedicated developers are SharePoint-backed, and they work absolutely fine for their purpose.</p>



<h2 class="wp-block-heading" id="and-when-should-you-use-dataverse">And When Should You Use Dataverse?</h2>



<p>Reach for Dataverse when the requirements start to outgrow what a list can handle.</p>



<p>Use Dataverse when:</p>



<ul class="wp-block-list">
<li>Your app will have more than 10,000–20,000 records and users need to filter and search across all of them</li>



<li>You need relationships between multiple tables (e.g., projects → tasks → team members)</li>



<li>The data is business-critical and you need proper audit trails and granular security</li>



<li>You&#8217;re building for multiple user roles with different access levels</li>



<li>You need to build a model-driven app</li>



<li>You&#8217;re already using Dynamics 365, which means Dataverse is already part of your environment</li>



<li>You want clean Application Lifecycle Management — moving your app and its data structure between dev, test, and production environments</li>



<li>You need offline functionality for mobile users in the field</li>
</ul>



<h2 class="wp-block-heading" id="what-about-licensing-lets-be-honest">What About Licensing? Let&#8217;s Be Honest</h2>



<p>This is the part that makes a lot of people hesitate on Dataverse, and fair enough.</p>



<p><strong>SharePoint lists</strong>&nbsp;work with any standard Microsoft 365 licence. If your users have Microsoft 365 Business Basic, they&#8217;re good to go.</p>



<p><strong>Dataverse</strong>&nbsp;requires a&nbsp;<strong>Power Apps Premium</strong>&nbsp;licence for every user who interacts with the app in production. As of 2025, that&#8217;s&nbsp;<strong>$20 per user per month</strong>&nbsp;(or $12/user/month at enterprise volumes of 2,000+ seats). There&#8217;s also a free Developer Plan if you just want to learn and build — it gives you 2 GB of Dataverse storage and full access to all features, but it&#8217;s for individual development use only, not production deployment.</p>



<p>The licence cost is real, and it&#8217;s worth factoring in before you commit. But if you&#8217;re building something that your organisation genuinely relies on — a business-critical process, something that handles sensitive data, or something that&#8217;s going to be used by hundreds of people — the extra cost per user is usually easy to justify.</p>



<p>A quick rule of thumb I use: if the broken app would cause a real business problem, invest in Dataverse. If the broken app would just be inconvenient, SharePoint list is probably fine.</p>



<h2 class="wp-block-heading" id="my-recommendation-for-getting-started">My Recommendation for Getting Started</h2>



<p>If you&#8217;re new to Power Apps and just getting your feet wet,&nbsp;<strong>start with a SharePoint list</strong>. The learning curve is gentler, there&#8217;s no extra cost, and you can build something useful in a day. Get comfortable with Power Apps as a tool before you add database concepts into the mix.</p>



<p>Once you start bumping into the limitations — delegation warnings, data getting stale, relationships getting messy — that&#8217;s your signal to look at Dataverse. And when you make the move, you&#8217;ll appreciate having a solid understanding of Power Apps already under your belt, because you&#8217;ll be able to focus on the data modelling rather than fighting the tool.</p>



<p>The two platforms aren&#8217;t really competitors. They&#8217;re different tools for different stages and different needs. Most mature Power Platform teams use&nbsp;<em>both</em>&nbsp;— SharePoint for quick wins and lightweight apps, Dataverse for anything that needs to scale or carry real business weight.</p>



<h2 class="wp-block-heading" id="one-last-practical-tip">One Last Practical Tip</h2>



<p>Before you build anything, ask yourself three questions:</p>



<ol class="wp-block-list">
<li><strong>How many records will this app have in 12 months?</strong>&nbsp;If the honest answer is &#8220;I have no idea, it could be a lot,&#8221; lean towards Dataverse.</li>



<li><strong>Who needs to access what?</strong>&nbsp;If different users need different views of the same data with different permissions, Dataverse security is worth every penny.</li>



<li><strong>Does this data relate to other data?</strong>&nbsp;If yes and you need that relationship to be reliable and queryable, don&#8217;t try to fake it with lookup columns in SharePoint.</li>
</ol>



<p>Those three questions will point you in the right direction almost every time.</p>



<p>Also, you may like some more Power Apps and Dataverse tutorials:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/create-and-use-dataflow-in-dataverse/">Dataflow in Dataverse</a></li>



<li><a href="https://www.spguides.com/power-apps-image-control/">Power Apps Image Control</a></li>



<li><a href="https://www.spguides.com/power-apps-dataverse-yes-no-field/">Power Apps Dataverse Yes/No Field</a></li>



<li><a href="https://www.spguides.com/create-dataverse-file-field/">Create Dataverse File Field</a></li>



<li><a href="https://www.spguides.com/dataverse-primary-name-column-autonumber/">Set Autonumber for Primary Name Column in Dataverse</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Check Site Permissions in SharePoint Online [Step-by-Step]</title>
		<link>https://www.spguides.com/check-site-permissions-in-sharepoint-online/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Check Site Permissions in SharePoint Online]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=132301</guid>

					<description><![CDATA[If you&#8217;ve ever needed to figure out why someone can&#8217;t access a site, or you just want to make sure the right people have the right level of access, you&#8217;re in the right place. Checking site permissions in SharePoint Online is something every site owner or admin needs to know how to do. And honestly, ... <a title="How to Check Site Permissions in SharePoint Online [Step-by-Step]" class="read-more" href="https://www.spguides.com/check-site-permissions-in-sharepoint-online/" aria-label="Read more about How to Check Site Permissions in SharePoint Online [Step-by-Step]">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve ever needed to figure out why someone can&#8217;t access a site, or you just want to make sure the right people have the right level of access, you&#8217;re in the right place. Checking site permissions in <a href="https://www.spguides.com/sharepoint-online/">SharePoint Online</a> is something every site owner or admin needs to know how to do. And honestly, once you know where to look, it&#8217;s pretty straightforward.</p>



<p>In this <a href="https://www.spguides.com/sharepoint-developer-training-course/">SharePoint tutorial</a>, I&#8217;ll walk you through multiple ways to check permissions — from the simplest point-and-click method to using PowerShell for a more detailed view. Let&#8217;s get into it.</p>



<h2 class="wp-block-heading" id="what-are-sharepoint-permissions-anyway">What Are SharePoint Permissions, Anyway?</h2>



<p>Before we jump into the how-to part, let me quickly explain what <a href="https://www.spguides.com/sharepoint-permissions-best-practices/">SharePoint permissions</a> actually are — just so we&#8217;re on the same page.</p>



<p>Permissions in SharePoint control what a user can do on a site, library, list, or even a single file. They&#8217;re organized into&nbsp;<strong>permission levels</strong>, and each level bundles together a set of actions:</p>



<ul class="wp-block-list">
<li><strong>Full Control</strong>&nbsp;– The user can do everything, including managing settings and adding/removing people. This is what site owners typically have.</li>



<li><strong>Edit</strong>&nbsp;– Users can add, edit, and delete items in lists and libraries.</li>



<li><strong>Contribute</strong>&nbsp;– Similar to Edit, but slightly more restricted. Users can add or update items, but can&#8217;t delete entire libraries.</li>



<li><strong>Read</strong>&nbsp;– View-only access. Users can look at content and download files, but can&#8217;t change anything.</li>



<li><strong>View Only</strong>&nbsp;– Like Read, but users can&#8217;t even download files. They can only preview content in the browser.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fbfbfb" data-has-transparency="false" style="--dominant-color: #fbfbfb;" loading="lazy" decoding="async" width="1024" height="204" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Permissions-1024x204.avif" alt="SharePoint Permissions" class="wp-image-132671 not-transparent" title="SharePoint Permissions" srcset="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Permissions-1024x204.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Permissions-300x60.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Permissions-768x153.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Permissions.avif 1272w" /></figure></div>


<p>These permission levels are then assigned to users or groups, which is how SharePoint controls who can do what.</p>



<p>Now, SharePoint Online uses three default groups out of the box:</p>



<ul class="wp-block-list">
<li><strong>Owners</strong>&nbsp;– Full Control</li>



<li><strong>Members</strong>&nbsp;– Edit</li>



<li><strong>Visitors</strong>&nbsp;– Read</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="efefef" data-has-transparency="false" style="--dominant-color: #efefef;" loading="lazy" decoding="async" width="425" height="509" sizes="(max-width: 425px) 100vw, 425px" src="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-uses.avif" alt="SharePoint Online uses" class="wp-image-132673 not-transparent" title="SharePoint Online uses" srcset="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-uses.avif 425w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-uses-250x300.avif 250w" /></figure></div>


<p>For Team Sites connected to <a href="https://www.spguides.com/office-365-trial/">Microsoft 365 Groups</a>, permissions are also managed through the Microsoft 365 Group itself — so someone added to the Group automatically gets site access. Communication Sites, on the other hand, use the classic Owners/Members/Visitors model only.</p>



<h2 class="wp-block-heading">Check Site Permissions in SharePoint Online</h2>



<p>Here, I will show you five methods for checking site permissions in SharePoint Online.</p>



<h3 class="wp-block-heading" id="method-1-check-site-permissions-from-the-site-sett">Method 1: Check Site Permissions from the Site Settings Panel in Sharepoint</h3>



<p>This is the quickest way to get an overview of who has access to your site. You don&#8217;t need any admin tools — just site owner access.</p>



<p><strong>Steps:</strong></p>



<ol class="wp-block-list">
<li>Open the <a href="https://www.spguides.com/create-sharepoint-site-using-power-apps-power-automate/">SharePoint site</a> you want to check.</li>



<li>Click the&nbsp;<strong>gear icon (⚙)</strong>&nbsp;in the top-right corner.</li>



<li>Select&nbsp;<strong>Site permissions</strong>&nbsp;from the dropdown.</li>
</ol>



<p>A panel will slide out on the right side of your screen. Here you&#8217;ll see:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="ebecee" data-has-transparency="false" style="--dominant-color: #ebecee;" loading="lazy" decoding="async" width="423" height="463" sizes="(max-width: 423px) 100vw, 423px" src="https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-from-the-Site-Settings-Panel-in-Sharepoint.avif" alt="Check Site Permissions from the Site Settings Panel in Sharepoint" class="wp-image-132674 not-transparent" title="Check Site Permissions from the Site Settings Panel in Sharepoint" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-from-the-Site-Settings-Panel-in-Sharepoint.avif 423w, https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-from-the-Site-Settings-Panel-in-Sharepoint-274x300.avif 274w" /></figure></div>


<ul class="wp-block-list">
<li>The three default groups:&nbsp;<strong>Owners</strong>,&nbsp;<strong>Members</strong>, and&nbsp;<strong>Visitors</strong></li>



<li>How many people are in each group</li>



<li>Any sharing links that are active</li>
</ul>



<p>You can click on any group to see exactly who&#8217;s in it. This gives you a quick snapshot — great when you just need to confirm someone is in the right group.</p>



<p><strong>When to use this:</strong>&nbsp;Perfect for a quick, high-level check. If you just want to see who has access and what group they&#8217;re in, this is your go-to.</p>



<h3 class="wp-block-heading" id="method-2-use-check-permissions-to-look-up-a-specif">Method 2: Use &#8220;Check Permissions&#8221; to Look Up a Specific User in SharePoint</h3>



<p>This method is a lifesaver when someone says, &#8220;I can&#8217;t access the site,&#8221; and you need to quickly check their permissions. Instead of scrolling through a list of users, you just type their name and get a direct answer.</p>



<p>Here&#8217;s how to do it:</p>



<ol class="wp-block-list">
<li>Open the SharePoint site.</li>



<li>Click the&nbsp;<strong>gear icon (⚙)</strong>&nbsp;→&nbsp;<strong>Site permissions</strong>.</li>



<li>In the permissions panel, scroll down and click&nbsp;<strong>Advanced permissions settings</strong>. (This opens a classic-style page — don&#8217;t be alarmed, that&#8217;s normal.)</li>



<li>In the ribbon at the top of the page, click&nbsp;<strong>Check Permissions</strong>.</li>



<li>A small pop-up will appear. Type the name or <a href="https://www.spguides.com/power-automate-get-display-name-from-email/">email address</a> of the user or group you want to check.</li>



<li>Click&nbsp;<strong>Check Now</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="dbdada" data-has-transparency="false" style="--dominant-color: #dbdada;" loading="lazy" decoding="async" width="1024" height="364" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User-1024x364.avif" alt="Check Site Permissions in SharePoint Online use Check Permissions to Look Up a Specific User" class="wp-image-132675 not-transparent" title="Check Site Permissions in SharePoint Online use Check Permissions to Look Up a Specific User" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User-1024x364.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User-300x107.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User-768x273.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User-1536x547.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/Check-Site-Permissions-in-SharePoint-Online-use-Check-Permissions-to-Look-Up-a-Specific-User.avif 1543w" /></figure></div>


<p>SharePoint will instantly show you:</p>



<ul class="wp-block-list">
<li>What permission level does that person have on the site</li>



<li>Whether they have access through a SharePoint group or a direct assignment</li>



<li>Whether the permission is inherited or unique</li>
</ul>



<p><strong>Example:</strong>&nbsp;Let&#8217;s say your colleague Sarah says she can&#8217;t edit a document. You go to Check Permissions, type in Sarah&#8217;s name, and the result shows she&#8217;s in the&nbsp;<strong>Visitors</strong>&nbsp;group — which is Read-only. That&#8217;s your answer. You just move her to the <a href="https://www.spguides.com/set-sharepoint-pages-read-only-for-members/">Members</a> group and she&#8217;s good to go.</p>



<p>This is probably the most useful built-in tool for day-to-day troubleshooting.</p>



<h3 class="wp-block-heading" id="method-3-check-permissions-on-a-specific-library-l">Method 3: Check Permissions on a Specific Library, List, or File in SharePoint Online</h3>



<p>Sometimes you don&#8217;t want to check site-level permissions — you want to see who has access to a specific <a href="https://www.spguides.com/sharepoint-document-library-best-practices/">document library</a>, folder, or even a single file. This is especially useful when unique (broken) permissions have been applied at the item level.</p>



<p><strong>For a Document Library or List:</strong></p>



<ol class="wp-block-list">
<li>Go to the library or list.</li>



<li>Click the&nbsp;<strong>gear icon (⚙)</strong>&nbsp;→&nbsp;<strong>Library settings</strong>&nbsp;(or&nbsp;<strong>List settings</strong>).</li>



<li>Under&nbsp;<strong>Permissions and Management</strong>, click&nbsp;<strong>Permissions for this document library</strong>.</li>



<li>You&#8217;ll see a list of all users and groups with their permission levels on that specific library.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fafafa" data-has-transparency="false" style="--dominant-color: #fafafa;" loading="lazy" decoding="async" width="1024" height="224" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-1024x224.avif" alt="SharePoint Online Check Permissions on a Specific Library, List, or File" class="wp-image-132676 not-transparent" title="SharePoint Online Check Permissions on a Specific Library List or File" srcset="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-1024x224.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-300x66.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-768x168.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-1536x336.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-Online-Check-Permissions-on-a-Specific-Library-List-or-File-2048x447.avif 2048w" /></figure></div>


<p><strong>For a Specific File or Folder:</strong></p>



<ol class="wp-block-list">
<li>Hover over the file or <a href="https://www.spguides.com/sharepoint-document-sets-vs-folder/">folder</a>.</li>



<li>Click the&nbsp;<strong>three dots (…)</strong>&nbsp;→&nbsp;<strong>Details</strong>.</li>



<li>In the details pane, click&nbsp;<strong>Manage access</strong>.</li>



<li>You&#8217;ll see who has access, what kind of access they have, and any sharing links.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="ececec" data-has-transparency="false" style="--dominant-color: #ececec;" loading="lazy" decoding="async" width="1024" height="539" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Sharing-permissions-in-the-SharePoint-modern-experience-1024x539.avif" alt="Sharing &amp; permissions in the SharePoint modern experience" class="wp-image-132677 not-transparent" title="Sharing permissions in the SharePoint modern experience" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Sharing-permissions-in-the-SharePoint-modern-experience-1024x539.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Sharing-permissions-in-the-SharePoint-modern-experience-300x158.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Sharing-permissions-in-the-SharePoint-modern-experience-768x404.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Sharing-permissions-in-the-SharePoint-modern-experience.avif 1493w" /></figure></div>


<p>This is where it gets interesting — if you see a notice that says&nbsp;<strong>&#8220;This library has unique permissions&#8221;</strong>, it means it&#8217;s no longer inheriting permissions from the site. It has its own permission rules. That&#8217;s important to know, especially for security audits.</p>



<h3 class="wp-block-heading" id="method-4-view-group-memberships">Method 4: View Group Memberships in SharePoint Online</h3>



<p>Another angle to look at this is checking what users belong to which <a href="https://www.spguides.com/remove-user-from-sharepoint-group-power-automate/">SharePoint group</a>. This helps when you want to audit group memberships rather than checking individual users.</p>



<ol class="wp-block-list">
<li>Go to&nbsp;<strong>Gear icon → Site permissions → Advanced permissions settings</strong>.</li>



<li>You&#8217;ll see all the groups listed (Owners, Members, Visitors, and any custom groups).</li>



<li>Click on any group name to see all its members.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f9f9f9" data-has-transparency="false" style="--dominant-color: #f9f9f9;" loading="lazy" decoding="async" width="1010" height="183" sizes="(max-width: 1010px) 100vw, 1010px" src="https://www.spguides.com/wp-content/uploads/2026/03/View-Group-Memberships-in-SharePoint-Online.avif" alt="View Group Memberships in SharePoint Online" class="wp-image-132678 not-transparent" title="View Group Memberships in SharePoint Online" srcset="https://www.spguides.com/wp-content/uploads/2026/03/View-Group-Memberships-in-SharePoint-Online.avif 1010w, https://www.spguides.com/wp-content/uploads/2026/03/View-Group-Memberships-in-SharePoint-Online-300x54.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/View-Group-Memberships-in-SharePoint-Online-768x139.avif 768w" /></figure></div>


<p>From inside the group page, you can also go to&nbsp;<strong>Settings → View Group Permissions</strong>&nbsp;to see exactly what permission level the group has on each site or subsite.</p>



<p><strong>Pro tip:</strong>&nbsp;If your <a href="https://www.spguides.com/sharepoint-communication-site-vs-team-site/">Team Site</a> is connected to a Microsoft 365 Group (which most modern Team Sites are), some users might have site access through the Group rather than a SharePoint group directly. Go to&nbsp;<strong>Gear icon → Site permissions</strong>&nbsp;and look for the &#8220;Group membership&#8221; section at the top of the panel to see those users.</p>



<h3 class="wp-block-heading" id="method-5-check-permissions-using-powershell-pnp-po">Method 5: Check Permissions Using PowerShell (PnP PowerShell)</h3>



<p>If you need to audit permissions across a whole site or export results to a spreadsheet, the manual methods above won&#8217;t cut it. That&#8217;s where PowerShell comes in.</p>



<p>I&#8217;ll show you the <a href="https://www.spguides.com/add-sharepoint-list-fields-from-excel-powershell/">PnP PowerShell</a> approach — it&#8217;s the cleanest and most modern way to work with SharePoint Online programmatically.</p>



<p><strong>First, make sure you have PnP PowerShell installed.</strong>&nbsp;If you don&#8217;t:</p>



<pre class="wp-block-preformatted">Install-Module PnP.PowerShell</pre>



<p><strong>Connect to your SharePoint site:</strong></p>



<pre class="wp-block-preformatted">Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/your-site" -Interactive</pre>



<p><strong>Get all permissions for the site:</strong></p>



<pre class="wp-block-preformatted">Get-PnPPrincipalPermission | Select PrincipalId, PrincipalType, RoleName, Scope</pre>



<p>This gives you a list of all users and groups, along with their role names (like Full Control, Edit, Read) and the scope they apply to.</p>



<p><strong>Filter by a specific user or group:</strong></p>



<pre class="wp-block-preformatted">Get-PnPPrincipalPermission | Where-Object { $_.Principal.Title -like "*John Smith*" } | Select PrincipalId, PrincipalType, RoleName, Scope</pre>



<p>Just replace&nbsp;<code>John Smith</code>&nbsp;with the name you&#8217;re looking for.</p>



<p><a href="https://www.spguides.com/get-sharepoint-folder-permissions-using-powershell/">Export the results to a CSV file</a><strong>:</strong></p>



<pre class="wp-block-preformatted">Get-PnPPrincipalPermission | Select PrincipalId, PrincipalType, RoleName, Scope | Export-Csv -Path "C:\Permissions_Report.csv" -NoTypeInformation</pre>



<p>This gives you a spreadsheet you can share with managers or keep as an audit record. Very handy.</p>



<p><strong>When to use PowerShell:</strong>&nbsp;When you&#8217;re dealing with a large site, need to audit multiple users at once, or want a documented record of who has access to what.</p>



<h2 class="wp-block-heading" id="inherited-vs-unique-permissions--and-why-it-matter">SharePoint Inherited vs. Unique Permissions — And Why It Matters</h2>



<p>One thing that trips people up is the concept of&nbsp;<strong>inherited</strong>&nbsp;vs.&nbsp;<strong>unique</strong>&nbsp;permissions.</p>



<p>By default, everything in SharePoint inherits permissions from the level above it:</p>



<ul class="wp-block-list">
<li>A library inherits from the site</li>



<li>A folder inherits from the library</li>



<li>A file inherits from the folder</li>
</ul>



<p>When you break that inheritance and set custom permissions on a library, folder, or file — those are called&nbsp;<strong>unique permissions</strong>.</p>



<p>Why does this matter? Because if someone has access to the site, they might not have access to a specific library if that library has unique permissions that exclude them. This is a common reason why people say &#8220;I can see the site, but I can&#8217;t find a specific document.&#8221;</p>



<p>When you&#8217;re checking permissions and something doesn&#8217;t add up, always check whether the library or item has unique permissions — that&#8217;s usually where the answer is hiding.</p>



<h2 class="wp-block-heading" id="common-scenarios-and-quick-fixes">Common Scenarios and Quick Fixes</h2>



<p>Here are a few real-world situations you&#8217;ll probably run into:</p>



<p><strong>&#8220;A user says they don&#8217;t have access to the site&#8221;</strong><br>→ Go to&nbsp;<strong>Check Permissions</strong>&nbsp;(Method 2), type their name, and see what comes up. If nothing shows, they haven&#8217;t been added at all. If it shows Read, they might be in the Visitors group when they need to be in Members.</p>



<p><strong>&#8220;A user can access the site but not a specific library&#8221;</strong><br>→ Check if that library has unique permissions (Method 3). If it does, the user might not be listed there even though they&#8217;re on the site.</p>



<p><strong>&#8220;You want to see a full list of everyone with access before offboarding a project&#8221;</strong><br>→ Use PowerShell (Method 5) to export a full permissions report.</p>



<p><strong>&#8220;A guest user says they can&#8217;t access the site&#8221;</strong><br>→ Check at both the site level and the specific content level. Also confirm that external sharing is enabled on the site and at the tenant level in the SharePoint Admin Center.</p>



<h2 class="wp-block-heading" id="a-few-things-to-keep-in-mind">A Few Things to Keep in Mind</h2>



<ul class="wp-block-list">
<li>You need to be a&nbsp;<strong>Site Owner</strong>&nbsp;(or have Full Control) to check permissions on a site. If you&#8217;re just a Member, you won&#8217;t see the Check Permissions option.</li>



<li>For Team Sites connected to Microsoft 365 Groups, some access is managed through the Group — not directly in SharePoint. Always check both.</li>



<li>For Channel Sites in Teams, permissions are managed entirely through Teams and appear as read-only in SharePoint. Don&#8217;t try to change them from the SharePoint side.</li>



<li>Nested security groups (groups inside groups) can cause performance issues and sometimes make permission auditing harder. It&#8217;s worth simplifying these when you get the chance.</li>
</ul>



<p>You may also like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/set-column-default-value-in-sharepoint-library/">Set Column Default Value in SharePoint Library</a></li>



<li><a href="https://www.spguides.com/give-sharepoint-library-upload-access-external-users/">Give SharePoint Library Upload Access to External Users</a></li>



<li><a href="https://www.spguides.com/restrict-user-access-to-specific-document-libraries-in-sharepoint/">Restrict User Access to Specific Document Libraries in SharePoint</a></li>
</ul>



<p>Checking site permissions in SharePoint Online doesn&#8217;t have to be confusing. Once you know the right tools to use — the Site Permissions panel for a quick overview, Check Permissions for individual users, and PowerShell for bulk auditing — you&#8217;ll be able to troubleshoot access issues in minutes rather than hours.</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 Best Methods to Migrate SharePoint Online List to Dataverse [Step-by-Step]</title>
		<link>https://www.spguides.com/migrate-sharepoint-online-list-to-dataverse/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Migrate SharePoint Online List to Dataverse]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=132764</guid>

					<description><![CDATA[If you&#8217;ve been building apps on SharePoint lists for a while, there comes a point where you start hitting walls — performance, security roles, relationships between tables, or just the general feeling that you&#8217;ve outgrown lists. That&#8217;s usually when Dataverse starts looking very attractive. I&#8217;ve been through this migration more than once, and in this ... <a title="3 Best Methods to Migrate SharePoint Online List to Dataverse [Step-by-Step]" class="read-more" href="https://www.spguides.com/migrate-sharepoint-online-list-to-dataverse/" aria-label="Read more about 3 Best Methods to Migrate SharePoint Online List to Dataverse [Step-by-Step]">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve been building apps on <a href="https://www.spguides.com/save-microsoft-forms-responses-and-attachments-to-sharepoint-lists-using-power-automate/">SharePoint lists</a> for a while, there comes a point where you start hitting walls — performance, security roles, relationships between tables, or just the general feeling that you&#8217;ve outgrown lists. That&#8217;s usually when Dataverse starts looking very attractive.</p>



<p>I&#8217;ve been through this migration more than once, and in this tutorial, I&#8217;ll walk you through exactly how to move your SharePoint Online list data into <a href="https://www.spguides.com/power-apps-create-dataverse-table-from-excel/">Dataverse</a>. I&#8217;ll cover three methods so you can pick the one that best fits your situation.</p>



<h2 class="wp-block-heading" id="why-move-from-sharepoint-lists-to-dataverse">Why Move from SharePoint Lists to Dataverse?</h2>



<p>Before we get into the how, let me quickly explain why you&#8217;d want to do this in the first place.</p>



<p>SharePoint lists are great for simple scenarios — tracking tasks, logging requests, storing basic data. But they have limits:</p>



<ul class="wp-block-list">
<li><strong>No real relationships</strong>&nbsp;— you can use lookup columns, but it&#8217;s not true relational data</li>



<li><strong>Limited row capacity</strong>&nbsp;— performance degrades noticeably past 5,000 items (the list view threshold)</li>



<li><strong>Weak security model</strong>&nbsp;— you can control access at the list level, but fine-grained, row-level security is painful to implement</li>



<li><strong>No server-side business logic</strong>&nbsp;— business rules, calculated rollups, and validations are hard to enforce</li>



<li><strong>Not ideal for model-driven apps</strong>&nbsp;— if you want to build enterprise-grade apps in Power Apps, Dataverse is the right foundation</li>
</ul>



<p>Dataverse solves all of these. You get proper table relationships, row-level security, server-side business rules, and native support for <a href="https://www.spguides.com/model-driven-apps-in-power-apps/">model-driven Power Apps</a>. Once you migrate, you&#8217;ll also unlock full Copilot Studio integration and better AI features across the Power Platform.</p>



<h2 class="wp-block-heading" id="what-you-need-before-you-start">What You Need Before You Start</h2>



<p>Let me save you some frustration. Before you begin the migration, make sure you have:</p>



<ul class="wp-block-list">
<li><strong>A Power Apps environment</strong>&nbsp;— you need at least an environment with Dataverse enabled (not just Dataverse for Teams)</li>



<li><strong>The right permissions</strong>&nbsp;— you need the Environment Maker role or higher, plus write access to Dataverse</li>



<li><strong>Your SharePoint site URL</strong>&nbsp;handy — you&#8217;ll need it in every method</li>



<li><strong>A clean, well-structured list</strong>&nbsp;— if your SharePoint list has messy data, duplicate columns, or inconsistent values, clean it up first. Garbage in, garbage out.</li>



<li><strong>A Microsoft 365 or Power Platform license</strong>&nbsp;that includes Dataverse storage</li>
</ul>



<p>Also, take a few minutes to map out your SharePoint columns to their Dataverse equivalents. Text columns map easily, but things like Person fields, <a href="https://www.spguides.com/bind-sharepoint-lookup-column-in-power-apps-dropdown/">Lookup columns</a>, and Managed Metadata need special handling. I&#8217;ll flag those as we go.</p>



<h2 class="wp-block-heading">Migrate SharePoint Online List to Dataverse</h2>



<p>Here, I will show you two ways to migrate a SharePoint list to Dataverse, so you can choose the one that best suits your availability.</p>



<h3 class="wp-block-heading" id="method-1-use-create-with-sharepoint-list-the-quick">Method 1: Use &#8220;Create with SharePoint List&#8221; (The Quickest Way)</h3>



<p>Microsoft added a really slick feature to Power Apps that lets you import a SharePoint list and create a <a href="https://www.spguides.com/delete-all-records-from-dataverse-table/">Dataverse table</a>—and a canvas app—in one go. If you&#8217;re starting fresh and just want to get your data into Dataverse quickly, this is the method I&#8217;d use first.</p>



<p>For this method i am using the <strong>Training Programs</strong> SharePoint list:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f7f7f7" data-has-transparency="false" style="--dominant-color: #f7f7f7;" loading="lazy" decoding="async" width="1024" height="525" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Transform-your-SHAREPOINT-Lists-into-DATAVERSE-Tables-1024x525.avif" alt="Transform your SHAREPOINT Lists into DATAVERSE Tables" class="wp-image-132771 not-transparent" title="Transform your SHAREPOINT Lists into DATAVERSE Tables" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Transform-your-SHAREPOINT-Lists-into-DATAVERSE-Tables-1024x525.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Transform-your-SHAREPOINT-Lists-into-DATAVERSE-Tables-300x154.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Transform-your-SHAREPOINT-Lists-into-DATAVERSE-Tables-768x394.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Transform-your-SHAREPOINT-Lists-into-DATAVERSE-Tables.avif 1276w" /></figure></div>


<p><strong>Here&#8217;s how to do it:</strong></p>



<ol class="wp-block-list">
<li>Go to&nbsp;<a href="https://make.powerapps.com/" target="_blank" rel="noreferrer noopener">make.powerapps.com</a>&nbsp;and make sure you&#8217;re in the right environment</li>



<li>From the left-hand menu, select Tables.</li>



<li>Select&nbsp;<strong>Create with SharePoint List</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="dee7e6" data-has-transparency="false" style="--dominant-color: #dee7e6;" loading="lazy" decoding="async" width="1024" height="258" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-sharepoint-List-to-dataverse-in-Power-App-1024x258.avif" alt="Migrate sharepoint List to dataverse in Power App" class="wp-image-132772 not-transparent" title="Migrate sharepoint List to dataverse in Power App" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-sharepoint-List-to-dataverse-in-Power-App-1024x258.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-sharepoint-List-to-dataverse-in-Power-App-300x76.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-sharepoint-List-to-dataverse-in-Power-App-768x194.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-sharepoint-List-to-dataverse-in-Power-App.avif 1536w" /></figure></div>


<blockquote class="wp-block-quote has-contrast-3-background-color has-background is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Note</strong>:</p>



<p class="has-base-2-background-color has-background">This is not the only way to reach this screen. There is another way: go to <strong>Apps</strong> in the left-hand menu, then click <strong>+ New app</strong>. From the dropdown, select <strong>Start with data → Create new tables → Import a SharePoint list</strong>.</p>
</blockquote>



<ol start="4" class="wp-block-list">
<li>Choose an existing <a href="https://www.spguides.com/change-connection-reference-in-power-automate/">SharePoint connection</a> or create a new one</li>



<li>Enter your SharePoint site URL (e.g.,&nbsp;<code>https://yourorg.sharepoint.com/sites/HR</code>)</li>



<li>Pick the list you want to migrate from the dropdown</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f9f9f9" data-has-transparency="false" style="--dominant-color: #f9f9f9;" loading="lazy" decoding="async" width="1024" height="830" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-List-Data-to-Dataverse-1024x830.avif" alt="Import SharePoint List Data to Dataverse" class="wp-image-132773 not-transparent" title="Import SharePoint List Data to Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-List-Data-to-Dataverse-1024x830.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-List-Data-to-Dataverse-300x243.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-List-Data-to-Dataverse-768x622.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-List-Data-to-Dataverse.avif 1140w" /></figure></div>


<ol start="7" class="wp-block-list">
<li>You&#8217;ll see a&nbsp;<strong>preview of your table schema</strong>&nbsp;— review the column names and data types</li>



<li>Make any edits you need (rename columns, change data types, remove columns you don&#8217;t want)</li>



<li>Click&nbsp;<strong>Save and exit</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f1f2f2" data-has-transparency="false" style="--dominant-color: #f1f2f2;" loading="lazy" decoding="async" width="1024" height="353" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List-1024x353.avif" alt="Migrate SharePoint Online List to Dataverse using Create with SharePoint List" class="wp-image-132774 not-transparent" title="Migrate SharePoint Online List to Dataverse using Create with SharePoint List" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List-1024x353.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List-300x103.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List-768x265.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List-1536x530.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Create-with-SharePoint-List.avif 1864w" /></figure></div>


<p>Power Apps will do two things at once: create a Dataverse table based on your schema, and spin up a <a href="https://www.tsinfotechnologies.com/products/" target="_blank" rel="noopener">responsive canvas app</a> using that table. It uploads the first 20 rows immediately so you can start working, and loads the remaining data in the background.</p>



<p><strong>A note on Copilot:</strong>&nbsp;If Copilot is enabled in your environment, it will automatically suggest better data types for your columns. For example, if a column contains email-formatted text, Copilot will suggest mapping it as an email type rather than plain text. It also auto-populates choices for choice columns. This is surprisingly useful — I&#8217;d say it gets it right about 80% of the time, and the remaining 20% is easy to fix manually.</p>



<p><strong>Limitations of this method:</strong></p>



<ul class="wp-block-list">
<li>It works best for simple to medium-complexity lists</li>



<li>Complex column types like Person/Group fields and multi-value lookups may need cleanup after import</li>



<li>You can&#8217;t map to an&nbsp;existing&nbsp;Dataverse table — it always creates a new one</li>
</ul>



<h3 class="wp-block-heading" id="method-2-use-dataflows-the-most-reliable-method">Method 2: Use Dataflows (The Most Reliable Method)</h3>



<p>This is my go-to method for most real-world migrations, especially when you have a large list, complex column types, or you want to <a href="https://www.spguides.com/dataverse-create-table-from-sharepoint-list/">migrate data into an&nbsp;<em>existing</em>&nbsp;Dataverse table</a>.</p>



<p>Dataflows use Power Query under the hood, which means you can transform, filter, and reshape your data before it lands in Dataverse. You have full control.</p>



<h4 class="wp-block-heading" id="step-1-create-a-new-dataflow">Step 1: Create a New Dataflow</h4>



<ol class="wp-block-list">
<li>Log in to&nbsp;<a href="https://make.powerapps.com/" target="_blank" rel="noreferrer noopener">make.powerapps.com</a></li>



<li>In the left navigation, click&nbsp;<strong>More</strong>&nbsp;if needed, then select&nbsp;<a href="https://www.spguides.com/create-and-use-dataflow-in-dataverse/">Dataflows</a></li>



<li>Click&nbsp;<strong>+ New dataflow</strong>&nbsp;and give it a name (e.g., &#8220;HR Requests Migration&#8221;)</li>



<li>On the data source screen, scroll down and select&nbsp;<strong>SharePoint Online List</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="e4e3e3" data-has-transparency="false" style="--dominant-color: #e4e3e3;" loading="lazy" decoding="async" width="1024" height="258" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-1024x258.avif" alt="How to use Dataflows SharePoint list to Dataverse" class="wp-image-132775 not-transparent" title="How to use Dataflows SharePoint list to Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-1024x258.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-300x76.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-768x193.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-1536x387.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-use-Dataflows-SharePoint-list-to-Dataverse-2048x515.avif 2048w" /></figure></div>


<h4 class="wp-block-heading" id="step-2-connect-to-your-sharepoint-list">Step 2: Connect to Your SharePoint List</h4>



<ol class="wp-block-list">
<li>Enter your SharePoint site URL and click&nbsp;<strong>Next</strong></li>



<li>Choose&nbsp;<strong>Organizational account</strong>&nbsp;as the authentication method and sign in</li>



<li>Click&nbsp;<strong>Next</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fbfbfb" data-has-transparency="false" style="--dominant-color: #fbfbfb;" loading="lazy" decoding="async" width="1024" height="549" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migration-of-SharePoint-Lists-into-Microsoft-Dataverse-1024x549.avif" alt="Migration of SharePoint Lists into Microsoft Dataverse" class="wp-image-132776 not-transparent" title="Migration of SharePoint Lists into Microsoft Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migration-of-SharePoint-Lists-into-Microsoft-Dataverse-1024x549.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Migration-of-SharePoint-Lists-into-Microsoft-Dataverse-300x161.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migration-of-SharePoint-Lists-into-Microsoft-Dataverse-768x411.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Migration-of-SharePoint-Lists-into-Microsoft-Dataverse.avif 1525w" /></figure></div>


<ol start="4" class="wp-block-list">
<li>You&#8217;ll see all the lists available on that site — check the one you want to migrate.</li>



<li>Click on Transform data.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f4f3f3" data-has-transparency="false" style="--dominant-color: #f4f3f3;" loading="lazy" decoding="async" width="1024" height="548" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Data-To-Dataverse-1024x548.avif" alt="Migrate SharePoint Data To Dataverse" class="wp-image-132777 not-transparent" title="Migrate SharePoint Data To Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Data-To-Dataverse-1024x548.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Data-To-Dataverse-300x160.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Data-To-Dataverse-768x411.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Data-To-Dataverse.avif 1526w" /></figure></div>


<h4 class="wp-block-heading" id="step-3-clean-up-your-data-in-power-query">Step 3: Clean Up Your Data in Power Query</h4>



<p>This is where Dataflows shine. You&#8217;re now inside the Power Query editor, and you can see all your SharePoint columns — including a bunch of internal system columns you don&#8217;t need.</p>



<p>Here&#8217;s what I typically do:</p>



<ul class="wp-block-list">
<li><strong>Remove system columns</strong>&nbsp;you don&#8217;t need: columns like&nbsp;_UIVersionString,&nbsp;FileSystemObjectType,&nbsp;ServerRedirectedEmbedUrl&nbsp;— select them, right-click, and choose&nbsp;<a href="https://www.spguides.com/remove-characters-from-string-in-power-automate/">Remove columns</a></li>



<li><strong>Expand complex columns</strong>: Person/Group columns in SharePoint come in as records. Click the expand icon next to those columns and choose the field you actually want — usually&nbsp;<code>Email</code>&nbsp;for Person fields</li>



<li><strong>Handle Lookup columns</strong>: Lookup columns are also returned as records. Expand them and extract the&nbsp;<code>Value</code>&nbsp;(the display text) or the&nbsp;<code>LookupId</code>, depending on how your Dataverse table is set up</li>



<li><strong>Change data types</strong>&nbsp;as needed: if a column should be a date but came in as text, change it here</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f3f3f3" data-has-transparency="false" style="--dominant-color: #f3f3f3;" loading="lazy" decoding="async" width="1024" height="538" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse-1024x538.avif" alt="Move SharePoint list data to Dataverse" class="wp-image-132778 not-transparent" title="Move SharePoint list data to Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse-1024x538.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse-300x158.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse-768x403.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse-1536x807.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/Move-SharePoint-list-data-to-Dataverse.avif 1559w" /></figure></div>


<h4 class="wp-block-heading" id="step-4-set-the-destination">Step 4: Set the Destination</h4>



<ol class="wp-block-list">
<li>Click&nbsp;<strong>Next</strong>&nbsp;to get to the&nbsp;<strong>Map tables</strong>&nbsp;screen</li>



<li>Under&nbsp;<strong>Load settings</strong>, choose:
<ul class="wp-block-list">
<li><strong>Load to new table</strong>&nbsp;if you want Dataflows to create the Dataverse table for you</li>



<li><strong>Load to existing table</strong>&nbsp;if you already have a table in Dataverse and just want to fill it with data</li>
</ul>
</li>



<li>If you chose an existing table, use the&nbsp;<strong>Column mapping</strong>&nbsp;section to match your SharePoint columns to your Dataverse columns — the system will auto-map what it can, and you fix the rest</li>



<li>For the primary key, map it carefully. If you have a unique ID from SharePoint that you want to preserve, map it here.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="eaeae8" data-has-transparency="false" style="--dominant-color: #eaeae8;" loading="lazy" decoding="async" width="1280" height="720" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Loading-SharePoint-Data-into-Dataverse-using-Dataflows.gif" alt="Loading SharePoint Data into Dataverse using Dataflows" class="wp-image-132779 not-transparent" title="Loading SharePoint Data into Dataverse using Dataflows"></figure></div>


<h4 class="wp-block-heading" id="step-5-publish-and-monitor">Step 5: Publish and Monitor</h4>



<ol class="wp-block-list">
<li>Click&nbsp;<strong>Publish</strong>&nbsp;— this kicks off the migration</li>



<li>Once published, find your dataflow in the list, click the three dots menu, and select&nbsp;<strong>Show refresh history</strong>&nbsp;to check if it ran successfully</li>



<li>You&#8217;ll see a timestamp, row count, and any errors</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fafafa" data-has-transparency="false" style="--dominant-color: #fafafa;" loading="lazy" decoding="async" width="1024" height="226" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-1024x226.avif" alt="How to Migrate SharePoint Online List to Dataverse uising Dataflows" class="wp-image-132780 not-transparent" title="How to Migrate SharePoint Online List to Dataverse uising Dataflows" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-1024x226.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-300x66.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-768x170.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-1536x340.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-uising-Dataflows-2048x453.avif 2048w" /></figure></div>


<p><strong>Pro tip:</strong>&nbsp;Dataflows can be set to refresh on a schedule. This is handy if you want to sync new SharePoint data periodically rather than doing a one-time migration. Once you&#8217;re satisfied, you can disable the schedule and treat it as a completed migration.</p>



<h3 class="wp-block-heading" id="method-3-use-power-automate-best-for-attachments-a">Method 3: Use Power Automate (Best for Attachments and Complex Records)</h3>



<p>If your SharePoint list has&nbsp;<strong>attachments</strong>&nbsp;(file uploads stored against list items), neither of the above methods will handle those. This is where Power Automate comes in.</p>



<p>The idea is simple: you build a flow that reads every item from the SharePoint list, creates a corresponding record in Dataverse, and then attaches any files to that new record.</p>



<p>Ensure all columns in the SharePoint list are properly created in the Dataverse table.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="fbfbfb" data-has-transparency="false" style="--dominant-color: #fbfbfb;" loading="lazy" decoding="async" width="1024" height="194" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-1024x194.avif" alt="Migrate SharePoint Online List to Dataverse using Power Automate" class="wp-image-132781 not-transparent" title="Migrate SharePoint Online List to Dataverse using Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-1024x194.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-300x57.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-768x146.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-1536x291.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Automate-2048x388.avif 2048w" /></figure></div>


<h4 class="wp-block-heading" id="the-basic-flow-structure">The Basic Flow Structure</h4>



<ol class="wp-block-list">
<li><strong>Trigger</strong>: <a href="https://www.spguides.com/send-email-with-failed-flow-run-link-power-automate/">Manually triggered</a> (or recurrence, if you&#8217;re doing this in batches)</li>



<li><strong>Action 1</strong>: Get items from <a href="https://www.spguides.com/power-apps-search-sharepoint-list/">SharePoint list</a> (use pagination — set the top count to 100 or more and enable the&nbsp;Odata-skiptoken&nbsp;to loop through all items)</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f8f9f9" data-has-transparency="false" style="--dominant-color: #f8f9f9;" loading="lazy" decoding="async" width="923" height="374" sizes="(max-width: 923px) 100vw, 923px" src="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-Data-Attachments-from-SharePoint-to-Dataverse.avif" alt="Migrate Data &amp; Attachments from SharePoint to Dataverse" class="wp-image-132782 not-transparent" title="Migrate Data Attachments from SharePoint to Dataverse" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Migrate-Data-Attachments-from-SharePoint-to-Dataverse.avif 923w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-Data-Attachments-from-SharePoint-to-Dataverse-300x122.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Migrate-Data-Attachments-from-SharePoint-to-Dataverse-768x311.avif 768w" /></figure></div>


<ol start="3" class="wp-block-list">
<li>Then add Apply to each item and provide the body/value from the dynamic content of the Get items.</li>



<li>Inside the Apply to each add &#8220;Add a new row&#8221; and provide below:</li>
</ol>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Field Name</th><th>Value to Provide</th><th>Why We Give This</th></tr></thead><tbody><tr><td><strong>Table name</strong></td><td>Customer Requests</td><td>This is the Dataverse table where data will be stored</td></tr><tr><td><strong>Request ID</strong></td><td><code>RequestID</code> (dynamic from SharePoint)</td><td>To uniquely identify each request and avoid duplicates</td></tr><tr><td><strong>Customer Name</strong></td><td><code>CustomerName</code></td><td>Stores the name of the customer from SharePoint</td></tr><tr><td><strong>Request Details</strong></td><td><code>RequestDetails</code></td><td>Stores full description/details of the request</td></tr><tr><td><strong>Request Title</strong></td><td><code>RequestTitle</code></td><td>Stores the short title/subject of the request</td></tr><tr><td><strong>Status</strong></td><td>if(&#8230;) expression</td><td>Converts SharePoint text status into Dataverse numeric value</td></tr></tbody></table></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f7f8f8" data-has-transparency="false" style="--dominant-color: #f7f8f8;" loading="lazy" decoding="async" width="985" height="682" sizes="(max-width: 985px) 100vw, 985px" src="https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-to-Dataverse-for-Teams-with-Power-Automate.avif" alt="Import SharePoint to Dataverse for Teams with Power Automate" class="wp-image-132783 not-transparent" title="Import SharePoint to Dataverse for Teams with Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-to-Dataverse-for-Teams-with-Power-Automate.avif 985w, https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-to-Dataverse-for-Teams-with-Power-Automate-300x208.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Import-SharePoint-to-Dataverse-for-Teams-with-Power-Automate-768x532.avif 768w" /></figure></div>


<ol start="5" class="wp-block-list">
<li>Then add <a href="https://www.spguides.com/get-dataverse-created-by-in-power-automate/">Get attachments</a> for the current SharePoint item.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f4f5f6" data-has-transparency="false" style="--dominant-color: #f4f5f6;" loading="lazy" decoding="async" width="992" height="386" sizes="(max-width: 992px) 100vw, 992px" src="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-lists-to-Dataverse-tables-data-migration.avif" alt="SharePoint lists to Dataverse tables data migration" class="wp-image-132784 not-transparent" title="SharePoint lists to Dataverse tables data migration" srcset="https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-lists-to-Dataverse-tables-data-migration.avif 992w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-lists-to-Dataverse-tables-data-migration-300x117.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/SharePoint-lists-to-Dataverse-tables-data-migration-768x299.avif 768w" /></figure></div>


<ol start="6" class="wp-block-list">
<li>For each attachment: Get the attachment content, then create a note/annotation in Dataverse linked to the new record.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f5f5f5" data-has-transparency="false" style="--dominant-color: #f5f5f5;" loading="lazy" decoding="async" width="1015" height="849" sizes="(max-width: 1015px) 100vw, 1015px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Autoamte.avif" alt="How to Migrate SharePoint Online List to Dataverse using Power Autoamte" class="wp-image-132785 not-transparent" title="How to Migrate SharePoint Online List to Dataverse using Power Autoamte" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Autoamte.avif 1015w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Autoamte-300x251.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Migrate-SharePoint-Online-List-to-Dataverse-using-Power-Autoamte-768x642.avif 768w" /></figure></div>


<p><strong>Handling the 5,000+ item scenario:</strong>&nbsp;If your list has more than 5,000 items, use a Do Until loop with a skip index variable. Start at 0, pull 100 items at a time, process them, increment the skip counter by 100, and loop until you&#8217;ve processed everything.</p>



<p><strong>Handling attachments specifically:</strong></p>



<pre class="wp-block-preformatted"><code>Get attachments (SharePoint) → item ID from current loop item<br>Apply to each attachment:<br>  → Get attachment content (SharePoint)<br>  → Create annotation (Dataverse)<br>     - ObjectId: [Dataverse record ID you just created]<br>     - ObjectTypeCode: [your table's type code]<br>     - FileName: [attachment name]<br>     - DocumentBody: [base64 encoded content]<br>     - MimeType: [file type]</code></pre>



<p>This method takes more time to build, but it&#8217;s the most complete migration you can do. Everything comes over — data, files, and all.</p>



<h2 class="wp-block-heading" id="handling-the-tricky-column-types">Handling the Tricky Column Types</h2>



<p>Let me call out the columns that almost always cause problems during migration, and what to do about them.</p>



<p><strong>Person/Group fields</strong><br>SharePoint returns these as complex objects with DisplayName, Email, LookupId, and more. In Dataverse, you&#8217;ll typically have a Lookup to the&nbsp;<code>systemuser</code>&nbsp;table. The cleanest approach is to extract the email from the SharePoint output and then use a lookup in Power Query or Power Automate to find the matching Dataverse user record by email.</p>



<p><strong>Lookup columns</strong><br>In SharePoint, a lookup column points to another list. In Dataverse, the equivalent is a relationship between two tables. Before migrating, create the related Dataverse table first and migrate that data. Then, when migrating the parent list, use the&nbsp;<code>LookupId</code>&nbsp;from SharePoint to find the corresponding Dataverse row ID and set the relationship.</p>



<p><strong>Multi-value lookup / multi-select choice</strong><br>These are the messiest. A &#8220;multi-select people&#8221; or &#8220;multi-lookup&#8221; column in SharePoint doesn&#8217;t have a direct equivalent in Dataverse. You have a couple of options: flatten the values into a multi-select choice column, or create a proper many-to-many relationship table in Dataverse. The second option is more work upfront but much cleaner long-term.</p>



<p><strong>Managed Metadata (Taxonomy fields)</strong><br>Dataflows don&#8217;t handle these well. Your best bet is to treat them as text values during migration and then apply proper classifications in Dataverse afterward.</p>



<p><strong>Attachments</strong><br>As covered above, use Power Automate for these. Neither the &#8220;Create with SharePoint List&#8221; method nor Dataflows will migrate file attachments.</p>



<h2 class="wp-block-heading" id="after-the-migration-things-to-check">After the Migration: Things to Check</h2>



<p>Once your data is in Dataverse, don&#8217;t just assume everything is fine. Here&#8217;s my post-migration checklist:</p>



<ul class="wp-block-list">
<li><strong>Verify row counts</strong>&nbsp;— open your Dataverse table and count the rows. Compare with the SharePoint list item count.</li>



<li><strong>Check key columns</strong>&nbsp;— spot-check 10–20 records manually. Confirm that text, dates, choices, and lookup values all came through correctly.</li>



<li><strong>Test lookup/relationship columns</strong>&nbsp;— especially if you migrated related tables. Make sure the relationships are intact.</li>



<li><strong>Set up security roles</strong>&nbsp;— in Dataverse, access is controlled through security roles, not SharePoint permissions. Create or update roles to give the right users access to your table.</li>



<li><strong>Update your Power Apps</strong>&nbsp;— if you had a <a href="https://www.spguides.com/create-a-canvas-app-from-sharepoint-list-in-power-apps/">canvas app</a> pointing at the SharePoint list, you&#8217;ll need to update the data source. In Power Apps Studio, remove the SharePoint connection and add the Dataverse table as the new data source. Then re-map your controls.</li>



<li><strong>Archive or retire the SharePoint list</strong>&nbsp;— once you&#8217;ve confirmed the migration is good, consider making the SharePoint list read-only or archiving it. Don&#8217;t delete it immediately — keep it around for a few weeks as a backup.</li>
</ul>



<h2 class="wp-block-heading" id="which-method-should-you-use">Which Method Should You Use?</h2>



<p>Here&#8217;s a quick summary to help you decide:</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Your Situation</th><th>Best Method</th></tr></thead><tbody><tr><td>Quick migration, new table, small/medium list</td><td>Create with SharePoint List (Method 1)</td></tr><tr><td>Large list, complex columns, loading to existing table</td><td>Dataflows (Method 2)</td></tr><tr><td>List has attachments / file uploads</td><td>Power Automate (Method 3)</td></tr><tr><td>Mix of all the above</td><td>Dataflows for data + Power Automate for attachments</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="common-mistakes-to-avoid">Common Mistakes to Avoid</h2>



<p>I&#8217;ve seen these trip people up repeatedly:</p>



<ul class="wp-block-list">
<li><strong>Skipping the schema review</strong>&nbsp;— always check your column types before publishing. A date that comes in as text won&#8217;t cause an error, but it&#8217;ll cause pain later.</li>



<li><strong>Not creating related tables first</strong>&nbsp;— if you have lookup relationships, migrate the referenced tables before the parent table. Otherwise, your lookup mappings will fail.</li>



<li><strong>Ignoring duplicate detection</strong>&nbsp;— Dataverse has duplicate detection rules, but they don&#8217;t&nbsp;<em>prevent</em>&nbsp;duplicates; they only flag them. If you run a dataflow twice by accident, you could end up with doubled data. Use unique alternate keys on your table to guard against this.</li>



<li><strong>Forgetting about security roles</strong>&nbsp;— after migration, users who had access to the SharePoint list won&#8217;t automatically have access to the Dataverse table. You need to explicitly assign security roles.</li>



<li><strong>Migrating everything at once</strong>&nbsp;— for large, complex lists, migrate in phases. Start with the simpler columns, validate, then add the complex ones.</li>
</ul>



<p>You may like the following Power Automate tutorials:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/add-rows-to-excel-in-power-automate/">Add Rows to Excel in Power Automate</a></li>



<li><a href="https://www.spguides.com/check-site-permissions-in-sharepoint-online/">Check Site Permissions in SharePoint Online</a></li>



<li><a href="https://www.spguides.com/create-an-html-table-in-power-automate/">Create an HTML Table in Power Automate</a></li>



<li><a href="https://www.spguides.com/expense-reimbursement-and-approval-using-power-automate/">Expense Reimbursement and Approval using Power Automate</a></li>



<li><a href="https://www.spguides.com/create-calendar-events-from-a-sharepoint-list-using-power-automate/">Create Calendar Events from a SharePoint list using Power Automate</a></li>
</ul>



<p>Migrating from SharePoint to Dataverse is one of those things that sounds intimidating but is very manageable once you understand the options. Start with Method 1 for a quick proof-of-concept. Use Dataflows when you need more control. And bring in Power Automate when attachments or complex transformations are involved.</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>2 Best Ways to Create a Folder in SharePoint From Power Apps</title>
		<link>https://www.spguides.com/create-a-folder-in-sharepoint-from-power-apps/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Wed, 25 Mar 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Create a Folder in SharePoint from Power Apps]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=132558</guid>

					<description><![CDATA[If you&#8217;ve ever built a Power Apps canvas app that connects to a SharePoint document library, you&#8217;ve probably hit this question at some point —&#160;how do I create a folder in SharePoint directly from my app? It&#8217;s a really common requirement. Think about it: you&#8217;re building an app where users submit a project, and you ... <a title="2 Best Ways to Create a Folder in SharePoint From Power Apps" class="read-more" href="https://www.spguides.com/create-a-folder-in-sharepoint-from-power-apps/" aria-label="Read more about 2 Best Ways to Create a Folder in SharePoint From Power Apps">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve ever built a <a href="https://www.spguides.com/create-a-canvas-app-from-sharepoint-list-in-power-apps/">Power Apps canvas app</a> that connects to a SharePoint document library, you&#8217;ve probably hit this question at some point —&nbsp;how do I create a folder in SharePoint directly from my app?</p>



<p>It&#8217;s a really common requirement. Think about it: you&#8217;re building an app where users submit a project, and you want a folder automatically created in SharePoint to store all the related files. Or maybe you want users to type a folder name in a text box and click a button to create it on the spot. Super practical stuff.</p>



<p>The good news? There are three solid ways to do this. I&#8217;ll walk you through each one, with step-by-step instructions and real examples, so you can pick the approach that fits your use case best.</p>



<h2 class="wp-block-heading" id="what-youll-need-before-starting">What You&#8217;ll Need Before Starting</h2>



<p>Before we jump in, make sure you have:</p>



<ul class="wp-block-list">
<li>A Power Apps canvas app (or create a new one from scratch)</li>



<li>A <a href="https://www.spguides.com/sharepoint-document-library-best-practices/">SharePoint document library</a> (not a SharePoint list — folders live in document libraries)</li>



<li>Appropriate permissions on the SharePoint site (at least Contribute)</li>



<li>A <a href="https://www.microsoft.com/en-us/power-platform/products/power-automate/pricing" target="_blank" rel="noopener">Power Automate license</a></li>
</ul>



<p>For this example, I have a SharePoint Document library called PDF Reports:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f8f8f8" data-has-transparency="false" style="--dominant-color: #f8f8f8;" loading="lazy" decoding="async" width="1024" height="247" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-to-create-a-folder-in-SharePoint-Library-from-Powerapps-1024x247.avif" alt="How to create a folder in SharePoint Library from Powerapps" class="wp-image-132599 not-transparent" title="How to create a folder in SharePoint Library from Powerapps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-to-create-a-folder-in-SharePoint-Library-from-Powerapps-1024x247.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-create-a-folder-in-SharePoint-Library-from-Powerapps-300x72.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-create-a-folder-in-SharePoint-Library-from-Powerapps-768x185.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-create-a-folder-in-SharePoint-Library-from-Powerapps.avif 1299w" /></figure></div>


<h2 class="wp-block-heading">Create a Folder in SharePoint From Power Apps</h2>



<p>Learn how to create folders in SharePoint directly from Power Apps using two simple and effective methods based on your use case and complexity.</p>



<h3 class="wp-block-heading" id="method-2-trigger-a-power-automate-flow-from-a-butt">Method 1: Trigger a Power Automate Flow from a Button (Recommended for Most Cases) in Power Apps</h3>



<p>This is the most popular method, and honestly, the most flexible one. The idea is simple — you <a href="https://www.spguides.com/power-automate-approval-workflow-using-microsoft-forms/">build a Power Automate flow</a> that creates the folder in SharePoint, and then call that flow from a button in your Power Apps app. You can pass the folder name (and even a subfolder path) as input from the app.</p>



<p>This approach gives you more control, especially when you need to:</p>



<ul class="wp-block-list">
<li>Create nested folders or folder structures</li>



<li>Check if a folder already exists before creating it</li>



<li>Handle errors gracefully</li>



<li>Return the folder path back to your app after creation</li>
</ul>



<h4 class="wp-block-heading" id="step-1-create-the-power-automate-flow">Step 1: Create the Power Automate Flow</h4>



<ol class="wp-block-list">
<li>Go to&nbsp;<a href="https://flow.microsoft.com/" target="_blank" rel="noreferrer noopener">flow.microsoft.com</a>&nbsp;and click&nbsp;<strong>+ New flow &gt; Instant cloud flow</strong></li>



<li>Name your flow (e.g., &#8220;CreateSharePointFolder&#8221;)</li>



<li>Select&nbsp;<strong>Power Apps (V2)</strong>&nbsp;as the trigger and click&nbsp;<strong>Create</strong></li>
</ol>



<h4 class="wp-block-heading" id="step-2-add-an-input-parameter">Step 2: Add an Input Parameter</h4>



<p>In the Power Apps (V2) trigger:</p>



<ul class="wp-block-list">
<li>Click&nbsp;<strong>Add an input</strong></li>



<li>Choose&nbsp;<strong>Text</strong></li>



<li>Name it&nbsp;<code>FolderName</code></li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f9f8f9" data-has-transparency="false" style="--dominant-color: #f9f8f9;" loading="lazy" decoding="async" width="1024" height="262" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-1024x262.avif" alt="How To Trigger A Power Automate Flow From PowerApps" class="wp-image-132608 not-transparent" title="How To Trigger A Power Automate Flow From PowerApps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-1024x262.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-300x77.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-768x197.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps.avif 1046w" /></figure></div>


<p>This is how your Power Apps app will pass the folder name to the flow.</p>



<h4 class="wp-block-heading" id="step-3-add-the-create-new-folder-action">Step 3: Add the &#8220;Create New Folder&#8221; Action</h4>



<ol class="wp-block-list">
<li>Click&nbsp;<strong>+ New step</strong></li>



<li>Search for&nbsp;<strong>SharePoint</strong></li>



<li>Select&nbsp;<a href="https://www.spguides.com/sharepoint-create-folder/">Create new folder</a></li>



<li>Fill in the fields:
<ul class="wp-block-list">
<li><strong>Site Address</strong>: Select your SharePoint site</li>



<li><strong>List or Library</strong>: Select your document library (e.g., Documents)</li>



<li><strong>Folder Path</strong>: Click the&nbsp;<strong>Dynamic content</strong>&nbsp;panel and select&nbsp;<code>FolderName</code>&nbsp;(the input from Power Apps)</li>
</ul>
</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f8f8f9" data-has-transparency="false" style="--dominant-color: #f8f8f9;" loading="lazy" decoding="async" width="1024" height="390" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Powerapps-button-trigger-through-power-automate-1024x390.avif" alt="Powerapps button trigger through power automate" class="wp-image-132611 not-transparent" title="Powerapps button trigger through power automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Powerapps-button-trigger-through-power-automate-1024x390.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Powerapps-button-trigger-through-power-automate-300x114.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Powerapps-button-trigger-through-power-automate-768x293.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Powerapps-button-trigger-through-power-automate.avif 1060w" /></figure></div>


<h4 class="wp-block-heading" id="step-4-add-a-respond-to-a-powerapp-or-flow-action">Step 4: Add a &#8220;Respond to a PowerApp or flow&#8221; Action (Optional but Useful)</h4>



<p>If you want to confirm the folder was created or return the folder path back to Power Apps:</p>



<ol class="wp-block-list">
<li>Add a&nbsp;<strong>Respond to a PowerApp or flow</strong>&nbsp;action at the end</li>



<li>Add an output — for example, a text field called&nbsp;<code>FolderPath</code></li>



<li>Set its value to the&nbsp;<strong>Folder Path</strong>&nbsp;output from the Create new folder action (available in dynamic content)</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f8f8f9" data-has-transparency="false" style="--dominant-color: #f8f8f9;" loading="lazy" decoding="async" width="1019" height="344" sizes="(max-width: 1019px) 100vw, 1019px" src="https://www.spguides.com/wp-content/uploads/2026/03/Call-Power-Automate-flows-from-Power-Apps-components.avif" alt="Call Power Automate flows from Power Apps components" class="wp-image-132612 not-transparent" title="Call Power Automate flows from Power Apps components" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Call-Power-Automate-flows-from-Power-Apps-components.avif 1019w, https://www.spguides.com/wp-content/uploads/2026/03/Call-Power-Automate-flows-from-Power-Apps-components-300x101.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Call-Power-Automate-flows-from-Power-Apps-components-768x259.avif 768w" /></figure></div>


<p>Click&nbsp;<strong>Save,</strong>&nbsp;and you&#8217;re done with the flow.</p>



<h4 class="wp-block-heading" id="step-5-call-the-flow-from-power-apps">Step 5: Call the Flow from Power Apps</h4>



<p>Back in your canvas app:</p>



<ol class="wp-block-list">
<li>Insert a&nbsp;<strong>Text input</strong>&nbsp;(<code>txtFolderName</code>) and a&nbsp;<strong>Button</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="eff2f8" data-has-transparency="false" style="--dominant-color: #eff2f8;" loading="lazy" decoding="async" width="409" height="222" sizes="(max-width: 409px) 100vw, 409px" src="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps.avif" alt=" Create a Folder in SharePoint library from Power Apps" class="wp-image-132606 not-transparent" title="Create a Folder in SharePoint library from Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps.avif 409w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps-300x163.avif 300w" /></figure></div>


<ol start="2" class="wp-block-list">
<li> Click the three dots (&#8230;)&nbsp;<strong>-&gt; Power Automate</strong>&nbsp;in the toolbar</li>



<li>Select your newly created flow from the list</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f2eeee" data-has-transparency="false" style="--dominant-color: #f2eeee;" loading="lazy" decoding="async" width="415" height="495" sizes="(max-width: 415px) 100vw, 415px" src="https://www.spguides.com/wp-content/uploads/2026/03/Trigger-a-Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps.avif" alt="Trigger a Power Automate Flow from a Button to create folder in library using Power Apps" class="wp-image-132614 not-transparent" title="Trigger a Power Automate Flow from a Button to create folder in library using Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Trigger-a-Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps.avif 415w, https://www.spguides.com/wp-content/uploads/2026/03/Trigger-a-Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps-252x300.avif 252w" /></figure></div>


<ol start="4" class="wp-block-list">
<li>In the button&#8217;s&nbsp;<a href="https://www.spguides.com/power-apps-gallery-onselect/">OnSelect</a>&nbsp;property, the formula will look like:</li>
</ol>



<pre class="wp-block-preformatted">CreateSharePointFolder.Run(txtFolderName.Text)</pre>



<p>If you set up the response action and want to capture the returned folder path:</p>



<pre class="wp-block-preformatted">Set(<br>    varFolderPath,<br>    CreateSharePointFolder.Run(txtFolderName.Text).folderpath<br>)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f3f5f5" data-has-transparency="false" style="--dominant-color: #f3f5f5;" loading="lazy" decoding="async" width="813" height="389" sizes="(max-width: 813px) 100vw, 813px" src="https://www.spguides.com/wp-content/uploads/2026/03/Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps.avif" alt="Power Automate Flow from a Button to create folder in library using Power Apps" class="wp-image-132615 not-transparent" title="Power Automate Flow from a Button to create folder in library using Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps.avif 813w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps-300x144.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Automate-Flow-from-a-Button-to-create-folder-in-library-using-Power-Apps-768x367.avif 768w" /></figure></div>


<h4 class="wp-block-heading" id="step-6-test-it">Step 6: Test It</h4>



<p>Run the app, type a folder name, click the button, and check SharePoint. Done.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f5f6f8" data-has-transparency="false" style="--dominant-color: #f5f6f8;" loading="lazy" decoding="async" width="1024" height="199" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate-1024x199.avif" alt="Create a Folder in SharePoint from Power Apps uisng power Automate" class="wp-image-132617 not-transparent" title="Create a Folder in SharePoint from Power Apps uisng power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate-1024x199.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate-300x58.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate-768x149.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate-1536x299.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-uisng-power-Automate.avif 1754w" /></figure></div>


<p><strong>Want to create a subfolder?</strong>&nbsp;In the&nbsp;<strong>Folder Path</strong>&nbsp;field of the flow, just combine the parent folder and the input name:</p>



<pre class="wp-block-preformatted">/Documents/ParentFolder/FolderName</pre>



<p>Or dynamically in the flow, use an expression like:</p>



<pre class="wp-block-preformatted">concat('/Shared Documents/', triggerBody()['text'])</pre>



<p><strong>When to use this method:</strong>&nbsp;For most real-world apps. It&#8217;s reliable, gives you error handling options, and works great for dynamic folder names, subfolders, and confirmation responses.</p>



<h3 class="wp-block-heading" id="method-3-create-a-folder-using-the-microsoft-graph">Method 2: Create a Folder Using REST API via Power Automate (Advanced &amp; Flexible)</h3>



<p>This is the method I use when I need <strong>full control</strong> over folder creation.</p>



<p>Instead of relying on the standard SharePoint action, you directly call the Microsoft Graph API using Microsoft Power Automate.</p>



<p>This approach is perfect when you need more than just basic folder creation.</p>



<p>You can:</p>



<ul class="wp-block-list">
<li>Create folders anywhere (SharePoint, <a href="https://www.spguides.com/find-someone-on-microsoft-teams/">Teams</a>, OneDrive)</li>



<li>Control what happens if the folder already exists (rename, replace, fail)</li>



<li>Build dynamic folder paths</li>



<li>Handle complex scenarios cleanly</li>
</ul>



<p>This approach is less common but works when you want everything to happen within Power Apps, with no external flow dependencies.</p>



<h4 class="wp-block-heading" id="step-1-add-the-office365groups-connector">Step 1: Create the Power Automate Flow</h4>



<ol class="wp-block-list">
<li>Go to <strong>flow.microsoft.com</strong> </li>



<li>Click <strong>+ Create → </strong><a href="https://www.spguides.com/merge-pdf-files-in-power-automate/">Instant cloud flow</a> </li>



<li>Name your flow (e.g., CreateFolderRestAPI) </li>



<li>Select <strong>Power Apps (V2)</strong> as the trigger. Click <strong>Create</strong></li>
</ol>



<h4 class="wp-block-heading" id="step-2-use-the-httprequest-function-in-onselect">Step 2: Add Input Parameters</h4>



<ul class="wp-block-list">
<li>In the <strong>Power Apps (V2)</strong> trigger:</li>



<li>Click <strong>Add an input</strong></li>



<li>Choose <strong>Text</strong></li>



<li>Name it: FolderName</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f9f8f9" data-has-transparency="false" style="--dominant-color: #f9f8f9;" loading="lazy" decoding="async" width="1024" height="262" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-1024x262.avif" alt="How To Trigger A Power Automate Flow From PowerApps" class="wp-image-132608 not-transparent" title="How To Trigger A Power Automate Flow From PowerApps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-1024x262.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-300x77.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps-768x197.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-To-Trigger-A-Power-Automate-Flow-From-PowerApps.avif 1046w" /></figure></div>


<h4 class="wp-block-heading">Step 3: Add “Send an HTTP request to SharePoint”</h4>



<p>Click <strong>+ New step</strong> and Search: <a href="https://www.spguides.com/remove-user-from-sharepoint-group-power-automate/">Send an HTTP request to SharePoint</a></p>



<ol class="wp-block-list">
<li>Site Address: Select your SharePoint site</li>



<li>Method: POST</li>



<li>URI: <code>_api/web/folders</code></li>



<li>Headers: </li>
</ol>



<pre class="wp-block-code"><code>{
  "Accept": "application/json;odata=verbose",
  "Content-Type": "application/json;odata=verbose"
}</code></pre>



<ol start="5" class="wp-block-list">
<li>Body:</li>
</ol>



<pre class="wp-block-preformatted">{<br>  "__metadata": {<br>    "type": "SP.Folder"<br>  },<br>  "ServerRelativeUrl": "/sites/dms-quality-compliance/PDFReports/@{triggerBody()?['text']}"<br>}</pre>



<p>Make sure you replace the placeholders with your actual values:</p>



<ul class="wp-block-list">
<li><strong>PDFReports</strong> → your document library name</li>



<li><strong>dms-quality-compliance</strong> → your SharePoint site name</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f7f8f8" data-has-transparency="false" style="--dominant-color: #f7f8f8;" loading="lazy" decoding="async" width="1043" height="796" sizes="(max-width: 1043px) 100vw, 1043px" src="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Create-Folder-Using-REST-API-via-Power-Automate.avif" alt="Power Apps Create Folder Using REST API via Power Automate" class="wp-image-132631 not-transparent" title="Power Apps Create Folder Using REST API via Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Create-Folder-Using-REST-API-via-Power-Automate.avif 1043w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Create-Folder-Using-REST-API-via-Power-Automate-300x229.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Create-Folder-Using-REST-API-via-Power-Automate-1024x781.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Create-Folder-Using-REST-API-via-Power-Automate-768x586.avif 768w" /></figure></div>


<h4 class="wp-block-heading" id="step-5-call-the-flow-from-power-apps">Step 4: Call the Flow from Power Apps</h4>



<p>Back in your canvas app:</p>



<ol class="wp-block-list">
<li>Insert a&nbsp;<strong>Text input</strong>&nbsp;(<code>txtFolderName</code>) and a&nbsp;<strong>Button</strong></li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="eff2f8" data-has-transparency="false" style="--dominant-color: #eff2f8;" loading="lazy" decoding="async" width="409" height="222" sizes="(max-width: 409px) 100vw, 409px" src="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps.avif" alt=" Create a Folder in SharePoint library from Power Apps" class="wp-image-132606 not-transparent" title="Create a Folder in SharePoint library from Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps.avif 409w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-library-from-Power-Apps-300x163.avif 300w" /></figure></div>


<ol start="2" class="wp-block-list">
<li> Click the three dots (&#8230;)&nbsp;<strong>-&gt; Power Automate</strong>&nbsp;in the toolbar</li>



<li>Select your newly created flow from the list</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f2f0f1" data-has-transparency="false" style="--dominant-color: #f2f0f1;" loading="lazy" decoding="async" width="415" height="369" sizes="(max-width: 415px) 100vw, 415px" src="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-with-Power-Automate.avif" alt=" Create a Folder in SharePoint from Power Apps with Power Automate" class="wp-image-132630 not-transparent" title="Create a Folder in SharePoint from Power Apps with Power Automate" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-with-Power-Automate.avif 415w, https://www.spguides.com/wp-content/uploads/2026/03/Create-a-Folder-in-SharePoint-from-Power-Apps-with-Power-Automate-300x267.avif 300w" /></figure></div>


<ol start="4" class="wp-block-list">
<li>In the button&#8217;s&nbsp;<strong>OnSelect</strong>&nbsp;property, the formula will look like:</li>
</ol>



<pre class="wp-block-preformatted">CreateFolderRestAPI.Run(txtFolderName.Text)</pre>



<h4 class="wp-block-heading" id="step-6-test-it">Step 6: Test It</h4>



<p>Run the app, type a folder name, click the button, and check SharePoint. Done.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img data-dominant-color="f4f5f6" data-has-transparency="false" loading="lazy" decoding="async" width="1024" height="212" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps-1024x212.avif" alt="How to Create a Folder in SharePoint from Power Apps" class="wp-image-132632 not-transparent" style="--dominant-color: #f4f5f6; width:934px;height:auto" title="How to Create a Folder in SharePoint from Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps-1024x212.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps-300x62.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps-768x159.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps-1536x318.avif 1536w, https://www.spguides.com/wp-content/uploads/2026/03/How-to-Create-a-Folder-in-SharePoint-from-Power-Apps.avif 1709w" /></figure></div>


<p><strong>Important:</strong>&nbsp;This method uses the <a href="https://www.spguides.com/sharepoint-rest-api/">SharePoint REST API</a> through Microsoft Power Automate, so the account running the flow must have proper permissions on the Microsoft SharePoint site and document library. Even if your setup is correct, you may see errors like <em>Access Denied</em> if the connection used in the flow does not have access. Also, make sure the <strong>ServerRelativeUrl</strong> starts with the correct site path (for example, /sites/dms-quality-compliance/&#8230;) and uses the exact library name like <code>PDFReports</code>.</p>



<p><strong>When to use this method:</strong>&nbsp;Use this method when you need more flexibility than the standard SharePoint action, such as creating folders with dynamic paths or handling custom scenarios. It’s a good middle-ground option when you want more control, but still want to stay within SharePoint without using the Microsoft Graph API.</p>



<h2 class="wp-block-heading" id="how-to-create-a-folder-structure-multiple-nested-f">How to Create a Folder Structure (Multiple Nested Folders)</h2>



<p>Sometimes you don&#8217;t just need one folder — you need a whole structure. For example, when a new project is submitted, you want to auto-create:</p>



<pre class="wp-block-preformatted">/Projects<br>   /ProjectName<br>      /Documents<br>      /Images<br>      /Reports</pre>



<p>The cleanest way to do this is with&nbsp;<strong>Method 2</strong>&nbsp;(Power Automate flow), and you just add multiple &#8220;Create new folder&#8221; actions — one for each folder in your structure.</p>



<p>In Power Automate:</p>



<ol class="wp-block-list">
<li>First action: Create folder&nbsp;/Projects/ProjectName</li>



<li>Second action: Create folder&nbsp;/Projects/ProjectName/Documents</li>



<li>Third action: Create folder&nbsp;/Projects/ProjectName/Images</li>



<li>Fourth action: Create folder&nbsp;/Projects/ProjectName/Reports</li>
</ol>



<p>Just make sure each step runs only after the previous one completes (Power Automate does this sequentially by default in a standard flow).</p>



<p>If the folder names are coming from form fields in your app, pass each one as a separate input parameter in the Power Apps (V2) trigger.</p>



<h2 class="wp-block-heading" id="how-to-check-if-a-folder-already-exists-before-cre">Check If a SharePoint Folder Already Exists Before Creating It Using Power Automate</h2>



<p>This is something people forget about, and it causes errors when users try to create a folder that&#8217;s already there.</p>



<p>In Power Automate, here&#8217;s the pattern I use:</p>



<ol class="wp-block-list">
<li>Add a&nbsp;<a href="https://www.spguides.com/power-automate-copy-files/">Get files (properties only)</a>&nbsp;action and filter by folder path</li>



<li>Add a&nbsp;<strong>Condition</strong>&nbsp;action: check if the output is empty (no results = folder doesn&#8217;t exist)</li>



<li>If true → run the&nbsp;<strong>Create new folder</strong>&nbsp;action</li>



<li>If false → skip creation or show a message</li>
</ol>



<p>You can send a message back to Power Apps using the&nbsp;<strong>Respond to a PowerApp or flow</strong>&nbsp;action — something like&nbsp;&#8220;FolderAlreadyExists&#8221;&nbsp;— and then display a notification in the app using&nbsp;Notify(&#8220;That folder already exists!&#8221;, NotificationType.Warning).</p>



<h2 class="wp-block-heading" id="quick-comparison-of-all-three-methods">Quick Comparison of All Three Methods</h2>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Method</th><th>Requires Flow</th><th>Difficulty</th><th>Best For</th></tr></thead><tbody><tr><td>Patch with IsFolder</td><td>No</td><td>Easy</td><td>Simple root-level folder creation</td></tr><tr><td>Power Automate Flow</td><td>Yes</td><td>Medium</td><td>Dynamic names, subfolders, error handling</td></tr><tr><td>Graph API via HttpRequest</td><td>No</td><td>Advanced</td><td>Full API control, no flow overhead</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="common-errors-and-fixes">Common Errors and Fixes</h2>



<ul class="wp-block-list">
<li><strong>&#8220;Folder already exists&#8221; error in the flow</strong>: Use the check-before-create pattern described above, or set the conflict behavior to&nbsp;<code>rename</code>&nbsp;in the API call</li>



<li><strong>Blank folder name creates an error</strong>: Add a simple&nbsp;<code>If(IsBlank(txtFolderName.Text), Notify("Please enter a folder name"), ...)</code>&nbsp;before running the flow</li>



<li><strong>Flow not showing up in Power Apps</strong>: Make sure the flow is saved and turned on. Also confirm that the trigger is&nbsp;<strong>Power Apps (V2)</strong>, not a different trigger type</li>



<li><strong>Patch method not working</strong>: Double-check that you&#8217;re connecting to a&nbsp;<strong>document library</strong>, not a SharePoint list. Lists handle folders differently</li>
</ul>



<h2 class="wp-block-heading" id="wrapping-up">Conclusion</h2>



<p>My personal recommendation for most scenarios is&nbsp;<strong>Method </strong>1&nbsp;— the Power Automate flow approach. It&#8217;s the most reliable, it handles errors well, and it&#8217;s easy to extend later (like adding subfolders or sending an email notification when the folder is created).</p>



<p>And if you&#8217;re comfortable with APIs and want maximum control,&nbsp;<strong>Method 2</strong>&nbsp;via Rest API is worth exploring.</p>



<p>Whichever method you pick, the pattern is the same: collect the folder name from the user in the app, pass it to your creation logic, and handle the response gracefully.</p>



<p>Also, you may like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/parse-json-in-power-apps/">Parse JSON in Power Apps [10 Practical Examples]</a></li>



<li><a href="https://www.spguides.com/dataverse-formula-column/">Dataverse Formula Column</a></li>



<li><a href="https://www.spguides.com/migrate-sharepoint-online-list-to-dataverse/">Migrate SharePoint Online List to Dataverse</a></li>



<li><a href="https://www.spguides.com/build-and-deploy-smart-hr-assistant-bot-using-copilot-studio/">Build and Deploy a Smart HR Assistant Bot Using Copilot Studio</a></li>



<li><a href="https://www.spguides.com/powerapps-countrows-function/">Power Apps CountRows Function [Including the Delegation Fix]</a></li>



<li><a href="https://www.spguides.com/power-apps-dropdown-show-only-unique-values/">Power Apps Dropdown Show Only Unique Values</a></li>



<li><a href="https://www.spguides.com/power-apps-first-function/">Power Apps First Function</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>51 Power Apps Interview Questions and Answers For Experienced Developers [8+ Years]</title>
		<link>https://www.spguides.com/power-apps-interview-questions-and-answers-for-experienced-developers/</link>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 11:32:40 +0000</pubDate>
				<category><![CDATA[Microsoft Copilot Studio]]></category>
		<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Power Apps Interview Questions and Answers For Experienced Developers]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=132315</guid>

					<description><![CDATA[If you&#8217;ve been working with Power Apps for 8+ years, you already know the basics inside out. You&#8217;ve built canvas apps, connected SharePoint lists, and used Power Automate. This isn&#8217;t that guide. This is for the conversations where the interviewer leans forward and says,&#160;&#8220;Okay, but how would you handle that at enterprise scale?&#8221; I&#8217;ve put ... <a title="51 Power Apps Interview Questions and Answers For Experienced Developers [8+ Years]" class="read-more" href="https://www.spguides.com/power-apps-interview-questions-and-answers-for-experienced-developers/" aria-label="Read more about 51 Power Apps Interview Questions and Answers For Experienced Developers [8+ Years]">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve been working with Power Apps for 8+ years, you already know the basics inside out. You&#8217;ve built canvas apps, connected <a href="https://www.spguides.com/courses/">SharePoint lists</a>, and used <a href="https://www.spguides.com/power-platform-training-course/">Power Automate</a>. This isn&#8217;t that guide.</p>



<p>This is for the conversations where the interviewer leans forward and says,&nbsp;<em>&#8220;Okay, but how would you handle that at enterprise scale?&#8221;</em></p>



<p>I&#8217;ve put together 35 questions that come up in senior and lead-level Power Apps interviews — the kind that test architecture decisions, ALM maturity, delegation gotchas, PCF, Dataverse modeling, and real governance. These are the ones that separate the people who&#8217;ve just used Power Apps from the people who&#8217;ve&nbsp;<em>owned</em>&nbsp;it.</p>



<p>Let&#8217;s get into it.</p>



<h2 class="wp-block-heading">51 Power Apps Interview Questions and Answers For Experienced Developers</h2>



<p>Let&#8217;s discuss the architecture &amp; design of Power Apps in the <a href="https://www.spguides.com/power-apps-interview-questions/">interview questions and answers</a>.</p>



<h3 class="wp-block-heading">1. How do you decide between a Canvas App and a Model-Driven App for an enterprise requirement?</h3>



<p>This one comes up a lot, and the honest answer is — it depends on your data model.</p>



<p>I go with a <a href="https://www.spguides.com/model-driven-apps-in-power-apps/">Model-Driven App</a> when:</p>



<ul class="wp-block-list">
<li>The solution is heavily data-centric, and I&#8217;m already working within Dataverse</li>



<li>I need built-in views, forms, and business process flows out of the box</li>



<li>Role-based security at the row and column level is a hard requirement</li>



<li>The app is expected to grow with a lot of tables and relationships</li>
</ul>



<p>I go with a <a href="https://www.spguides.com/create-a-canvas-app-from-sharepoint-list-in-power-apps/">Canvas App</a> when:</p>



<ul class="wp-block-list">
<li>The UI needs to be pixel-perfect and highly customized</li>



<li>The data lives in non-Dataverse sources like SharePoint, SQL, or an external API</li>



<li>The team wants a consumer-app-like experience (kiosk screens, offline scenarios, mobile-first)</li>
</ul>



<p>The biggest mistake I&#8217;ve seen is using a Canvas App because &#8220;it&#8217;s more flexible,&#8221; even when the requirement maps perfectly to a Model-Driven App. You end up rebuilding features that Dataverse already provides for free.</p>



<h3 class="wp-block-heading">2. How do you architect a Power Apps solution for thousands of concurrent users?</h3>



<p>A few things I always think about here:</p>



<ul class="wp-block-list">
<li><strong>Data source choice matters most.</strong>&nbsp;SharePoint doesn&#8217;t scale well beyond a few hundred concurrent users. For serious enterprise workloads, Dataverse is the right choice. It handles concurrency, has proper indexing, and supports server-side logic.</li>



<li><strong>Avoid client-heavy formulas.</strong> The more logic you push to the server — via <a href="https://www.spguides.com/dataverse-formula-column/">Dataverse calculated columns</a>, <a href="https://www.spguides.com/power-automate-sequential-approval-flow/">Power Automate flows</a>, or stored procedures — the better the app performs at scale.</li>



<li><strong>Break the app into smaller, purpose-built apps.</strong>&nbsp;One massive canvas app is a maintenance nightmare and loads slowly. I try to keep apps focused on a specific task or persona.</li>



<li><strong>Use named formulas and global variables wisely.</strong>&nbsp;Don&#8217;t reload data on every screen load. Cache what you can with&nbsp;<code>Collect</code>&nbsp;and&nbsp;<code>ClearCollect</code>, but be deliberate about when to refresh.</li>



<li><strong>Environment segregation.</strong>&nbsp;Dev, Test, and Production should be separate environments with proper ALM pipelines.</li>
</ul>



<h3 class="wp-block-heading">3. How do you structure a multi-environment ALM strategy for Power Platform?</h3>



<p>I follow Microsoft&#8217;s recommended pattern:&nbsp;<strong>Development → Test → Production</strong>, all managed through Azure DevOps or GitHub pipelines.</p>



<p>Here&#8217;s how I think about it:</p>



<ul class="wp-block-list">
<li>All development happens in individual <a href="https://www.spguides.com/environment-variables-in-power-platform/">developer environments</a> or a shared dev environment.</li>



<li>Components are packed into&nbsp;<strong>unmanaged solutions</strong>&nbsp;during development.</li>



<li>When promoting to Test or Production, the solution is exported as a&nbsp;<strong>managed solution</strong>. This is non-negotiable for me — managed solutions prevent ad-hoc changes in production.</li>



<li>I use <strong>solution layers</strong> deliberately. If I need to hotfix something in production, I track it and ensure it gets pushed back to the dev branch.</li>



<li>Environment variables and connection references are set up from day one, so the same solution works across environments without manual reconfiguration.</li>
</ul>



<p>One thing a lot of teams miss: the unmanaged layer always sits on top. So if someone makes a direct change in production and you later deploy a managed solution, the unmanaged layer wins. You need to be very disciplined about keeping production clean.</p>



<h3 class="wp-block-heading">4. What is solution layering, and why does it matter in deployments?</h3>



<p>Solution layering is how Power Platform manages <a href="https://www.spguides.com/power-apps-left-navigation-component/">components</a> when multiple solutions touch the same object.</p>



<ul class="wp-block-list">
<li>At the bottom, you have the&nbsp;<strong>system layer</strong>&nbsp;— Microsoft&#8217;s base components.</li>



<li>Above that are&nbsp;<strong>managed layers</strong>&nbsp;— your deployed solutions, stacked in import order. The last one imported wins in case of conflict.</li>



<li>At the very top is the&nbsp;<strong>unmanaged layer</strong>&nbsp;— this always overrides everything else.</li>
</ul>



<p>The problem? If a developer or admin customizes something directly in a production environment (bypassing the ALM pipeline), it creates an unmanaged layer that silently overrides your managed solution changes. You deploy an update, and nothing seems to change — because the unmanaged layer is blocking it.</p>



<p>Best practice: treat production like a read-only environment. All changes go through the pipeline.</p>



<h2 class="wp-block-heading" id="delegation--performance">Delegation &amp; Performance</h2>



<h3 class="wp-block-heading">5. Explain delegation in Canvas Apps and how you handle it with large datasets.</h3>



<p>Delegation is one of those things that trips up even experienced developers if they&#8217;re not intentional about it.</p>



<p>When you write a formula like&nbsp;<code>Filter(MyList, Status = "Active")</code>, Power Apps can either:</p>



<ul class="wp-block-list">
<li><strong>Delegate</strong>&nbsp;it — meaning the filter runs on the server (SharePoint, Dataverse, SQL) and only matching records come back</li>



<li><strong>Process locally</strong>&nbsp;— meaning it downloads records to the app first, then filters them</li>
</ul>



<p>The problem with local processing is the&nbsp;<strong>500-record default limit</strong>&nbsp;(configurable up to 2,000). If your list has 50,000 items and your filter can&#8217;t be delegated, you&#8217;re only filtering against the first 500 or 2,000 records. The rest don&#8217;t exist as far as the app is concerned.</p>



<p>Here&#8217;s how I handle it:</p>



<ul class="wp-block-list">
<li><strong>Design delegation-first.</strong> I check the <a href="https://www.spguides.com/powerapps-countrows-function/">delegation warning</a> (blue underline) before any formula goes to production.</li>



<li><strong>Use delegable functions.</strong>&nbsp;With SharePoint,&nbsp;<code>Filter</code>,&nbsp;<code>Search</code>,&nbsp;<code>Sort</code>, and&nbsp;<code>StartsWith</code>&nbsp;are generally safe. Functions like&nbsp;<code>CountIf</code>,&nbsp;<code>Mid</code>,&nbsp;<code>Len</code>, and complex&nbsp;<code>Or</code>&nbsp;conditions are not.</li>



<li><strong>Offload to Dataverse views.</strong>&nbsp;Server-side views in Dataverse always return correct, complete results.</li>



<li><strong>Set the delegation limit to 1 during development.</strong>&nbsp;This forces non-delegable queries to fail visibly, so you catch issues early.</li>



<li><strong>For unavoidable non-delegable operations</strong>&nbsp;— say, you need to search inside a text field that isn&#8217;t indexed — I&#8217;ll often trigger a Power Automate flow that runs the query server-side and returns paginated results.</li>
</ul>



<h3 class="wp-block-heading">6. What are your go-to performance optimization techniques for Canvas Apps?</h3>



<p>A few things I always check:</p>



<ul class="wp-block-list">
<li><strong>OnStart bloat.</strong>&nbsp;I see apps where&nbsp;<code>OnStart</code>&nbsp;is doing 12&nbsp;<code>ClearCollect</code>&nbsp;calls at load. Users sit on a loading screen for 8 seconds. Move data loading to the screen level (<code>OnVisible</code>) and only load what that screen needs.</li>



<li><strong>Concurrent function.</strong> Use <code><a href="https://www.enjoysharepoint.com/concurrent-function-in-power-apps/" target="_blank" rel="noopener">Concurrent()</a></code> to run multiple data calls in parallel instead of sequentially. This alone can cut load times by 40-60%.</li>



<li><strong>Gallery optimization.</strong>&nbsp;Don&#8217;t put complex formulas directly in gallery controls. Pre-process data into a collection and bind the gallery to that.</li>



<li><strong>Avoid unnecessary&nbsp;<code>If</code>&nbsp;nesting.</strong>&nbsp;Deep conditional trees slow rendering. Use&nbsp;<code>Switch()</code>&nbsp;where appropriate.</li>



<li><strong>Named formulas (App.Formulas).</strong>&nbsp;These compute lazily and only when needed, unlike&nbsp;<code>OnStart</code>&nbsp;which runs everything up front.</li>



<li><strong>Reduce the number of controls.</strong>&nbsp;Each control has a performance cost. Use galleries instead of duplicating controls.</li>



<li><strong>Profile with Monitor.</strong>&nbsp;Power Apps Monitor (formerly called App Checker + Network tracing) shows you exactly which calls are slow and where the bottlenecks are.</li>
</ul>



<h3 class="wp-block-heading">7. How do you deal with SharePoint&#8217;s 5,000-item list view threshold in Power Apps?</h3>



<p>SharePoint enforces a 5,000-item limit on <a href="https://www.spguides.com/sharepoint-list-view/">list views</a>. If a query returns more than that, it can fail or return incomplete data.</p>



<p>In Power Apps with a SharePoint connector:</p>



<ul class="wp-block-list">
<li>The delegation limit caps results at 2,000 (at most), so in a way, you won&#8217;t even reach 5,000 from the app side — but you can still hit issues if your filters aren&#8217;t indexed.</li>



<li>Make sure&nbsp;<strong>columns you filter on are indexed</strong>&nbsp;in the SharePoint list. Go to List Settings → Indexed Columns and add them.</li>



<li>For large lists (100k+ items), I move to <a href="https://www.spguides.com/create-and-use-dataflow-in-dataverse/">Dataverse </a>or use <strong>Azure SQL</strong> with the SQL connector instead. SharePoint is not a database — it&#8217;s a document management system. If you&#8217;re using it as a primary data store for 200,000 records, it&#8217;s time to have a different conversation.</li>
</ul>



<h3 class="wp-block-heading">8. What&#8217;s your approach to offline capability in Canvas Apps?</h3>



<p>Canvas Apps support offline scenarios through&nbsp;<code>SaveData</code>&nbsp;and&nbsp;<code>LoadData</code>&nbsp;functions, which persist collections to local device storage.</p>



<p>Here&#8217;s the pattern I use:</p>



<ul class="wp-block-list">
<li>On app load, check if the device is connected:&nbsp;<code>Connection.Connected</code></li>



<li>If online, load fresh data from the source and save a local copy with&nbsp;<code>SaveData(MyCollection, "LocalCache")</code></li>



<li>If offline, load from local storage with&nbsp;<code>LoadData(MyCollection, "LocalCache", true)</code></li>



<li>For writes, queue changes in a local collection. When connectivity is restored, iterate and patch them back to the source using <a href="https://www.spguides.com/powerapps-forall-function/"><code>ForAll</code> + <code>Patch</code></a></li>
</ul>



<p>The tricky part is conflict resolution. If a record was updated by someone else while the user was offline, you need to decide: last write wins, or notify the user? I usually go with a timestamp check — compare&nbsp;<code>Modified</code>&nbsp;dates and surface the conflict to the user.</p>



<h2 class="wp-block-heading" id="dataverse-deep-dive">Dataverse Deep Dive</h2>



<h3 class="wp-block-heading">9. How does Dataverse&#8217;s security model work at a granular level?</h3>



<p>Dataverse has one of the most sophisticated security models on the platform. It operates at multiple levels:</p>



<ul class="wp-block-list">
<li><strong>Business Units</strong>&nbsp;— The top-level organizational boundary. Users belong to a Business Unit, and records are owned by a user or team within a Business Unit.</li>



<li><strong>Security Roles</strong> — Define what operations (Create, Read, Write, Delete, Append, Append To, Assign, Share) a user can perform on each table. Each operation can be scoped to: User (own records only), Business Unit, Parent: Child Business Unit, or Organization (all records).</li>



<li><strong>Field-Level Security</strong>&nbsp;— Lets you restrict read/write access at the column level. This is done through Field Security Profiles. Really useful for things like salary data or SSNs.</li>



<li><strong>Record Sharing</strong>&nbsp;— You can share individual records with specific users or teams, granting them access beyond what their security role allows.</li>



<li><strong>Hierarchical Security</strong>&nbsp;— A manager can automatically see records owned by their direct reports, based on the position hierarchy.</li>



<li><strong>Column Masking</strong> — A newer feature that masks column values (like a password field) even from users who have read access.</li>
</ul>



<p>One thing I always stress: security roles are additive. If a user has two roles, they get the combined permissions of both. You can&#8217;t use one role to &#8220;subtract&#8221; permissions granted by another.</p>



<h3 class="wp-block-heading">10. Explain virtual tables in Dataverse. When would you use them vs. a custom connector?</h3>



<p>Virtual tables let you surface data from an external source (like an external API, Azure SQL, or a third-party system) directly inside Dataverse — without physically storing the data there. From the app&#8217;s perspective, it looks and behaves like a real Dataverse table.</p>



<p>I&#8217;d use a virtual table when:</p>



<ul class="wp-block-list">
<li>The external data needs to participate in Dataverse relationships or be used in views/forms of Model-Driven Apps</li>



<li>You want to apply Dataverse security roles to the external data</li>



<li>The external source already has an OData-compatible endpoint or you can build a virtual table provider</li>
</ul>



<p>I&#8217;d use a custom connector when:</p>



<ul class="wp-block-list">
<li>I&#8217;m working in a Canvas App and just need to call an API</li>



<li>The integration is action-based (trigger something, get a response) rather than data-browsing-based</li>



<li>The overhead of building a virtual table provider isn&#8217;t justified</li>
</ul>



<p>Virtual tables sound attractive but come with limitations — they don&#8217;t support offline, aggregations on virtual table data are tricky, and performance depends entirely on the external data source.</p>



<h3 class="wp-block-heading">11. How do you design a Dataverse data model for complex relationships?</h3>



<p>A few principles I follow:</p>



<ul class="wp-block-list">
<li><strong>Normalize properly.</strong>&nbsp;Don&#8217;t create flat tables just because it feels easier. Use one-to-many and many-to-many relationships with proper junction tables.</li>



<li><strong>Use polymorphic lookups carefully.</strong>&nbsp;Dataverse supports Customer and Owner lookups (which can point to multiple table types). They&#8217;re powerful but can complicate views and forms.</li>



<li><strong>Elastic tables for high-volume, schema-flexible data.</strong> If you have logs, telemetry, or JSON-like data coming in at high volume, elastic tables (backed by Azure Cosmos DB) are a much better fit than standard <a href="https://www.spguides.com/dataverse-create-table-from-sharepoint-list/">Dataverse tables</a>.</li>



<li><strong>Calculated vs. Rollup vs. Formula columns.</strong>&nbsp;Know when to use each. Calculated columns run on save, rollup columns aggregate child records (on a schedule), and formula columns are real-time but have limitations.</li>



<li><strong>Avoid many-to-many unless necessary.</strong>&nbsp;They add complexity to queries. Often, a well-structured junction table with extra metadata columns is cleaner.</li>
</ul>



<h3 class="wp-block-heading">12. What are elastic tables in Dataverse, and when do you reach for them?</h3>



<p>Elastic tables were introduced to handle scenarios that standard Dataverse tables struggle with — massive volume, variable schema, and time-series data.</p>



<p>Under the hood, they&#8217;re backed by <a href="https://www.spguides.com/the-specified-resource-does-not-exist-azure-blob-storage/">Azure</a> Cosmos DB (NoSQL), which means:</p>



<ul class="wp-block-list">
<li>They can handle millions of records with fast writes</li>



<li>Schema is flexible — different rows can have different columns (stored as JSON)</li>



<li>Time-to-live (TTL) is supported natively, so records can auto-expire</li>
</ul>



<p>I use elastic tables for:</p>



<ul class="wp-block-list">
<li>Audit logs and telemetry</li>



<li>IoT sensor data</li>



<li>Chat history or message threads</li>



<li>Any scenario where you&#8217;re writing thousands of records per minute</li>
</ul>



<p>What they don&#8217;t support: complex Dataverse relationships, rollup fields, and some standard query patterns. So they&#8217;re a specialist tool, not a replacement for regular tables.</p>



<h2 class="wp-block-heading" id="power-apps-component-framework-pcf">Power Apps Component Framework (PCF)</h2>



<h3 class="wp-block-heading">13. Walk me through how you&#8217;d build and deploy a PCF control.</h3>



<p>PCF controls are built using <a href="https://www.spguides.com/typescript-check-if-string-is-number-or-float/">TypeScript </a>(and optionally React) and follow a specific lifecycle. Here&#8217;s the high-level flow:</p>



<ol class="wp-block-list">
<li><strong>Scaffold the project</strong>&nbsp;using the Power Platform CLI:&nbsp;<code>pac pcf init --namespace MyNamespace --name MyControl --template field</code>&nbsp;(or&nbsp;<code>dataset</code>&nbsp;for grid controls)</li>



<li><strong>Implement the control interface</strong>&nbsp;— the key methods are&nbsp;<code>init</code>,&nbsp;<code>updateView</code>,&nbsp;<code>getOutputs</code>, and&nbsp;<code>destroy</code></li>



<li><strong>Build and test locally</strong> using <code>npm start watch</code> — This spins up a test harness in the browser</li>



<li><strong>Package into a solution</strong>: create a Power Platform solution project, add the PCF project, and build it with&nbsp;<code>msbuild /t:build /restore</code></li>



<li><strong>Deploy</strong>&nbsp;by importing the solution into the target environment</li>
</ol>



<p>For Canvas Apps, the environment needs the PCF feature flag enabled by an admin first.</p>



<p>The&nbsp;<code>updateView</code>&nbsp;method is where most logic lives — it fires whenever the control&#8217;s input properties change. Keep it lean and avoid expensive DOM operations there.</p>



<h3 class="wp-block-heading">14. What&#8217;s the difference between a field PCF control and a dataset PCF control?</h3>



<ul class="wp-block-list">
<li><strong>Field control</strong>&nbsp;— Binds to a single column value. You&#8217;re replacing or augmenting how a single field is displayed and edited. Examples: a color picker, a rating slider, a signature pad.</li>



<li><strong>Dataset control</strong> — Binds to a <a href="https://www.spguides.com/power-apps-collection-distinct-filter/">collection of records</a> (like a view or subgrid). You&#8217;re replacing how data is displayed in a list. Examples: a custom Kanban board, a timeline view, a custom calendar.</li>
</ul>



<p>Dataset controls are significantly more complex because you have to handle paging, sorting, filtering, and column metadata yourself through the dataset API. Field controls are simpler to start with if you&#8217;re new to PCF.</p>



<h3 class="wp-block-heading">15. How do PCF controls interact with the Power Apps runtime? What lifecycle methods matter most?</h3>



<p>The PCF runtime calls these methods:</p>



<ul class="wp-block-list">
<li><strong><code>init(context, notifyOutputChanged, state, container)</code></strong>&nbsp;— Called once. Set up your initial DOM structure and event listeners here.&nbsp;<code>notifyOutputChanged</code>&nbsp;is your callback to tell the runtime that an output property has changed.</li>



<li><strong><code>updateView(context)</code></strong>&nbsp;— Called every time the context changes (user interaction, data refresh, property changes). This is your render cycle.</li>



<li><strong><code>getOutputs()</code></strong>&nbsp;— Called by the runtime after&nbsp;<code>notifyOutputChanged</code>&nbsp;fires. Return the updated output property values here.</li>



<li><strong><code>destroy()</code></strong>&nbsp;— Cleanup. Remove event listeners, cancel timers. Not doing this causes memory leaks.</li>
</ul>



<p>The pattern is: user does something → your code calls&nbsp;<code>notifyOutputChanged()</code>&nbsp;→ runtime calls&nbsp;<code>getOutputs()</code>&nbsp;→ updated value flows back to the app.</p>



<h2 class="wp-block-heading" id="power-automate--integration">Power Automate &amp; Integration</h2>



<h3 class="wp-block-heading">16. How do you pass complex objects (arrays, JSON) between Power Apps and Power Automate?</h3>



<p>Power Apps can only pass scalar values (text, number, boolean) directly to a flow — not arrays or objects natively. Here&#8217;s how I work around it:</p>



<ul class="wp-block-list">
<li><strong>Serialize to JSON string.</strong> Use <code><a href="https://www.spguides.com/parse-json-in-power-apps/">JSON(MyCollection)</a></code> in Power Apps to convert a collection to a JSON string, pass it as a text parameter to the flow, then use <code>json()</code> expression in Power Automate to parse it back.</li>



<li><strong>Return complex data from flows.</strong>&nbsp;The flow can return a JSON string, and in Power Apps I use&nbsp;<code>ParseJSON()</code>&nbsp;to work with it. Just be aware that&nbsp;<code>ParseJSON</code>&nbsp;returns an untyped object — you&#8217;ll need explicit type casting.</li>
</ul>



<p>For large payloads, this works fine, but watch out for the 2MB message size limit in Power Apps triggers.</p>



<h3 class="wp-block-heading">17. How do you handle error handling and retry logic in Power Automate flows triggered from Power Apps?</h3>



<p>This is an area where I see many gaps in <a href="https://www.spguides.com/download-power-platform-solutions/">production solutions</a>.</p>



<p>In Power Automate:</p>



<ul class="wp-block-list">
<li>Turn on&nbsp;<strong>&#8220;Configure run after&#8221;</strong>&nbsp;settings. Each action can be configured to run after success, failure, timeout, or skipped states.</li>



<li>Use&nbsp;<strong>Scope</strong>&nbsp;actions to group steps and wrap them in a try-catch pattern: one scope for the main logic, one scope that runs &#8220;after&#8221; the first scope fails.</li>



<li>Use&nbsp;<strong>Compose + terminate</strong>&nbsp;to return structured error information back to Power Apps.</li>
</ul>



<p>In Power Apps:</p>



<ul class="wp-block-list">
<li>Check the <code>Status</code> property returned by the flow. I always design flows to return at a minimum <code>{ "status": "success" | "error", "message": "..." }</code>.</li>



<li>Use&nbsp;<code>IfError()</code>&nbsp;and show a friendly error message rather than crashing silently.</li>
</ul>



<p>Never show Power Automate&#8217;s raw error JSON to end users. Always handle it gracefully.</p>



<h3 class="wp-block-heading">18. When would you use a custom connector vs. an HTTP action in a Power Automate flow?</h3>



<p>I use a&nbsp;<strong>custom connector</strong>&nbsp;when:</p>



<ul class="wp-block-list">
<li>Multiple apps or flows need to talk to the same <a href="https://www.spguides.com/create-sharepoint-site-using-power-apps-power-automate/">external API</a> — having a connector centralizes the authentication and definition</li>



<li>I want the API to be discoverable by other makers in the environment</li>



<li>I want parameter validation and description metadata (makes it easier for others to use)</li>
</ul>



<p>I use an&nbsp;<strong>HTTP action</strong>&nbsp;when:</p>



<ul class="wp-block-list">
<li>It&#8217;s a one-off call that only this flow will ever make</li>



<li>I&#8217;m in a hurry and the connector overhead isn&#8217;t worth it</li>



<li>The API doesn&#8217;t need to be reused or shared</li>
</ul>



<p>Custom connectors support OAuth 2.0, API key, and basic authentication. HTTP actions are more flexible (you can construct headers manually) but less governed.</p>



<h3 class="wp-block-heading">19. How do you implement row-level data security in a Canvas App backed by SharePoint?</h3>



<p>SharePoint supports item-level permissions, but modifying them at the item level is expensive (breaking permission inheritance and creating management overhead) and doesn&#8217;t scale.</p>



<p>Here&#8217;s how I actually handle this:</p>



<ul class="wp-block-list">
<li><strong>Separate lists by audience.</strong> If sales reps should only see their own opportunities, add a <code>OwnerEmail</code> column and filter with <code>Filter(Opportunities, OwnerEmail = User().Email)</code>. Simple and delegable with SharePoint.</li>



<li><strong>Use SharePoint Groups.</strong> Control who has access to the list itself using SharePoint groups. Canvas Apps respect <a href="https://www.spguides.com/sharepoint-permissions-best-practices/">SharePoint list permissions</a> — if a user can&#8217;t read the list, they can&#8217;t get the data.</li>



<li><strong>Power Automate as a secure data layer.</strong>&nbsp;For more complex scenarios, I route all data access through Power Automate flows that run with a service account. The flow applies the business logic for what the user can see and returns only that data. The user&#8217;s credentials never touch the list directly.</li>



<li><strong>Move to Dataverse if security is complex.</strong>&nbsp;If you need row-level security with any sophistication, Dataverse is the right tool. Trying to replicate Dataverse&#8217;s security model inside SharePoint + Canvas App gets messy fast.</li>
</ul>



<h2 class="wp-block-heading" id="governance--enterprise-topics">Governance &amp; Enterprise Topics</h2>



<h3 class="wp-block-heading">20. How do you set up DLP (Data Loss Prevention) policies for an enterprise Power Platform tenant?</h3>



<p>DLP policies let admins control which connectors can be used together in a flow or app. They prevent sensitive data from leaking from a business system to a personal service (like someone connecting a SharePoint list to Gmail).</p>



<p>Here&#8217;s how I approach them:</p>



<ul class="wp-block-list">
<li><strong>Three connector categories:</strong>&nbsp;Business, Non-Business, and Blocked. Connectors in the Business group can only connect to other Business connectors. Non-Business connectors can connect to each other. Blocked connectors can&#8217;t be used at all.</li>



<li><strong>Scope: Tenant-wide vs. Environment-specific.</strong>&nbsp;I set strict tenant-wide policies as a baseline, then create environment-specific overrides for developer environments that need more flexibility.</li>



<li><strong>Block the most common leakage paths first.</strong>&nbsp;I typically block personal email connectors (Gmail, Outlook Personal), social media, and consumer file storage (Dropbox, personal OneDrive) from business-tier connectors.</li>



<li><strong>Don&#8217;t over-block.</strong> Overly strict DLP kills adoption. If makers can&#8217;t do anything useful, they go around the platform, which is worse. Find the right balance.</li>



<li><strong>Test before deploying.</strong>&nbsp;A DLP policy can silently break existing flows. Use the DLP impact analysis tool in the Power Platform admin center before publishing.</li>
</ul>



<h3 class="wp-block-heading">21. What&#8217;s your approach to managing environments and licenses at enterprise scale?</h3>



<p>This is a governance conversation as much as a technical one.</p>



<ul class="wp-block-list">
<li><strong>Environment strategy.</strong>&nbsp;I recommend: Default environment (restricted, for personal productivity), Dev environments (per project or per developer), Test/UAT, Production. The Default environment is not for business apps — it has no isolation.</li>



<li><strong>Dataverse for Teams vs. Dataverse.</strong>&nbsp;Know the difference. Dataverse for Teams is included with M365 but has tight limits (2GB, Teams-only access). Full Dataverse requires Power Apps per-app or per-user licenses.</li>



<li><strong>License assignment.</strong> Per-user licenses make sense for power users building apps. <a href="https://www.microsoft.com/en-us/power-platform/products/power-apps/pricing" target="_blank" rel="noopener">Per-app licenses</a> (now called &#8220;Pay-as-you-go&#8221; in some scenarios) make sense for broad user adoption of specific apps.</li>



<li><strong>Center of Excellence (CoE) Starter Kit.</strong>&nbsp;I always recommend deploying the CoE kit. It gives you visibility into all apps, flows, and connectors across your tenant, and flags things like apps with no owners, overly permissive flows, and orphaned resources.</li>
</ul>



<h3 class="wp-block-heading">22. How do you handle app versioning and rollback in Power Apps?</h3>



<p>Power Apps has built-in version history. From the maker portal, you can restore any previous version of an app with two clicks. But for enterprise solutions, that&#8217;s not enough.</p>



<p>My approach:</p>



<ul class="wp-block-list">
<li>Store solutions in <strong>source control</strong> (Azure DevOps or GitHub). Use <code>pac solution export</code> and check in the unpacked solution files.</li>



<li>Use&nbsp;<strong>solution versioning.</strong>&nbsp;Every time you promote to production, increment the solution version. This creates a clear audit trail.</li>



<li>For rollback, I don&#8217;t rely on the &#8220;restore version&#8221; button in production. I re-import the previous managed solution from source control. This is controlled, trackable, and works for all components in the solution, not just the app.</li>



<li>For Canvas Apps specifically, the version in the maker portal is app-level only — it doesn&#8217;t version your Dataverse schema changes. That&#8217;s why solution-level versioning is essential.</li>
</ul>



<h3 class="wp-block-heading">23. Explain how you use managed identities or service principals with Power Platform.</h3>



<p>Service principals let you run flows and <a href="https://www.spguides.com/microsoft-flow-when-an-item-is-created-in-sharepoint-list/">automated processes</a> without tying them to a specific user account. This is critical for production — if the person who built the flow leaves, their account gets disabled, and everything breaks.</p>



<ul class="wp-block-list">
<li><strong>Create an app registration</strong>&nbsp;in Azure AD</li>



<li>Grant it the required&nbsp;<strong>Dataverse API permissions</strong>&nbsp;(<code>user_impersonation</code>&nbsp;for Dataverse)</li>



<li>In Power Platform, go to admin center → Application Users → register the service principal</li>



<li>Assign it a security role in the target environment</li>



<li>Now flows can use the service principal for Dataverse connections instead of a user account</li>
</ul>



<p>For SharePoint connections, this is more nuanced — SharePoint connectors in Power Automate still require a user account connection for most operations. Service principals work best for Dataverse-centric solutions.</p>



<h2 class="wp-block-heading" id="advanced-formulas--patterns">Advanced Formulas &amp; Patterns</h2>



<h3 class="wp-block-heading">24. What is the difference between <code>Patch</code>, <code>SubmitForm</code>, and <code>UpdateContext</code> — and when do you use each?</h3>



<p>These are three different tools, and they&#8217;re often misused:</p>



<ul class="wp-block-list">
<li><strong><code>UpdateContext</code></strong>&nbsp;— Updates local variables on the current screen only. Not for data sources. Use it for UI state:&nbsp;<code>UpdateContext({showModal: true})</code>.</li>



<li><a href="https://www.spguides.com/powerapps-patch-function/"><strong><code>Patch</code></strong> </a>— Writes data directly to a data source (SharePoint, Dataverse, SQL). Gives you surgical control — you specify exactly which columns to update. Use it when you&#8217;re not using a standard form, or when you need to patch multiple records in a loop.</li>



<li><a href="https://www.spguides.com/power-apps-modern-form-control/"><strong><code>SubmitForm</code></strong> </a>— Submits the data from a Form control to the data source. It&#8217;s the easiest approach when you have a Form control bound to a data source. It automatically handles new/edit mode and required field validation.</li>
</ul>



<p>My rule: use&nbsp;<code>SubmitForm</code>&nbsp;when you have a form. Use&nbsp;<code>Patch</code>&nbsp;when you don&#8217;t, or when you need fine-grained control (like patching a subset of fields without a form).</p>



<h3 class="wp-block-heading">25. How does <code>ForAll</code> work, and what are the common pitfalls with it?</h3>



<p><code>ForAll</code>&nbsp;iterates over a table and performs an action for each row. Think of it like a&nbsp;<code>forEach</code>&nbsp;loop.</p>



<p>Common pitfalls:</p>



<ul class="wp-block-list">
<li><strong><code>ForAll</code>&nbsp;is not delegable.</strong>&nbsp;It always processes the local table, not the server. If you&#8217;re running&nbsp;<code>ForAll</code>&nbsp;on a large SharePoint list, you&#8217;re only working with the delegated set of records.</li>



<li><strong>Order of execution isn&#8217;t guaranteed.</strong>&nbsp;<code>ForAll</code>&nbsp;may execute iterations in any order, and it can run them concurrently. Don&#8217;t write logic that assumes sequential execution.</li>



<li><strong>Use&nbsp;<code>ForAll</code>&nbsp;with&nbsp;<code>Patch</code>&nbsp;for bulk updates.</strong>&nbsp;This is the standard pattern to update multiple records at once:&nbsp;<code>ForAll(MyCollection, Patch(MyList, LookUp(MyList, ID = ThisRecord.ID), {Status: "Approved"}))</code></li>



<li><strong>Avoid nested&nbsp;<code>ForAll</code>.</strong>&nbsp;It&#8217;s slow and hard to debug. Flatten your logic or use Power Automate for complex multi-step iteration.</li>



<li><strong>It doesn&#8217;t return values you can easily use.</strong>&nbsp;If you need the output of a&nbsp;<code>ForAll</code>, collect results into a collection with&nbsp;<code>Collect</code>.</li>
</ul>



<h3 class="wp-block-heading">26. How do you implement conditional navigation and deep linking in Power Apps?</h3>



<ul class="wp-block-list">
<li><strong>Conditional navigation.</strong> I used <code>Navigate(ScreenName, ScreenTransition.Fade, {param1: value1})</code> to pass context between screens. The third parameter lets you set local context variables on the destination screen.</li>



<li><strong>Deep linking</strong>&nbsp;— you can pass parameters to a Canvas App via URL:&nbsp;<code>?tenantId=...&amp;source=...</code>. Inside the app, read them with&nbsp;<code>Param("paramName")</code>. This is useful for launching an app from SharePoint, Teams, or an email link and landing directly on a specific record.</li>



<li>For model-driven apps, deep links follow a structured URL format that includes the environment ID, app ID, table name, and record ID. You can construct these programmatically.</li>
</ul>



<h3 class="wp-block-heading">27. What are named formulas (<code>App.Formulas</code>) and how are they different from global variables?</h3>



<p>Named formulas are one of the newer and most underused Power Apps features.</p>



<p>A named formula is a formula you define once at the app level and reference anywhere, like a variable — except it&#8217;s not a variable. It&#8217;s a formula that&nbsp;<strong>recalculates automatically</strong>&nbsp;whenever its dependencies change.</p>



<pre class="wp-block-preformatted">// App.Formulas<br>TodayFormatted = Text(Today(), "[$-en-US]mmmm d, yyyy");<br>ActiveUsers = Filter(Users, IsActive = true);</pre>



<p>Key differences from global variables:</p>



<ul class="wp-block-list">
<li><strong>No assignment needed.</strong>&nbsp;You don&#8217;t call&nbsp;<code>Set()</code>. The formula just stays current.</li>



<li><strong>Lazy evaluation.</strong>&nbsp;It only computes when it&#8217;s accessed, not when the app starts.</li>



<li><strong>No&nbsp;<code>OnStart</code>&nbsp;dependency.</strong>&nbsp;This is huge — you can use named formulas to replace a lot of&nbsp;<code>OnStart</code>&nbsp;bloat, which improves app startup time.</li>



<li><strong>Immutable pattern.</strong>&nbsp;You can&#8217;t assign a new value to a named formula from a button. It&#8217;s reactive, not imperative.</li>
</ul>



<p>Use named formulas for computed values you need globally — current user info, formatted dates, and filtered data sets that multiple screens use.</p>



<h3 class="wp-block-heading">28. How do you build a reusable component library in Power Apps?</h3>



<p>Component Libraries are separate <a href="https://www.spguides.com/show-file-type-icons-in-power-apps-gallery/">Power Apps files</a> that contain reusable components — custom controls built from standard controls.</p>



<p>How I approach it:</p>



<ul class="wp-block-list">
<li>Create a&nbsp;<strong>Component Library</strong>&nbsp;(separate from any app) in the maker portal</li>



<li>Build components with&nbsp;<strong>custom input and output properties</strong>&nbsp;so they&#8217;re configurable</li>



<li>Publish the library and&nbsp;<strong>import it into multiple apps</strong></li>



<li>When the library is updated and republished, all apps using it get a notification to update</li>
</ul>



<p>Best practices:</p>



<ul class="wp-block-list">
<li>Keep components atomic — one component, one purpose</li>



<li>Use input properties for all data inputs rather than hardcoding</li>



<li>Expose output properties for values the app needs to read back (like a selected value from a custom dropdown)</li>



<li>Don&#8217;t put connectors inside components — keep data access in the app, pass data into the component via properties</li>
</ul>



<p>The biggest gotcha: component libraries don&#8217;t automatically push updates to apps. You have to explicitly update the library reference in each consuming app.</p>



<h3 class="wp-block-heading">29. How do you approach testing in Power Apps?</h3>



<p>Testing is an area where Power Apps has historically been weak, but it&#8217;s improving.</p>



<ul class="wp-block-list">
<li><strong>Power Apps Test Studio</strong>&nbsp;— Built-in tool for Canvas Apps. You can record user interactions and create assertions. It integrates with Azure Pipelines for automated UI testing.</li>



<li><strong>Manual test plans.</strong>&nbsp;For most projects, I maintain a structured test matrix covering: happy path, edge cases, error states, permission levels, and device types.</li>



<li><strong>Monitor tool.</strong>&nbsp;Use the Power Apps Monitor during testing to trace all data calls, check for delegation issues, and spot performance problems.</li>



<li><strong>Unit test logic extracted to flows.</strong> If complex logic lives in a <a href="https://www.spguides.com/power-automate-approval-workflow-using-microsoft-forms/">Power Automate flow</a>, I test it independently with different inputs before wiring it to the app.</li>



<li><strong>Peer review of formulas.</strong>&nbsp;I treat complex Power Apps formulas the same way I treat code — they should be reviewed by another developer.</li>
</ul>



<p>Test Studio is improving, but it&#8217;s not at the level of mature web testing frameworks yet. For critical enterprise apps, I complement it with manual testing and code-level checks in any PCF controls.</p>



<h3 class="wp-block-heading">30. How do you handle multilingual/localization requirements in a Power Apps solution?</h3>



<p>Localization in Power Apps isn&#8217;t built into the way you might hope, but here&#8217;s a pattern that works well:</p>



<ul class="wp-block-list">
<li>Create a <strong>Translations SharePoint list or </strong><a href="https://www.spguides.com/power-apps-create-dataverse-table-from-excel/">Dataverse table</a> with columns: <code>Key</code>, <code>LanguageCode</code>, <code>TranslationValue</code></li>



<li>On app load, collect the translations for the user&#8217;s language:&nbsp;<code>ClearCollect(Translations, Filter(TranslationsTable, LanguageCode = userLang))</code></li>



<li>Create a helper function (or named formula):&nbsp;<code>GetText(key) = LookUp(Translations, Key = key, TranslationValue)</code></li>



<li>Reference it on controls:&nbsp;<code>Label.Text = GetText("WelcomeMessage")</code></li>
</ul>



<p>For RTL language support (Arabic, Hebrew), Power Apps has RTL layout support built in — you set the layout direction at the app level. Test it early; RTL often breaks layout assumptions you&#8217;ve made.</p>



<h2 class="wp-block-heading" id="ai--modern-features">AI &amp; Modern Features</h2>



<h3 class="wp-block-heading">31. How are you incorporating Copilot and AI Builder into enterprise Power Apps solutions?</h3>



<p>This is an area that&#8217;s moved fast in the last couple of years.</p>



<p><strong>AI Builder</strong>&nbsp;gives you pre-built and custom AI models you can use inside Power Apps and Power Automate without writing any ML code:</p>



<ul class="wp-block-list">
<li><strong>Form processing</strong> — extract data from <a href="https://www.spguides.com/create-a-pdf-from-sharepoint-list-items-using-power-automate/">PDFs</a>, <a href="https://www.spguides.com/convert-invoice-details-to-excel-ai-builder-power-automate/">invoices</a>, receipts</li>



<li><strong>Object detection</strong>&nbsp;— identify objects in images</li>



<li><strong>Text classification</strong>&nbsp;— categorize feedback, support tickets</li>



<li><strong>Sentiment analysis</strong>&nbsp;— understand customer feedback tone</li>



<li><strong>Custom prediction models</strong>&nbsp;— train a binary classification model on your Dataverse data</li>
</ul>



<p>I&#8217;ve used Form Processing heavily for invoice automation — the app captures an invoice photo, AI Builder extracts the fields, and Power Automate creates the record in the finance system. It&#8217;s genuinely impressive for what it replaces.</p>



<p><strong><a href="https://www.spguides.com/power-apps-copilot/">Copilot in Power Apps</a></strong> (the end-user Copilot chat panel) lets users interact with your app using natural language. As a developer, you can enable it in canvas apps, and it can help users navigate, find records, and understand data. For enterprise rollouts, make sure your data is properly secured before enabling this — <a href="https://www.spguides.com/microsoft-365-copilot-vs-copilot-studio/">Copilot</a> respects user permissions, but it&#8217;s worth auditing.</p>



<h3 class="wp-block-heading">32. What&#8217;s the new Copilot Studio integration with Power Apps, and how does it differ from the built-in Copilot?</h3>



<p>The built-in Copilot in Power Apps is a general-purpose assistant provided by Microsoft. You enable it, and it works with your app&#8217;s data sources.</p>



<p><strong>Copilot Studio</strong> lets you build a <a href="https://www.spguides.com/create-custom-agent-in-microsoft-365-copilot/"><em>custom</em> AI agent</a> — you control the <a href="https://www.spguides.com/sharepoint-list-as-knowledge-in-copilot-studio/">knowledge base</a>, the conversation flow, the escalation paths, and the personality. You can then embed that custom agent into a Canvas App or a Model-Driven App.</p>



<p>Use case distinction:</p>



<ul class="wp-block-list">
<li><strong>Built-in Copilot</strong>&nbsp;→ General Q&amp;A and navigation within the app. Low effort to enable.</li>



<li><strong>Custom Copilot Studio agent</strong>&nbsp;→ Tailored experience with specific knowledge (your company&#8217;s HR policy, your product catalogue, etc.), custom actions, and integration with your specific backend systems.</li>
</ul>



<p>For enterprise solutions, I almost always <a href="https://www.spguides.com/create-custom-agent-in-microsoft-365-copilot/">build a custom agent</a> when Copilot is required. The generic agent isn&#8217;t specific enough to be genuinely useful.</p>



<h3 class="wp-block-heading">33. How do you use Power Fx&#8217;s <code>ParseJSON</code> function for dynamic API responses?</h3>



<p><code>ParseJSON</code> is one of the more powerful recent additions to Power Fx. It lets you work with dynamic JSON in Canvas Apps without knowing the schema upfront.</p>



<pre class="wp-block-preformatted">// Store an HTTP response or flow output<br>Set(apiResponse, ParseJSON(myFlow.Run().responseBody));<br><br>// Access properties<br>Set(userName, Text(apiResponse.user.name));<br>Set(itemCount, Value(apiResponse.data.count));</pre>



<p>Key things to know:</p>



<ul class="wp-block-list">
<li><code>ParseJSON</code>&nbsp;returns an&nbsp;<strong>untyped object</strong>. You must explicitly cast properties to the type you need:&nbsp;<code>Text()</code>,&nbsp;<code>Value()</code>,&nbsp;<code>Boolean()</code>,&nbsp;<code>DateValue()</code></li>



<li>Nested navigation uses dot notation:&nbsp;<code>apiResponse.results.items</code></li>



<li>For arrays, use&nbsp;<code>ForAll(Table(apiResponse.items), ...)</code>&nbsp;to iterate</li>



<li>Error handling: wrap in&nbsp;<code>IfError</code>&nbsp;because if the JSON is malformed or a property doesn&#8217;t exist, it will error</li>
</ul>



<p>This feature replaced many scenarios where people previously had to hack JSON apart with string functions. Use it.</p>



<h3 class="wp-block-heading">34. How do you integrate Power Apps with Azure services beyond the standard connectors?</h3>



<p>Standard connectors cover a lot, but for deep Azure integration, here&#8217;s what I use:</p>



<ul class="wp-block-list">
<li><strong>Custom connector pointing to an Azure API Management gateway.</strong> APIM becomes a controlled, governed entry point to Azure services (Azure Functions, Logic Apps, Cosmos DB, etc.). The custom connector talks to APIM, and APIM routes to the right backend.</li>



<li><strong>Azure Functions via HTTP connector.</strong>&nbsp;For lightweight, serverless logic. Functions can do things Power Automate can&#8217;t — complex calculations, file processing, calling third-party libraries.</li>



<li><strong>Azure Service Bus / Event Hubs.</strong>&nbsp;Power Automate has Service Bus connectors. I use this for event-driven architectures where Power Apps submits work to a queue and Azure processes it asynchronously.</li>



<li><strong>Azure Blob Storage connector.</strong> For file management beyond what SharePoint document libraries offer — large files, binary data, and content delivery.</li>



<li><strong>Managed Identity for security.</strong>&nbsp;When Azure Functions or APIM needs to call back into Dataverse or SharePoint, use managed identities instead of storing credentials.</li>
</ul>



<h3 class="wp-block-heading">35. What are the key considerations when migrating a legacy application to Power Apps?</h3>



<p>This comes up constantly in enterprise settings — migrating from an old Access database, a custom ASP.NET app, or a legacy InfoPath form.</p>



<p>Here&#8217;s my checklist:</p>



<ul class="wp-block-list">
<li><strong>Data migration first, app second.</strong>&nbsp;Don&#8217;t build the Power App while the data model is still in flux. Migrate and validate the data in Dataverse (or your target store) before building screens.</li>



<li><strong>Don&#8217;t replicate the old UI.</strong>&nbsp;Legacy apps often have terrible UX that people have just gotten used to. Use the migration as an opportunity to rethink the workflow.</li>



<li><strong>Map permissions carefully.</strong>&nbsp;Legacy apps often have informal security (&#8220;everyone just knows not to edit that field&#8221;). You need to formalize this in Dataverse security roles or SharePoint permissions.</li>



<li><strong>Plan for the parallel running period.</strong>&nbsp;Users will need to use both the old and new system for some overlap period. Make sure data stays in sync during that window.</li>



<li><strong>Training and change management.</strong>&nbsp;Power Apps looks and feels very different from a desktop app. Budget time for training, not just technical delivery.</li>



<li><strong>Performance baseline.</strong>&nbsp;Know what &#8220;acceptable performance&#8221; means to the users before you build. Measure after.</li>



<li><strong>Consider what&nbsp;<em>not</em>&nbsp;to migrate.</strong>&nbsp;Some functionality in the old system nobody uses. Don&#8217;t bring dead features forward — confirm what&#8217;s actually needed.</li>
</ul>



<h3 class="wp-block-heading">36. How do you handle large binary file uploads (images, PDFs) in Power Apps?</h3>



<p>The standard approach of storing files directly in SharePoint or Dataverse has size limits — Dataverse attachments cap at 128MB per file by default, and Canvas Apps have a 2MB data transfer limit per call.</p>



<p>Here&#8217;s what I do:</p>



<ul class="wp-block-list">
<li>For files under 2MB, use the&nbsp;<strong>Attachment control</strong>&nbsp;and patch directly to SharePoint or Dataverse</li>



<li>For larger files, generate a&nbsp;<strong>SAS URL via an Azure Function</strong>&nbsp;and upload directly from the browser to&nbsp;<strong>Azure Blob Storage</strong>&nbsp;— bypassing the Power Apps data limit entirely</li>



<li>Store only the Blob URL in Dataverse/SharePoint, not the file itself</li>



<li>Use Power Automate to handle any post-upload processing (virus scanning, thumbnail generation, indexing)</li>
</ul>



<h3 class="wp-block-heading">37. What is the difference between <code>Set</code> and <code>UpdateContext</code>, and when does using the wrong one cause real bugs?</h3>



<ul class="wp-block-list">
<li><strong><code>Set</code></strong>&nbsp;creates or updates a&nbsp;<strong>global variable</strong>&nbsp;— accessible from any screen in the app</li>



<li><strong><code>UpdateContext</code></strong>&nbsp;creates or updates a&nbsp;<strong>local variable</strong>&nbsp;— only accessible on the current screen</li>
</ul>



<p>The bug I&#8217;ve seen most often: a developer uses&nbsp;<code>UpdateContext</code>&nbsp;to store a selected record, then tries to read it on a different screen and gets nothing. Or worse — they use&nbsp;<code>Set</code>&nbsp;everywhere and pollute the global namespace with dozens of variables that are only relevant to one screen.</p>



<p>My rule: if the variable is only relevant to one screen, use&nbsp;<code>UpdateContext</code>. If multiple screens need it, use&nbsp;<code>Set</code>. And name your variables clearly — prefix globals with&nbsp;<code>g_</code>&nbsp;and locals with&nbsp;<code>l_</code>&nbsp;if your team is large.</p>



<h3 class="wp-block-heading">38. How do you implement role-based UI in a Canvas App (showing/hiding controls based on user role)?</h3>



<p>The clean pattern:</p>



<ul class="wp-block-list">
<li>On app start, look up the current user&#8217;s role:&nbsp;<code>Set(g_userRole, LookUp(AppRoles, UserEmail = User().Email, Role))</code></li>



<li>Use that variable to control visibility:&nbsp;<code>Button.Visible = g_userRole = "Admin"</code></li>



<li>For more complex multi-role scenarios, store the user&#8217;s roles as a collection and check with&nbsp;<code>CountIf(g_userRoles, Role = "Admin") &gt; 0</code></li>
</ul>



<p>One thing to stress: <strong>hiding a control does not secure the data</strong>. A hidden button can still be tapped via workarounds, and <a href="https://www.spguides.com/filter-dataverse-choice-column/">hidden galleries</a> still load data. Always back UI-level role control with proper Dataverse security roles or server-side filtering. UI role control is UX, not security.</p>



<h3 class="wp-block-heading">39. How do you use Environment Variables in Power Apps solutions, and why do they matter?</h3>



<p>Environment variables store configuration values (API endpoints, feature flags, SharePoint site URLs) that change between environments — dev, test, production.</p>



<p>Instead of hardcoding&nbsp;<code>https://mycompany.sharepoint.com/sites/dev</code>, you reference an environment variable. When you move the solution to production, you just update the variable&#8217;s value. No code changes, no broken connections.</p>



<p>Types supported: Text, Number, Boolean, JSON, Data Source, and Secret (stored in Azure Key Vault).</p>



<p>I use them for:</p>



<ul class="wp-block-list">
<li>SharePoint site URLs</li>



<li>Azure Function endpoints</li>



<li>Feature toggles (enable/disable experimental features per environment)</li>



<li>API keys (pointing to Key Vault secrets, never plain text)</li>
</ul>



<p>If you&#8217;re not using environment variables, you&#8217;re hardcoding — and hardcoding is a support ticket waiting to happen.</p>



<h3 class="wp-block-heading">40. How does the Power Apps Monitor tool help you debug production issues?</h3>



<p>Monitor is one of the most underused tools in Power Apps. It lets you trace everything happening in the app in real time:</p>



<ul class="wp-block-list">
<li><strong>Network calls</strong>&nbsp;— see exactly what queries are going to SharePoint, Dataverse, or custom connectors, and what comes back</li>



<li><strong>Formula traces</strong>&nbsp;— see which formulas fired, in what order, and what they returned</li>



<li><strong>Error details</strong>&nbsp;— see actual error messages instead of the generic &#8220;Something went wrong&#8221;</li>



<li><strong>Delegation warnings live</strong>&nbsp;— see which calls are pulling less data than expected due to delegation</li>
</ul>



<p>For production debugging, you can invite a user to a Monitor session remotely — they run the app normally, and you watch the trace. This is incredibly powerful for reproducing user-reported bugs.</p>



<p>You can also download the trace log and share it with Microsoft support for deeper issues.</p>



<h3 class="wp-block-heading">41. What is the Dataverse Web API, and when would you use it directly instead of Power Apps connectors?</h3>



<p>The Dataverse Web API is a RESTful OData endpoint that lets you interact with Dataverse data programmatically. It&#8217;s the underlying API that most connectors use.</p>



<p>I reach for it directly when:</p>



<ul class="wp-block-list">
<li>I&#8217;m building a PCF control that needs to query Dataverse without going through Power Apps formulas</li>



<li>I&#8217;m writing an Azure Function or external service that integrates with Dataverse</li>



<li>I need OData batch requests (multiple operations in a single HTTP call) for performance</li>



<li>I need access to Dataverse operations the connector doesn&#8217;t expose (like executing custom actions or functions)</li>
</ul>



<p>Authentication is via OAuth 2.0 with Azure AD. The base URL follows the pattern:&nbsp;<code>https://{orgname}.api.crm.dynamics.com/api/data/v9.2/</code></p>



<h3 class="wp-block-heading">42. How do you implement approvals in Power Apps beyond the basic Approvals connector?</h3>



<p>The built-in Approvals connector in Power Automate is great for simple scenarios, but breaks down when you need:</p>



<ul class="wp-block-list">
<li>Multi-stage sequential approvals with conditional routing</li>



<li>Parallel approvals (all approvers must approve)</li>



<li>Delegation (approver is on leave, route to their manager)</li>



<li>Full audit trail with comments and timestamps</li>



<li>Custom approval UI instead of email/Teams cards</li>
</ul>



<p>For enterprise approvals, I build a custom approval system:</p>



<ul class="wp-block-list">
<li>An&nbsp;<strong>Approvals</strong>&nbsp;table in Dataverse with columns: RecordID, ApproverEmail, Status, Comments, DueDate, Stage</li>



<li>A Power Automate flow that creates approval records, notifies approvers, and advances stages based on outcomes</li>



<li>A Canvas App or Model-Driven App form where approvers take action directly (faster than email links)</li>



<li>A history table that logs every action for the audit trail</li>
</ul>



<p>This is more work upfront, but gives you full control and a better user experience.</p>



<h3 class="wp-block-heading">43. What are Power Pages, and how do they relate to Power Apps from an architecture standpoint?</h3>



<p><a href="https://www.spguides.com/add-multistep-form-power-pages/">Power Pages</a> (formerly Power Apps Portals) is a low-code platform for building <strong>external-facing websites</strong> backed by Dataverse. Unlike Canvas or Model-Driven Apps, which require a Microsoft 365 or Power Apps license to access, Power Pages sites are accessible to anonymous or authenticated external users.</p>



<p>Where they fit architecturally:</p>



<ul class="wp-block-list">
<li>The data layer is Dataverse — same tables, same security model</li>



<li>External users authenticate via Azure AD B2C, local accounts, or social identity providers</li>



<li>Power Automate flows run in the background for business logic</li>



<li>Liquid templating and JavaScript customize the front-end</li>
</ul>



<p>I use Power Pages for: customer portals, vendor submission forms, partner onboarding sites — anywhere the audience is outside the organization. Think of it as the public-facing layer on top of your Dataverse backend.</p>



<h3 class="wp-block-heading">44. How do you handle timezone issues in Power Apps and Dataverse?</h3>



<p>Timezone handling is one of those things that look simple but aren&#8217;t.</p>



<p>Dataverse stores DateTime fields in <strong>UTC</strong>. When displaying them in Power Apps, the platform converts them to the user&#8217;s local time zone — but only for fields marked as <strong>User Local</strong> behavior. Fields with <strong>Date Only</strong> or <strong>Time Zone Independent</strong> behavior don&#8217;t convert.</p>



<p>Common issues:</p>



<ul class="wp-block-list">
<li>A date entered as &#8220;March 17&#8221; in India shows as &#8220;March 16&#8221; for a US user — because the UTC conversion crosses midnight</li>



<li>Comparing dates in formulas using&nbsp;<code>Today()</code>&nbsp;can give wrong results if the user&#8217;s timezone isn&#8217;t accounted for</li>
</ul>



<p>My approach:</p>



<ul class="wp-block-list">
<li>Use&nbsp;<strong>Date Only</strong>&nbsp;behavior for fields that represent a calendar date (birthdate, due date) where time doesn&#8217;t matter</li>



<li>Use&nbsp;<strong>User Local</strong>&nbsp;for timestamps (created on, modified on, meeting start time)</li>



<li>Use&nbsp;<strong>Time Zone Independent</strong>&nbsp;for fields that should always show the same value regardless of who&#8217;s viewing (a scheduled broadcast time, a global event)</li>



<li>In formulas, use&nbsp;<code>TimeZoneOffset()</code>&nbsp;if you need to manually adjust times</li>
</ul>



<h3 class="wp-block-heading">45. How do you implement pagination in a Canvas App when working with large datasets?</h3>



<p>Power Apps doesn&#8217;t have built-in server-side <a href="https://www.spguides.com/power-apps-gallery-pagination/">pagination UI</a> — you have to build it. Here&#8217;s the pattern I use:</p>



<pre class="wp-block-preformatted">// Variables<br>Set(g_currentPage, 1);<br>Set(g_pageSize, 20);<br><br>// Current page data<br>ClearCollect(g_currentData,<br>    FirstN(<br>        LastN(AllData, CountRows(AllData) - (g_currentPage - 1) * g_pageSize),<br>        g_pageSize<br>    )<br>);</pre>



<p>For large datasets where you can&#8217;t load everything at once, I use Power Automate to handle server-side pagination — the flow accepts a page number and size, queries Dataverse with <code>$skip</code> , and <code>$top</code> OData parameters return just that page.</p>



<p>Navigation buttons increment/decrement&nbsp;<code>g_currentPage</code>&nbsp;and trigger a data refresh. Show the user something like &#8220;Page 3 of 14&#8221; using&nbsp;<code>Ceiling(CountRows(AllData) / g_pageSize)</code>.</p>



<h3 class="wp-block-heading">46. What are canvas app containers, and how do they improve responsive design?</h3>



<p><a href="https://www.spguides.com/powerapps-container-control/">Containers </a>are layout controls that hold other controls and automatically manage their positioning. There are two types:</p>



<ul class="wp-block-list">
<li><strong>Horizontal container</strong>&nbsp;— arranges child controls side by side</li>



<li><strong>Vertical container</strong>&nbsp;— stacks child controls top to bottom</li>
</ul>



<p>Before containers, <a href="https://www.spguides.com/power-apps-modern-card-control/">responsive layout in Canvas Apps</a> was painful — you had to manually set X, Y, Width, and Height formulas on every control relative to the screen size.</p>



<p>With containers:</p>



<ul class="wp-block-list">
<li>Set the container to fill available space</li>



<li>Child controls stretch or shrink proportionally</li>



<li>You get something approaching CSS flexbox behavior</li>
</ul>



<p>My approach for responsive apps:</p>



<ul class="wp-block-list">
<li>Use a vertical container as the main layout wrapper</li>



<li>Use horizontal containers inside it for row-level layouts</li>



<li>Set&nbsp;<code>Fill</code>&nbsp;on the app to use containers everywhere</li>



<li>Test on both mobile and tablet form factors throughout development, not just at the end</li>
</ul>



<h3 class="wp-block-heading">47. How do you use Power Apps with Microsoft Teams — and what are the deployment differences?</h3>



<p>Power Apps apps can be surfaced in <a href="https://www.spguides.com/download-attendance-list-from-microsoft-teams-meeting/">Teams</a> in two ways:</p>



<ol class="wp-block-list">
<li><strong>Personal app</strong>&nbsp;— The Canvas App appears as a tab in the Teams left rail. Any canvas app can be pinned here. Good for individual productivity tools.</li>



<li><strong>Tab in a channel or meeting</strong>&nbsp;— The app appears as a tab in a specific Teams channel or meeting. Good for team-level collaboration tools.</li>
</ol>



<p>Deployment differences:</p>



<ul class="wp-block-list">
<li>Apps deployed through Teams don&#8217;t need users to go to make.powerapps.com — they access it entirely within Teams</li>



<li><strong>Dataverse for Teams</strong> environments (formerly Project Oakdale) are automatically created when you build an app in Teams. These are lighter environments with storage limits and Teams-only access.</li>



<li>For full enterprise apps, build in a standard environment and surface it in Teams as a tab — don&#8217;t rely on the Dataverse for Teams environment for anything serious</li>
</ul>



<p>One gotcha: the Teams app manifest needs to be configured correctly. If you&#8217;re deploying to the whole organization, use the Teams Admin Center to push it out organization-wide rather than have users install it manually.</p>



<h3 class="wp-block-heading">48. How do you handle complex lookup filtering in Model-Driven Apps?</h3>



<p>The standard lookup in a Model-Driven App shows all records from the related table. For most real-world scenarios, you need to filter that down — show only active accounts, or only contacts related to the current user&#8217;s business unit.</p>



<p>Three ways to filter lookups:</p>



<ul class="wp-block-list">
<li><strong>View filtering</strong> — Change the default lookup view to one with a built-in filter. Simplest approach, no code needed.</li>



<li><strong>addCustomFilter (JavaScript)</strong>&nbsp;— Use the&nbsp;<code>addCustomFilter</code>&nbsp;method in a form&#8217;s&nbsp;<code>OnLoad</code>&nbsp;event to apply a dynamic FetchXML filter to the lookup at runtime. This is the most flexible option and what I use most.</li>



<li><strong>Filtered lookup using Power Fx (MDA)</strong>&nbsp;— In newer Model-Driven Apps with Power Fx enabled, you can write a filter expression directly in the lookup control&#8217;s filter property. No JavaScript needed.</li>
</ul>



<p>Always test filtered lookups when switching between create and edit mode — filters sometimes behave differently depending on whether the parent record exists yet.</p>



<h3 class="wp-block-heading">49. What is FetchXML, and when do you use it over OData queries?</h3>



<p>FetchXML is Dataverse&#8217;s proprietary XML-based query language. It predates OData and is still extremely powerful for complex queries.</p>



<p>I use FetchXML over OData when:</p>



<ul class="wp-block-list">
<li>I need&nbsp;<strong>aggregate queries</strong>&nbsp;(sum, count, avg) that OData doesn&#8217;t handle cleanly</li>



<li>I need&nbsp;<strong>linked entity queries</strong>&nbsp;(joins) across multiple tables with specific column selections</li>



<li>I&#8217;m building&nbsp;<strong>Advanced Find</strong>&nbsp;views or custom reports in Model-Driven Apps</li>



<li>I&#8217;m using the Dataverse connector in Power Automate with the &#8220;List rows&#8221; action and the query gets too complex for OData filter syntax</li>
</ul>



<p>You can build FetchXML visually in Model-Driven Apps using Advanced Find, then download the XML and paste it into your Power Automate action or JavaScript code. The FetchXML builder is your best friend here — don&#8217;t write it from scratch.</p>



<h3 class="wp-block-heading">50. How do you approach performance profiling of a slow Model-Driven App form?</h3>



<p>A slow Model-Driven App form is usually caused by one or more of these:</p>



<ul class="wp-block-list">
<li><strong>Too many JavaScript web resources loading.</strong>&nbsp;Audit which scripts run on&nbsp;<code>OnLoad</code>. Defer or remove scripts that aren&#8217;t needed on first render.</li>



<li><strong>Blocking synchronous operations.</strong>&nbsp;Any&nbsp;<code>XMLHttpRequest</code>&nbsp;in synchronous mode or heavy computation in&nbsp;<code>OnLoad</code>&nbsp;blocks the form. Move to async patterns.</li>



<li><strong>Too many subgrids.</strong>&nbsp;Each subgrid makes its own database call. If you have 6 subgrids on one form, that&#8217;s 6 extra queries on every form open. Reduce or lazy-load them.</li>



<li><strong>Plugins running on retrieve.</strong>&nbsp;Check if any server-side plugins run on the Record Retrieve message for that table. Poorly written plugins add seconds to every form load.</li>



<li><strong>Use the F12 Network tab + Performance profiler.</strong>&nbsp;Record a form load, identify the slowest operations, and work backwards.</li>



<li><strong>Power Platform Advisor.</strong>&nbsp;The CoE Toolkit&#8217;s Power Platform Advisor flags performance anti-patterns at the solution level.</li>
</ul>



<h3 class="wp-block-heading">51. How do you stay current with Power Platform changes — and how do you manage breaking changes in production?</h3>



<p>This one matters more than people give it credit for, because Microsoft ships updates fast.</p>



<p>How I stay current:</p>



<ul class="wp-block-list">
<li><strong>Release wave documentation</strong>&nbsp;— Microsoft publishes 2 release waves per year (Wave 1 and Wave 2). I read the release plan every time a new one drops.</li>



<li><strong>Power Apps blog and Tech Community forums</strong>&nbsp;— Real practitioners post workarounds, gotchas, and insights before they show up in official docs.</li>



<li><strong>Sandbox environment with updates enabled.</strong>&nbsp;I keep a non-production environment that gets updates before they roll out to production. Test everything there first.</li>
</ul>



<p>Managing breaking changes:</p>



<ul class="wp-block-list">
<li><strong>Enable managed environment update policies</strong>&nbsp;in the Power Platform Admin Center. This gives you some control over when updates hit your production environments.</li>



<li><strong>Monitor deprecation notices.</strong>&nbsp;Microsoft gives advance notice for deprecated features — usually 12 months. Don&#8217;t ignore these. I&#8217;ve seen teams scrambling to rewrite flows because they ignored a deprecation notice for 10 months.</li>



<li><strong>Regression testing after updates.</strong>&nbsp;Run your Test Studio test suite (or manual test checklist) after every major platform update. Even changes that shouldn&#8217;t affect your app sometimes do.</li>
</ul>



<p>Also, you may like some more Power platform tutorials:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/power-apps-search-sharepoint-list/">Search a SharePoint List in Power Apps</a></li>



<li><a href="https://www.spguides.com/power-apps-dropdown-show-only-unique-values/">Power Apps Dropdown Show Only Unique Values</a></li>



<li><a href="https://www.spguides.com/preferred-solution-power-platform/">Preferred Solution in Power Platform</a></li>



<li><a href="https://www.spguides.com/power-apps-set-dropdown-default-value-to-blank/">Set Dropdown Default Value to Blank in Power Apps</a></li>
</ul>



<h2 class="wp-block-heading" id="wrapping-up">Wrapping Up</h2>



<p>If you&#8217;ve worked through all 51 of these, you&#8217;ve covered the territory that genuinely matters in senior Power Apps interviews — not just what a feature is, but when to use it, when to avoid it, and what breaks in the real world.</p>



<p>The interviews that go well aren&#8217;t the ones where you recite definitions. They&#8217;re the ones where you can say&nbsp;<em>&#8220;I&#8217;ve seen that go wrong in production, here&#8217;s what I do instead&#8221;</em>&nbsp;— and back it up with specifics.</p>



<p>Architecture decisions, security design, ALM discipline, delegation gotchas, PCF lifecycle, Dataverse modeling, and AI integration — these are the areas where experienced developers separate themselves. Keep building, keep breaking things in dev, and keep reading the release notes. The platform moves fast, and staying current is half the job.</p>



<p>Good luck.</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Search a SharePoint List in Power Apps [12 Real Scenarios With Formulas]</title>
		<link>https://www.spguides.com/power-apps-search-sharepoint-list/</link>
					<comments>https://www.spguides.com/power-apps-search-sharepoint-list/#comments</comments>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 10:55:11 +0000</pubDate>
				<category><![CDATA[Power Apps]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Search a SharePoint List in Power Apps]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=39988</guid>

					<description><![CDATA[Searching a SharePoint list in Power Apps sounds simple — until you hit a delegation warning, a Choice field that breaks your formula, or a Person column that returns absolutely nothing. I&#8217;ve built dozens of Power Apps for clients and internal teams, and these exact problems come up every single time. In this tutorial, I&#8217;ll ... <a title="Search a SharePoint List in Power Apps [12 Real Scenarios With Formulas]" class="read-more" href="https://www.spguides.com/power-apps-search-sharepoint-list/" aria-label="Read more about Search a SharePoint List in Power Apps [12 Real Scenarios With Formulas]">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>Searching a SharePoint list in Power Apps sounds simple — until you hit a delegation warning, a Choice field that breaks your formula, or a Person column that returns absolutely nothing. I&#8217;ve built dozens of <a href="https://www.tsinfotechnologies.com/employee-leave-request-power-apps-app/" target="_blank" rel="noopener">Power Apps for clients</a> and internal teams, and these exact problems come up every single time.</p>



<p>In this tutorial, I&#8217;ll walk you through every realistic search scenario — from basic text search to date ranges, Choice fields, Person fields, and large lists — with the exact formulas you need and the reasoning behind each one.</p>



<h2 class="wp-block-heading" id="before-you-start-search-vs-filter--which-one-do-yo">Power Apps Search() vs Filter() — Which One Do You Actually Need?</h2>



<p>This is the question I get most often, and the answer is almost always the same:&nbsp;<strong>it depends on your column type</strong>. Here&#8217;s the quick rule I follow:</p>



<p><strong>Use&nbsp;<code>Search()</code>&nbsp;when:</strong></p>



<ul class="wp-block-list">
<li>You&#8217;re searching only<strong>&nbsp;Single Line of Text</strong>&nbsp;columns</li>



<li>Your list has fewer than 2,000 items</li>



<li>You want a simple, minimal formula</li>
</ul>



<p><strong>Use&nbsp;<code>Filter()</code>&nbsp;when:</strong></p>



<ul class="wp-block-list">
<li>You&#8217;re working with&nbsp;<strong>Choice, Date, Number, or Person</strong>&nbsp;columns</li>



<li>Your list is large (and you&#8217;re using indexed columns)</li>



<li>You need complex AND/OR logic</li>
</ul>



<p>Here&#8217;s a side-by-side comparison to make the decision easier:</p>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Criteria</th><th><code>Search()</code></th><th><code>Filter()</code></th></tr></thead><tbody><tr><td>Supported column types</td><td>Text only</td><td>All types</td></tr><tr><td>Works with Choice columns</td><td><strong>No</strong></td><td><strong>Yes </strong>(use&nbsp;<code>.Value</code>)</td></tr><tr><td>Works with Person columns</td><td><strong>No</strong></td><td><strong>Yes </strong>(use&nbsp;<code>.DisplayName</code>)</td></tr><tr><td>Works with Date columns</td><td><strong>No</strong></td><td><strong>Yes</strong></td></tr><tr><td>Delegation-safe</td><td><strong>No</strong> (2,000 row limit)</td><td><strong>Yes </strong>(with indexed columns)</td></tr><tr><td>Multi-column search</td><td><strong>Yes</strong> via comma params</td><td><strong>Yes </strong>via `</td></tr><tr><td>Formula complexity</td><td>Simple</td><td>Moderate</td></tr></tbody></table></figure>



<p>If you pick the wrong one for your column type, Power Apps either throws a delegation warning or silently returns no results, and that silent failure is the worst kind.</p>



<h2 class="wp-block-heading" id="decision-tree-which-formula-should-i-use">Decision Tree: Which Formula Should I Use in Power Apps?</h2>



<p>Use this to quickly decide your approach before writing a single line:</p>



<pre class="wp-block-preformatted">What column type are you searching?<br>│<br>├─ Single Line of Text only?<br>│   └─ Use Search() <br>│<br>├─ Choice column?<br>│   └─ Use Filter() + AddColumns() + .Value <br>│<br>├─ Date column?<br>│   └─ Use Filter() + DateAdd() <br>│<br>├─ Person / People Picker column?<br>│   └─ Use Filter() + .DisplayName <br>│<br>└─ Mix of Text + Choice / Person?<br>    └─ Use Filter() + AddColumns() + OR operator</pre>



<p>Bookmark this. It saves a lot of trial and error.</p>



<h2 class="wp-block-heading" id="setting-up-connect-your-sharepoint-list">Power Apps Setting Up: Connect Your SharePoint List</h2>



<p>Before any of the formulas below work, make sure your <a href="https://www.spguides.com/create-sharepoint-list-item-using-copilot-studio/">SharePoint list</a> is connected. In Power Apps Studio:</p>



<ol class="wp-block-list">
<li>Go to&nbsp;<strong>Data</strong>&nbsp;(left panel) → click&nbsp;<strong>+ Add data</strong></li>



<li>Search for&nbsp;<strong>SharePoint</strong>&nbsp;→ select your site → pick your list</li>



<li>Add a&nbsp;<strong>Text input</strong>&nbsp;control (rename it to something like&nbsp;<code>txtSearch</code>)</li>



<li>Add a&nbsp;<strong>Gallery</strong>&nbsp;control and connect it to your SharePoint list</li>
</ol>



<p>That&#8217;s your base setup. Now let&#8217;s get into the actual scenarios.</p>



<h2 class="wp-block-heading">Search a SharePoint List in Power Apps</h2>



<p>Now let&#8217;s work with some real examples on how to search a SharePoint list in Power Apps.</p>



<h3 class="wp-block-heading" id="scenario-1-search-multiple-text-columns-at-once">Scenario 1: Search Multiple Text Columns at Once in Power Apps</h3>



<p><strong>Real-world use case:</strong>&nbsp;An HR team wants a single search box to find employees by name, department, or location in an Employee Onboarding list.</p>



<p>I have a SharePoint list called&nbsp;<strong>Employee Onboarding</strong>&nbsp;with these columns:</p>



<ul class="wp-block-list">
<li><strong>Title</strong>&nbsp;(Employee Name) — Single line of text</li>



<li><strong>EmployeeLastName</strong>&nbsp;— Single line of text</li>



<li><strong>Department</strong>&nbsp;— Choice field</li>



<li><strong>Location</strong>&nbsp;— Choice field</li>
</ul>



<h4 class="wp-block-heading">Approach 1: Using&nbsp;Power Apps <code>Filter()</code>&nbsp;with a Collection (Best for Mixed Column Types)</h4>



<p>First, load the list into a<a href="https://www.spguides.com/remove-a-column-from-power-apps-collection/"> Power Apps Collection </a>on the screen&#8217;s&nbsp;<code>OnVisible</code>&nbsp;property:</p>



<pre class="wp-block-preformatted">Collect(colEmployeeList, 'Employee Onboarding')</pre>



<p>Then set the Gallery&#8217;s&nbsp;<strong>Items</strong>&nbsp;property to:</p>



<pre class="wp-block-preformatted">Items = Filter(<br>    colEmployeeList,<br>    txtSearch.Text in Title ||<br>    txtSearch.Text in Department.Value ||<br>    txtSearch.Text in Location.Value<br>)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f1f0f2" data-has-transparency="false" style="--dominant-color: #f1f0f2;" loading="lazy" decoding="async" width="1024" height="559" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Filter-with-a-Collection-1024x559.avif" alt="Power Apps Filter() with a Collection" class="wp-image-132112 not-transparent" title="Power Apps Filter with a Collection" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Filter-with-a-Collection-1024x559.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Filter-with-a-Collection-300x164.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Filter-with-a-Collection-768x419.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Filter-with-a-Collection.avif 1162w" /></figure></div>


<p><strong>Why&nbsp;<code>Department.Value</code>&nbsp;and&nbsp;<code>Location.Value</code>?</strong>&nbsp;Because Choice fields in SharePoint are objects, not plain text strings. You need&nbsp;<code>.Value</code>&nbsp;to extract the actual text. Forget this, and your formula either errors out or returns nothing.</p>



<h4 class="wp-block-heading">Approach 2: Using&nbsp;Power Apps <code>Search()</code>&nbsp;for Text-Only Columns</h4>



<p>If you&#8217;re only searching text columns and your list is under 2,000 rows, this is simpler:</p>



<pre class="wp-block-preformatted">Items = Search(colEmployeeList, txtSearch.Text, Title, EmployeeLastName)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="eeedf0" data-has-transparency="false" style="--dominant-color: #eeedf0;" loading="lazy" decoding="async" width="1024" height="378" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Search-for-Text-Only-Columns-1024x378.avif" alt="Power Apps Search() for Text-Only Columns" class="wp-image-132114 not-transparent" title="Power Apps Search for Text Only Columns" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Search-for-Text-Only-Columns-1024x378.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Search-for-Text-Only-Columns-300x111.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Search-for-Text-Only-Columns-768x284.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Power-Apps-Search-for-Text-Only-Columns.avif 1154w" /></figure></div>


<p>Column names in&nbsp;<a href="https://www.spguides.com/power-apps-search-gallery/">Power Apps Search()</a>&nbsp;must be in&nbsp;<strong>quotes</strong>. It won&#8217;t accept Choice, Number, or Person columns here; those need the&nbsp;<code>Filter()</code>&nbsp;approach above.</p>



<h3 class="wp-block-heading" id="scenario-2-search-by-date">Scenario 2: Search by Date Field in Power Apps</h3>



<p><strong>Real-world use case:</strong>&nbsp;A procurement team wants to filter purchase orders by sale date.</p>



<p>I have a SharePoint list called&nbsp;<strong>Book Purchase Info</strong>&nbsp;with a&nbsp;&#8220;Sale Date&#8221;&nbsp;column and a date picker control named&nbsp;<code>dtSelectDate</code>.</p>



<h4 class="wp-block-heading" id="filter-by-a-specific-selected-date">Filter by a Specific Selected Date in Power Apps</h4>



<pre class="wp-block-preformatted">Items = Filter(<br>    'Book Purchase Info',<br>    'Sales Date' &gt;= dtSelectDate.SelectedDate,<br>    'Sales Date' &lt; DateAdd(dtSelectDate.SelectedDate, 1, TimeUnit.Days)<br>)</pre>



<p>The&nbsp;<code>DateAdd(..., 1, Days)</code>&nbsp;part is important — it makes the filter inclusive of the entire selected day, not just midnight.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="eeedef" data-has-transparency="false" style="--dominant-color: #eeedef;" loading="lazy" decoding="async" width="1024" height="385" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-a-Specific-Selected-Date-in-Power-Apps-1024x385.avif" alt="Filter by a Specific Selected Date in Power Apps" class="wp-image-132117 not-transparent" title="Filter by a Specific Selected Date in Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-a-Specific-Selected-Date-in-Power-Apps-1024x385.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-a-Specific-Selected-Date-in-Power-Apps-300x113.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-a-Specific-Selected-Date-in-Power-Apps-768x288.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-a-Specific-Selected-Date-in-Power-Apps.avif 1262w" /></figure></div>


<h4 class="wp-block-heading" id="filter-by-todays-date">Filter by Today&#8217;s Date in Power Apps</h4>



<pre class="wp-block-preformatted">Items = Filter(<br>    'Book Purchase Info',<br>    'Sales Date' &gt;= Today(),<br>    'Sales Date' &lt; DateAdd(Today(), 1, TimeUnit.Days)<br>)</pre>



<p>It shows all records with a Sales Date from today’s start of day (start of the day) until before tomorrow, so you will see only today&#8217;s sales records.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f0eff1" data-has-transparency="false" style="--dominant-color: #f0eff1;" loading="lazy" decoding="async" width="1024" height="432" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-Todays-Date-in-Power-Apps-application-1024x432.avif" alt="Filter by Today&#039;s Date in Power Apps application" class="wp-image-132122 not-transparent" title="Filter by Todays Date in Power Apps application" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-Todays-Date-in-Power-Apps-application-1024x432.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-Todays-Date-in-Power-Apps-application-300x127.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-Todays-Date-in-Power-Apps-application-768x324.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Filter-by-Todays-Date-in-Power-Apps-application.avif 1214w" /></figure></div>


<h4 class="wp-block-heading" id="filter-by-a-date-range-start-and-end-date">Filter by a Date Range (Start and End Date) in Power Apps</h4>



<p>Use two date pickers:&nbsp;<code>dtStartDate</code>&nbsp;and&nbsp;<code>dtEndDate</code>.</p>



<pre class="wp-block-preformatted">Items = Filter(<br>    'Book Purchase Info',<br>    ('Sales Date' &gt;= dtStartDate.SelectedDate Or IsBlank(dtStartDate.SelectedDate))<br>    And<br>    ('Sales Date' &lt; DateAdd(dtEndDate.SelectedDate, 1, TimeUnit.Days) Or IsBlank(dtEndDate.SelectedDate))<br>)</pre>



<p>The&nbsp;IsBlank()&nbsp;wrappers make both date pickers optional — if a user only sets a start date, the <a href="https://www.spguides.com/show-file-type-icons-in-power-apps-gallery/">Power Apps gallery</a> still works. I always add these in production apps.</p>



<h4 class="wp-block-heading" id="show-all-records-when-no-date-is-selected">Show All Records in Power Apps When No Date Is Selected</h4>



<pre class="wp-block-preformatted">Items = Filter(<br>    'Book Purchase Info',<br>    (<br>        'Sales Date' &gt;= dtDate.SelectedDate<br>        And 'Sales Date' &lt; DateAdd(dtDate.SelectedDate, 1, TimeUnit.Days)<br>    )<br>    Or IsBlank(dtDate.SelectedDate)<br>)</pre>



<p>Set the date picker&#8217;s&nbsp;IsEditable&nbsp;property to&nbsp;<code>true</code>. So users can clear the date and see all records again.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f0eff1" data-has-transparency="false" style="--dominant-color: #f0eff1;" loading="lazy" decoding="async" width="1024" height="454" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/power-apps-multiple-filters-on-gallery-1024x454.avif" alt="power apps multiple filters on gallery" class="wp-image-132126 not-transparent" title="power apps multiple filters on gallery" srcset="https://www.spguides.com/wp-content/uploads/2026/03/power-apps-multiple-filters-on-gallery-1024x454.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/power-apps-multiple-filters-on-gallery-300x133.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/power-apps-multiple-filters-on-gallery-768x340.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/power-apps-multiple-filters-on-gallery.avif 1264w" /></figure></div>


<h3 class="wp-block-heading" id="scenario-3-search-a-choice-column">Scenario 3: Search a Choice Column in Power Apps</h3>



<p><strong>Real-world use case:</strong>&nbsp;A manager wants to filter a Products list by Status (Submitted, Approved, Rejected, Pending).</p>



<p>My&nbsp;<strong>Products</strong>&nbsp;list has a&nbsp;<strong>Status</strong>&nbsp;Choice column. Here&#8217;s the formula for the gallery:</p>



<pre class="wp-block-preformatted">Items = Filter(<br>    AddColumns(Products, ChoiceValue, Status.Value),<br>    txtSearch.Text in ChoiceValue<br>)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f1f0f1" data-has-transparency="false" style="--dominant-color: #f1f0f1;" loading="lazy" decoding="async" width="1012" height="602" sizes="(max-width: 1012px) 100vw, 1012px" src="https://www.spguides.com/wp-content/uploads/2026/03/powerapps-filter-gallery-with-add-column.avif" alt="powerapps filter gallery with add column" class="wp-image-132131 not-transparent" title="powerapps filter gallery with add column" srcset="https://www.spguides.com/wp-content/uploads/2026/03/powerapps-filter-gallery-with-add-column.avif 1012w, https://www.spguides.com/wp-content/uploads/2026/03/powerapps-filter-gallery-with-add-column-300x178.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/powerapps-filter-gallery-with-add-column-768x457.avif 768w" /></figure></div>


<p><a href="https://www.spguides.com/powerapps-addcolumns-function/">Power Apps AddColumns()</a>&nbsp;creates a temporary text version of the Choice field called&nbsp;<code>ChoiceValue</code>. Without this, you can&#8217;t use&nbsp;<code>in</code>&nbsp;or&nbsp;<code>Search()</code>&nbsp;on a Choice column at all.</p>



<p>Also, update the gallery label&#8217;s&nbsp;<strong>Text</strong>&nbsp;property:</p>



<pre class="wp-block-preformatted">Text = ThisItem.ChoiceValue</pre>



<h4 class="wp-block-heading" id="search-text-columns-and-a-choice-column-together">Search Text Columns AND a Choice Column Together</h4>



<pre class="wp-block-preformatted">Items = Sort(<br>    Search(<br>        AddColumns(Products, "ChoiceValue", Status.Value),<br>        txtSearch.Text,<br>        "Title", "CustomerName", "ChoiceValue"<br>    ),<br>    'Sales Date',<br>    Ascending<br>)</pre>



<p>This lets users type a product name, a customer name, or a status value — all in one search box. This is one of my most-used patterns in client apps.</p>



<h3 class="wp-block-heading" id="scenario-4-search-by-person--people-picker-column">Scenario 4: Search by Person / People Picker Column in Power Apps</h3>



<p>This is the single most common cause of the &#8220;Wrong column type&#8221; error I see.&nbsp;<code>Search()</code>&nbsp;cannot read Person fields because they&#8217;re objects, not text strings. Always use&nbsp;<code>Filter()</code>&nbsp;with&nbsp;<code>.DisplayName</code>.</p>



<p><strong>Real-world use case:</strong>&nbsp;A library app needs to filter books by the author or uploader.</p>



<h4 class="wp-block-heading" id="search-a-person-field-with-a-text-input">Search a Person Field with a Text Input in Power Apps</h4>



<pre class="wp-block-preformatted">Items = Filter(<br>    'TSInfo Attachments',<br>    txtSearch.Text in 'Book Author'.DisplayName<br>)</pre>



<h4 class="wp-block-heading" id="search-the-created-by-field">Search the &#8220;Created By&#8221; Field in Power Apps</h4>



<pre class="wp-block-preformatted">Items = Search(<br>    AddColumns(Products, CreatedByUser, 'Created By'.DisplayName),<br>    txtSearch.Text,<br>    CreatedByUser, Title, CustomerName<br>)</pre>



<p>And in the gallery label:&nbsp;<code>Text = ThisItem.CreatedByUser</code></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f1f0f1" data-has-transparency="false" style="--dominant-color: #f1f0f1;" loading="lazy" decoding="async" width="1024" height="459" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2026/03/Search-by-person-field-in-Power-Apps-1024x459.avif" alt="Search by person field in Power Apps" class="wp-image-132134 not-transparent" title="Search by person field in Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Search-by-person-field-in-Power-Apps-1024x459.avif 1024w, https://www.spguides.com/wp-content/uploads/2026/03/Search-by-person-field-in-Power-Apps-300x135.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Search-by-person-field-in-Power-Apps-768x344.avif 768w, https://www.spguides.com/wp-content/uploads/2026/03/Search-by-person-field-in-Power-Apps.avif 1164w" /></figure></div>


<h4 class="wp-block-heading" id="let-users-pick-a-person-from-a-dropdown">Let Users Pick a Person From a Dropdown in Power Apps</h4>



<p>Set the <a href="https://www.spguides.com/power-apps-set-combo-box-value-on-button-click/">Power Apps Combo Box&#8217;s</a>&nbsp;<code>Items</code>&nbsp;property to:</p>



<pre class="wp-block-preformatted">Items = Choices(Products.'Created By')</pre>



<p>Set both&nbsp;<code>DisplayFields</code>&nbsp;and&nbsp;<code>SearchFields</code>&nbsp;on the Combo Box to&nbsp;<code>["DisplayName"]</code>.</p>



<p>Then filter the gallery:</p>



<pre class="wp-block-preformatted">Items = Filter(<br>    Products,<br>    'Created By'.DisplayName in ComboBox1.Selected.DisplayName<br>)</pre>



<h3 class="wp-block-heading" id="scenario-5-search-distinct--unique-values">Scenario 5: Search Distinct / Unique Values in Power Apps</h3>



<p><strong>Real-world use case:</strong>&nbsp;You want a dropdown that shows only unique departments — no duplicates.</p>



<h4 class="wp-block-heading" id="distinct-values-from-a-text-column">Power Apps: Distinct Values from Text Columns</h4>



<pre class="wp-block-preformatted">Items = Distinct(Products, Title)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f3f2f2" data-has-transparency="false" style="--dominant-color: #f3f2f2;" loading="lazy" decoding="async" width="814" height="487" sizes="(max-width: 814px) 100vw, 814px" src="https://www.spguides.com/wp-content/uploads/2026/03/Search-Distinct-Values-in-Power-Apps.avif" alt="Search Distinct Values in Power Apps" class="wp-image-132138 not-transparent" title="Search Distinct Values in Power Apps" srcset="https://www.spguides.com/wp-content/uploads/2026/03/Search-Distinct-Values-in-Power-Apps.avif 814w, https://www.spguides.com/wp-content/uploads/2026/03/Search-Distinct-Values-in-Power-Apps-300x179.avif 300w, https://www.spguides.com/wp-content/uploads/2026/03/Search-Distinct-Values-in-Power-Apps-768x459.avif 768w" /></figure></div>


<h4 class="wp-block-heading" id="distinct-values-from-a-choice-column">Power Apps: Distinct Values From a Choice Column</h4>



<pre class="wp-block-preformatted">Items = Distinct(Products, Status.Value)</pre>



<h4 class="wp-block-heading" id="filter-gallery-to-show-unique-employee-names-by-de">Filter Power Apps Gallery: Show Unique Employee Names by Department</h4>



<pre class="wp-block-preformatted">Items = Distinct(<br>    Filter('Employee Onboarding', Department.Value = Dropdown1.Selected.Value),<br>    Title<br>).Result</pre>



<p>Note the&nbsp;<code>.Result</code>&nbsp;at the end — that&#8217;s required when using&nbsp;<code>Distinct()</code>&nbsp;as a gallery source.</p>



<h3 class="wp-block-heading" id="scenario-6-searching-large-sharepoint-lists">Scenario 6: Searching Large SharePoint Lists</h3>



<p>If your list has more than 2,000 items,&nbsp;<code>Search()</code>&nbsp;will silently stop returning all results. This catches many people off guard.</p>



<p>Here&#8217;s what actually works for large lists:</p>



<ul class="wp-block-list">
<li><strong>Use&nbsp;Power Apps Filter()&nbsp;with indexed columns.</strong>&nbsp;In SharePoint, go to your list → List Settings → Indexed Columns → add the column you&#8217;re filtering on.</li>



<li><strong>Use&nbsp;<code>ClearCollect</code>&nbsp;at app start for lists under ~5,000 rows,</strong>&nbsp;then filter against the collection. This avoids repeated server calls.</li>



<li><strong>Avoid&nbsp;<code>AddColumns()</code>&nbsp;on large datasets directly from SharePoint</strong>&nbsp;— it forces a full load and breaks delegation.</li>



<li><strong>Set Data Row Limit to 2,000</strong>&nbsp;in Power Apps Settings → App Settings → General → Data row limit. This is the maximum Power Apps allows for non-delegable operations.</li>
</ul>



<pre class="wp-block-preformatted">ClearCollect(colMyList, 'Your SharePoint List')</pre>



<p>Then filter&nbsp;<code>colMyList</code>&nbsp;rather than the SharePoint data source directly. Yes, this means a slightly longer load time at app start — but it&#8217;s far more reliable for search.</p>



<h2 class="wp-block-heading" id="troubleshooting-power-apps-search-not-working">Troubleshooting: Power Apps Search Not Working</h2>



<p>Run through this checklist before anything else:</p>



<ul class="wp-block-list">
<li>&nbsp;<strong>Using&nbsp;<code>Search()</code>&nbsp;on a Choice column?</strong>&nbsp;→ Switch to&nbsp;<code>Filter()</code>&nbsp;+&nbsp;<code>AddColumns()</code>&nbsp;+&nbsp;<code>.Value</code></li>



<li>&nbsp;<strong>Using&nbsp;<code>Search()</code>&nbsp;on a Person column?</strong>&nbsp;→ Switch to&nbsp;<code>Filter()</code>&nbsp;+&nbsp;<code>.DisplayName</code></li>



<li>&nbsp;<strong>Getting a delegation warning?</strong>&nbsp;→ Your list likely has more than 2,000 rows. Add column indexing or use a&nbsp;<code>ClearCollect</code>&nbsp;pattern</li>



<li>&nbsp;<strong>Search returns nothing when text box is empty?</strong>&nbsp;→ Wrap your formula with&nbsp;<code>If(IsBlank(txtSearch.Text), YourList, Filter(...))</code></li>



<li>&nbsp;<strong>&#8220;Column does not exist&#8221; error?</strong>&nbsp;→ Your column has special characters in its internal SharePoint name. Use&nbsp;<code>ClearCollect(colTest, YourList)</code>&nbsp;then inspect column names in&nbsp;<strong>View → Collections</strong></li>



<li>&nbsp;<strong>Search works in preview, but not after publishing?</strong>&nbsp;→ Check if the app has the correct SharePoint site permissions for all users, not just the owner</li>
</ul>



<p>The most common issue by far is the column type mismatch — someone using&nbsp;<code>Search()</code>&nbsp;on a Person or Choice field. That single mistake is behind 80% of the &#8220;my search isn&#8217;t working&#8221; questions I see in community forums.</p>



<h2 class="wp-block-heading" id="quick-reference-delegation--limits">Quick Reference: Delegation &amp; Limits</h2>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Scenario</th><th>Delegable?</th><th>Max Rows</th><th>Best Approach</th></tr></thead><tbody><tr><td><code>Search()</code>&nbsp;on text columns</td><td>No</td><td>2,000</td><td>Small lists only</td></tr><tr><td><code>Filter()</code>&nbsp;with a non-indexed column</td><td>Yes</td><td>500,000+</td><td>Large lists</td></tr><tr><td><code>Filter()</code>&nbsp;with non-indexed column</td><td>No</td><td>2,000</td><td>Index the column in SharePoint</td></tr><tr><td><code>AddColumns()</code>&nbsp;+&nbsp;<code>Filter()</code></td><td>No</td><td>2,000</td><td>Use&nbsp;<code>ClearCollect</code>&nbsp;first</td></tr><tr><td><code>Distinct()</code>&nbsp;+&nbsp;<code>Filter()</code></td><td><code>Filter()</code>&nbsp;with an indexed column</td><td>2,000</td><td>Cache with&nbsp;<code>ClearCollect</code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="summary-table-formula-patterns-by-column-type">Summary Table: Formula Patterns by Column Type</h2>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><thead><tr><th>Column Type</th><th>Recommended Function</th><th>Example Pattern</th></tr></thead><tbody><tr><td>Single Line of Text</td><td><code>Search()</code>&nbsp;or&nbsp;<code>Filter()</code></td><td><code>Search(List, txt.Text, "Title")</code></td></tr><tr><td>Choice</td><td><code>Filter()</code>&nbsp;+&nbsp;<code>AddColumns()</code></td><td><code>Filter(AddColumns(List, "CV", Col.Value), txt.Text in CV)</code></td></tr><tr><td>Person / People Picker</td><td><code>Filter()</code>&nbsp;+&nbsp;<code>.DisplayName</code></td><td><code>Filter(List, txt.Text in Person.DisplayName)</code></td></tr><tr><td>Date</td><td><code>Filter()</code>&nbsp;+&nbsp;<code>DateAdd()</code></td><td><code>Filter(List, Date &gt;= dp.SelectedDate, Date &lt; DateAdd(...))</code></td></tr><tr><td>Number</td><td><code>Filter()</code>&nbsp;with&nbsp;<code>=</code>&nbsp;operator</td><td><code>Filter(List, NumberCol = Value(txt.Text))</code></td></tr><tr><td>Large List (2k+)</td><td><code>Filter()</code>&nbsp;+ indexed column</td><td>Index column in SP → use&nbsp;<code>Filter()</code>&nbsp;directly</td></tr></tbody></table></figure>



<p>Also, you may like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/display-power-apps-gallery-distinct-values/">Display Power Apps Gallery Distinct Values</a></li>



<li><a href="https://www.spguides.com/parse-json-in-power-apps/">Parse JSON in Power Apps</a></li>



<li><a href="https://www.spguides.com/power-apps-sort-distinct-filter/">Power Apps Sort Distinct Filter</a></li>



<li><a href="https://www.spguides.com/power-apps-dropdown-show-only-unique-values/">Power Apps Dropdown Show Only Unique Values</a></li>



<li><a href="https://www.spguides.com/power-apps-first-function/">Power Apps First Function</a></li>



<li><a href="https://www.spguides.com/power-apps-set-combo-box-value-on-button-click/">Set Combo Box Value On Button Click in Power Apps</a></li>
</ul>



<h2 class="wp-block-heading" id="frequently-asked-questions">Frequently Asked Questions</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1773639961939" class="rank-math-list-item">
<h3 class="rank-math-question ">Can the Power Apps Search() function work with Choice columns?</h3>
<div class="rank-math-answer ">

<p>No, it can&#8217;t. <code>Search()</code> Only accepts single-line text columns. For Choice columns, use <code>Filter()</code> combined with <code>AddColumns()</code> and reference the choice field with <code>.Value</code>.</p>

</div>
</div>
<div id="faq-question-1773639989682" class="rank-math-list-item">
<h3 class="rank-math-question ">What is the delegation limit for Search() in Power Apps with SharePoint?</h3>
<div class="rank-math-answer ">

<p>The maximum is 2,000 rows. Even if your list has 10,000 items, <code>Search()</code> will only look through the first 2,000. You can&#8217;t increase this limit — it&#8217;s hardcoded for non-delegable functions. Switch to <code>Filter()</code> with indexed columns for anything larger.</p>

</div>
</div>
<div id="faq-question-1773640010739" class="rank-math-list-item">
<h3 class="rank-math-question ">What&#8217;s the difference between Search() and Filter() in Power Apps?</h3>
<div class="rank-math-answer ">

<p><code>Search()</code> is simpler and works only on text columns. <code>Filter()</code> is more flexible and handles all column types — Choice, Date, Number, Person. For most real-world SharePoint scenarios, <code>Filter()</code> is the safer choice.</p>

</div>
</div>
<div id="faq-question-1773640032235" class="rank-math-list-item">
<h3 class="rank-math-question ">Why does my Power Apps search return no results when searching a Person field?</h3>
<div class="rank-math-answer ">

<p>Because Person fields are objects in SharePoint, not plain text. <code>Search()</code> expects a string and throws a &#8220;Wrong column type&#8221; error. Use <code>Filter('YourList', txtSearch.Text in 'PersonColumn'.DisplayName)</code> instead.</p>

</div>
</div>
<div id="faq-question-1773640051836" class="rank-math-list-item">
<h3 class="rank-math-question ">How do I search a SharePoint list with more than 2,000 items?</h3>
<div class="rank-math-answer ">

<p>Two options: (1) Use <code>Filter()</code> with a column that&#8217;s been indexed in SharePoint — this is fully delegable up to 30 million rows. (2) Load the list into a collection with <code>ClearCollect</code> at app start and filter the collection locally. Option 1 is better for very large lists; Option 2 works well for lists under ~5,000 rows.</p>

</div>
</div>
<div id="faq-question-1773640075940" class="rank-math-list-item">
<h3 class="rank-math-question ">Why does my search show no results when the text box is empty?</h3>
<div class="rank-math-answer ">

<p>By default, if your formula uses <code>in</code> or <code>Filter()</code> with a blank text value, it may return nothing instead of all records. Fix it by adding an <code>IsBlank()</code> check:<br /><code>Items = If(<br />    IsBlank(txtSearch.Text),<br />    'Your SharePoint List',<br />    Filter('Your SharePoint List', txtSearch.Text in Title)<br />)</code></p>

</div>
</div>
</div>
</div><div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.spguides.com/power-apps-search-sharepoint-list/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>SharePoint Document Set vs Folder: Which One Should You Use?</title>
		<link>https://www.spguides.com/sharepoint-document-sets-vs-folder/</link>
					<comments>https://www.spguides.com/sharepoint-document-sets-vs-folder/#comments</comments>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 16:28:28 +0000</pubDate>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Document Set vs Folder]]></category>
		<guid isPermaLink="false">https://www.sharepointsky.com/?p=7964</guid>

					<description><![CDATA[If you&#8217;ve spent any time managing documents in SharePoint, you&#8217;ve probably asked yourself: Should I use a folder or a document set here? On the surface, they both seem to do the same thing — group documents together. But once you dig deeper, you&#8217;ll realize they&#8217;re quite different and built for different situations. In this tutorial, I&#8217;ll ... <a title="SharePoint Document Set vs Folder: Which One Should You Use?" class="read-more" href="https://www.spguides.com/sharepoint-document-sets-vs-folder/" aria-label="Read more about SharePoint Document Set vs Folder: Which One Should You Use?">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve spent any time managing documents in SharePoint, you&#8217;ve probably asked yourself: <em>Should I use a folder or a document set here</em>? On the surface, they both seem to do the same thing — group documents together. But once you dig deeper, you&#8217;ll realize they&#8217;re quite different and built for different situations.</p>



<p>In this tutorial, I&#8217;ll walk you through <strong>SharePoint Document Set vs Folder</strong>, exactly what each one does, how they compare, when to use which, and how to set up document sets step by step.</p>



<h2 class="wp-block-heading" id="what-is-a-sharepoint-folder">What Is a SharePoint Folder?</h2>



<p><a href="https://www.spguides.com/sharepoint-create-folder/" target="_blank" rel="noreferrer noopener">A folder in SharePoint</a> works just like a folder on your desktop. You create it, drag files in, and use it to keep things organized. It&#8217;s simple, familiar, and requires zero configuration.</p>



<p>Most teams default to folders because they&#8217;re intuitive. Everyone knows what a folder is. You don&#8217;t need training to use one.</p>



<p>But here&#8217;s the problem — folders break down fast once your <a href="https://www.spguides.com/create-and-delete-sharepoint-document-library-using-powershell/" target="_blank" rel="noreferrer noopener">document library</a> grows.</p>



<p>The real limitations of SharePoint folders:</p>



<ul class="wp-block-list">
<li>Metadata doesn&#8217;t apply at the folder level. If you want to tag documents by department, project name, or status, you have to do it file by file.</li>



<li>Filters in SharePoint views only work within the folder you&#8217;re currently in — not across the whole library. So if you&#8217;re looking for all &#8220;Draft&#8221; documents across five folders, good luck.</li>



<li>Deep folder hierarchies become a navigation nightmare. Users end up clicking through four or five levels just to find one file.</li>



<li>You can&#8217;t associate a workflow with an entire folder. Automation applies to individual files, not the container.</li>
</ul>



<p>Folders are great for small, simple scenarios — say, a team of three people sharing a handful of files. But for anything complex, they quickly become a liability.</p>



<p>Check out <a href="https://www.spguides.com/get-sharepoint-folder-permissions-using-powershell/">Get SharePoint Folder Permissions Using PowerShell</a></p>



<h2 class="wp-block-heading" id="what-is-a-sharepoint-document-set">What Is a SharePoint Document Set?</h2>



<p>A document set in SharePoint is essentially a supercharged folder. Technically speaking, it&#8217;s a special content type in SharePoint that lets you group related documents together and treat them as a single unit.</p>



<p>Here&#8217;s what makes it different from a folder:</p>



<ul class="wp-block-list">
<li>You can apply <strong>shared metadata</strong> at the document set level, and that metadata flows down to every document inside it automatically.</li>



<li>It has its own <strong>welcome page</strong> — a customizable landing page you can use to display key properties, links, and instructions for anyone opening it.</li>



<li>You can kick off a <strong>workflow</strong> on the entire document set, not just individual files.</li>



<li><strong>Version history</strong> is tracked at the set level, so you can see how the entire collection evolved over time.</li>



<li>You can pre-load document templates into a document set, so every time someone creates a new one, the right starter documents are already there.</li>
</ul>



<p>Think of it this way: a folder is a plain cardboard box. A document set is a labeled binder with dividers, a cover page, and a tracking sheet attached to the front.</p>



<h2 class="wp-block-heading" id="a-real-world-example-to-make-it-click">A Real-World Example to Understand Folders Vs SharePoint Document Sets</h2>



<p>Let me give you a concrete scenario. Say your legal team manages client contracts. Each contract involves multiple documents: the draft agreement, the signed PDF, the supporting compliance forms, and the renewal notice.</p>



<p><strong>With folders</strong>, you&#8217;d create a folder called &#8220;Client A – Contract 2026&#8221; and dump all those files in. If someone later asks, &#8220;Show me all contracts that expire in Q2,&#8221; you&#8217;re stuck manually opening folders one by one.</p>



<p><strong>With a document set</strong>, you create one document set for each contract. You attach metadata fields to it — client name, contract value, expiry date, status. Now you can build a filtered view in your library that shows every contract expiring in Q2, sorted by value. You can trigger a Power Automate flow to send reminders before the renewal date. And every document inside inherits the client name automatically — no manual tagging needed.</p>



<p>That&#8217;s the difference. Folders organize. Document sets&nbsp;<em>manage</em>.</p>



<p>Check out <a href="https://www.spguides.com/sharepoint-folder-structure/">SharePoint Folder Structure Best Practices</a></p>



<h2 class="wp-block-heading" id="side-by-side-feature-comparison">Feature Comparison</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Feature</th><th>Folder</th><th>Document Set</th></tr></thead><tbody><tr><td>Metadata at container level</td><td>Not supported</td><td>Yes, shared across all docs</td></tr><tr><td>Custom welcome/landing page</td><td>No</td><td>Fully customizable</td></tr><tr><td>Version history</td><td>Per individual file</td><td>For the entire set as one unit</td></tr><tr><td>Workflow / automation</td><td>Per individual file</td><td>On the entire set</td></tr><tr><td>Pre-loaded document templates</td><td>No</td><td>Yes</td></tr><tr><td>Search and filtering</td><td>Limited (within folder only)</td><td>Full library-wide filtering via metadata</td></tr><tr><td>Setup complexity</td><td>Very easy</td><td>Moderate (needs activation)</td></tr><tr><td>Best for</td><td>Simple, small-scale grouping</td><td>Project files, cases, contracts, campaigns</td></tr></tbody></table></figure>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="a0acb4" data-has-transparency="false" style="--dominant-color: #a0acb4;" loading="lazy" decoding="async" width="1024" height="683" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/02/SharePoint-Document-Set-vs-Folder-1024x683.avif" alt="SharePoint Document Set vs Folder" class="wp-image-131813 not-transparent" title="SharePoint Document Set vs Folder" srcset="https://www.spguides.com/wp-content/uploads/2024/02/SharePoint-Document-Set-vs-Folder-1024x683.avif 1024w, https://www.spguides.com/wp-content/uploads/2024/02/SharePoint-Document-Set-vs-Folder-300x200.avif 300w, https://www.spguides.com/wp-content/uploads/2024/02/SharePoint-Document-Set-vs-Folder-768x512.avif 768w, https://www.spguides.com/wp-content/uploads/2024/02/SharePoint-Document-Set-vs-Folder.avif 1536w" /></figure></div>


<p>Check out <a href="https://www.spguides.com/create-choice-column-fill-in-options-sharepoint-document-library/">Create Choice Column With Fill-in Options in SharePoint Document Library</a></p>



<h2 class="wp-block-heading">Comparing Features of SharePoint Folders and Document Sets</h2>



<h3 class="wp-block-heading">Metadata and Content Types</h3>



<p>One of the key advantages of document sets in SharePoint is their ability to share common metadata. When you create a document set, you can assign shared metadata, which is automatically applied to all documents within the set. This ensures consistency and makes it easier to search and retrieve content.</p>



<p>SharePoint Folders, in contrast, cannot share metadata across contained documents. Each file within a folder can have its own metadata, but there&#8217;s no simple way to enforce consistency without manually updating each item.</p>



<h3 class="wp-block-heading">Versioning and Workflows</h3>



<p>Document sets in SharePoint support versioning for the entire set, meaning you can track and restore changes to the entire collection of documents as a single unit. This is particularly useful when multiple documents are part of a larger process or project.</p>



<p>Folders in SharePoint do not have this capability; versioning in folders applies to individual files rather than the folder as a whole. Workflows can be associated with document sets, allowing for more complex business processes to be automated and applied to the entire set.</p>



<h3 class="wp-block-heading">Navigation and User Experience</h3>



<p>Document sets provide a more streamlined user experience, as they display all the documents in a set within a single view. This can be customized to show important metadata and provide quick access to the documents&#8217; content.</p>



<p>With folders, navigation can become more complex, especially with deep folder hierarchies. Users may have to click through multiple levels to find the documents they need, which can be time-consuming.</p>



<h2 class="wp-block-heading" id="when-should-you-use-a-folder">When Should You Use a Folder in SharePoint?</h2>



<p>Folders still have their place. I&#8217;d recommend sticking with folders when:</p>



<ul class="wp-block-list">
<li>You&#8217;re organizing a small number of files without any metadata requirements</li>



<li>Your team is not technically inclined and needs the simplest possible structure</li>



<li>You just need quick, temporary grouping with no automation or reporting needs</li>



<li>You&#8217;re managing files that don&#8217;t belong to any repeatable business process</li>
</ul>



<p>For example, a team storing meeting agendas and notes for a one-off project can get away with a folder. No need to overcomplicate it.</p>



<p>Check out <a href="https://www.spguides.com/delete-files-from-sharepoint-document-library-using-rest-api-in-power-automate/">Delete Files From SharePoint Document Library Using Rest API in Power Automate</a></p>



<h2 class="wp-block-heading" id="when-should-you-use-a-document-set">When Should You Use a SharePoint Document Set?</h2>



<p>Go with document sets when:</p>



<ul class="wp-block-list">
<li>You&#8217;re managing a <strong>repeating type of work</strong> — like contracts, cases, projects, or campaigns — where the same set of documents gets produced each time</li>



<li>You need <strong>consistent metadata</strong> applied across all documents in the group</li>



<li>You want to trigger an <strong>automated workflow</strong> on the whole group — such as sending an approval request or a reminder email</li>



<li>You need to <strong>filter and report</strong> on the entire group as one unit (e.g., &#8220;Show all open cases assigned to John&#8221;)</li>



<li>Your team works with <strong>regulatory or compliance documents</strong> that need to be versioned and audited together</li>
</ul>



<p>Some common real-world use cases I&#8217;ve seen document sets used for:</p>



<ul class="wp-block-list">
<li><strong>Legal firms</strong>: One document set per client case, with all pleadings, evidence, and correspondence inside</li>



<li><strong>HR teams</strong>: One document set per employee onboarding, with contracts, ID verification, and training records</li>



<li><strong>Project teams</strong>: One document set per project phase, with specs, plans, and sign-off sheets</li>



<li><strong>Insurance companies</strong>: One document set per claim, with forms, photos, and assessment reports</li>
</ul>



<p>Read <a href="https://www.spguides.com/create-folders-and-subfolders-in-sharepoint-document-library-using-spfx/">Create Folders and Subfolders in SharePoint document library</a></p>



<h2 class="wp-block-heading" id="how-to-set-up-document-sets-in-sharepoint-step-by">How to Set Up Document Sets in SharePoint (Step by Step)</h2>



<p>Before you can use document sets, you need to activate the feature at the site collection level. Here&#8217;s exactly how to do it.</p>



<h3 class="wp-block-heading" id="step-1-activate-the-document-sets-feature">Step 1: Activate the Document Sets Feature</h3>



<ol class="wp-block-list">
<li>Open your SharePoint site</li>



<li>Click the <strong>Settings gear icon</strong> (top right) → select <strong>Site Settings</strong></li>



<li>Under <strong>Site Collection Administration</strong>, click <strong>Site collection features</strong></li>



<li>Scroll to find <strong>Document Sets</strong> and click <strong>Activate</strong></li>
</ol>



<p>Here is a screenshot for your reference:</p>


<div class="wp-block-image size-full wp-image-1490">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="981" height="102" sizes="(max-width: 981px) 100vw, 981px" src="https://www.spguides.com/wp-content/uploads/2018/03/activate-document-sets-feature-sharepoint-2013.png" alt="document set vs folder" class="wp-image-1490" title="activate document sets feature sharepoint 2013" srcset="https://www.spguides.com/wp-content/uploads/2018/03/activate-document-sets-feature-sharepoint-2013.png 981w, https://www.spguides.com/wp-content/uploads/2018/03/activate-document-sets-feature-sharepoint-2013-300x31.png 300w, https://www.spguides.com/wp-content/uploads/2018/03/activate-document-sets-feature-sharepoint-2013-768x80.png 768w" /></figure></div>


<p>That&#8217;s it for activation. Now the content type becomes available across the site collection.</p>



<h3 class="wp-block-heading" id="step-2-enable-content-types-on-your-library">Step 2: Enable Content Types on Your Library</h3>



<ol class="wp-block-list">
<li>Open the document library where you want to use document sets</li>



<li>Click <strong>Settings</strong> → <strong>Library settings</strong></li>



<li>Under <strong>General Settings</strong>, click <strong>Advanced settings</strong></li>



<li>Under the <strong>Content Types</strong> section, select <strong>Yes</strong> to allow management of content types</li>



<li>Click <strong>OK</strong> to save. You can see the screenshot for your reference.</li>
</ol>


<div class="wp-block-image size-full wp-image-1491">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="533" height="186" sizes="(max-width: 533px) 100vw, 533px" src="https://www.spguides.com/wp-content/uploads/2018/03/document-sets-sharepoint-2013.png" alt="sharepoint document set vs folder" class="wp-image-1491" title="document sets sharepoint 2013" srcset="https://www.spguides.com/wp-content/uploads/2018/03/document-sets-sharepoint-2013.png 533w, https://www.spguides.com/wp-content/uploads/2018/03/document-sets-sharepoint-2013-300x105.png 300w" /></figure></div>


<h3 class="wp-block-heading" id="step-3-add-the-document-set-content-type">Step 3: Add the Document Set Content Type</h3>



<ol class="wp-block-list">
<li>Back in <strong>Library settings</strong>, scroll down to the <strong>Content Types</strong> section</li>



<li>Click <strong>Add from existing site content types</strong> like below screenshot:</li>
</ol>


<div class="wp-block-image size-full wp-image-1492">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="589" height="207" sizes="(max-width: 589px) 100vw, 589px" src="https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-document-sets.png" alt="sharepoint document sets" class="wp-image-1492" title="sharepoint 2013 document sets" srcset="https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-document-sets.png 589w, https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-document-sets-300x105.png 300w" /></figure></div>


<ol start="3" class="wp-block-list">
<li>In the dropdown, select <strong>Document Set Content Types</strong> from the &#8220;Select site content types from&#8221; list</li>



<li>Select <strong>Document Set</strong> and click <strong>Add</strong>, then click <strong>OK</strong>. Here is a screenshot for your reference.</li>
</ol>


<div class="wp-block-image size-large wp-image-1493">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="1068" height="480" sizes="(max-width: 1068px) 100vw, 1068px" src="https://www.spguides.com/wp-content/uploads/2018/03/add-document-set-content-type-sharepoint-2013.gif" alt="document sets in sharepoint online modern" class="wp-image-1493" title="add document set content type sharepoint 2013"></figure></div>


<h3 class="wp-block-heading" id="step-4-create-a-document-set">Step 4: Create a Document Set</h3>



<ol class="wp-block-list">
<li>Open the document library</li>



<li>Click <strong>New</strong> in the command bar — you should now see <strong>Document Set</strong> as an option</li>
</ol>


<div class="wp-block-image size-full wp-image-1494">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="723" height="375" sizes="(max-width: 723px) 100vw, 723px" src="https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-add-document-sets.png" alt="sharepoint document set" class="wp-image-1494" title="sharepoint 2013 add document sets" srcset="https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-add-document-sets.png 723w, https://www.spguides.com/wp-content/uploads/2018/03/sharepoint-2013-add-document-sets-300x156.png 300w" /></figure></div>


<ol start="3" class="wp-block-list">
<li>Click it, give the document set a <strong>Name</strong> and <strong>Description</strong>, then click <strong>Save</strong>.</li>
</ol>


<div class="wp-block-image size-full wp-image-1495">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="886" height="345" sizes="(max-width: 886px) 100vw, 886px" src="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2013.png" alt="sharepoint document sets vs folders" class="wp-image-1495" title="create new document set sharepoint 2013" srcset="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2013.png 886w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2013-300x117.png 300w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2013-768x299.png 768w" /></figure></div>


<p>Your document set now appears in the SharePoint document library. Click on it to see the welcome page, where you can view all its properties, edit metadata, and start adding documents. You can see the screenshot below:</p>


<div class="wp-block-image size-full wp-image-1496">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="829" height="514" sizes="(max-width: 829px) 100vw, 829px" src="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-online.png" alt="sharepoint document set" class="wp-image-1496" title="create new document set sharepoint online" srcset="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-online.png 829w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-online-348x215.png 348w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-online-300x186.png 300w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-online-768x476.png 768w" /></figure></div>


<h3 class="wp-block-heading" id="step-5-add-documents-to-the-set">Step 5: Add Documents to the Set</h3>



<p>Inside the document set, you can:</p>



<ul class="wp-block-list">
<li>Click <strong>Upload</strong> to add existing files</li>



<li>Click <strong>New</strong> to create a new document from a template</li>



<li>Drag and drop files directly into it</li>
</ul>



<p>Any metadata you&#8217;ve assigned at the document set level (like project name or status) will be automatically applied to all files you add.</p>


<div class="wp-block-image size-full wp-image-1497">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="679" height="353" sizes="(max-width: 679px) 100vw, 679px" src="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2016.png" alt="document sets in sharepoint" class="wp-image-1497" title="create new document set sharepoint 2016" srcset="https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2016.png 679w, https://www.spguides.com/wp-content/uploads/2018/03/create-new-document-set-sharepoint-2016-300x156.png 300w" /></figure></div>


<h2 class="wp-block-heading" id="one-thing-people-often-overlook-the-welcome-page">The Welcome Page</h2>



<p>The document set welcome page is very useful. You can customize it to display key metadata fields, a list of documents in the set, links to related resources, and instructions for your team.</p>



<p>For example, if you&#8217;re using document sets for onboarding, the welcome page for each new hire&#8217;s document set could show their name, start date, department, status, and a checklist of what still needs to be uploaded. It becomes a self-contained hub for that specific record.</p>



<p>To customize the welcome page, open the document set, click&nbsp;<strong>Edit</strong>&nbsp;(or in classic view, click&nbsp;<strong>Edit Welcome Page</strong>), and customize it using web parts just like any other SharePoint page.</p>



<p>Check out <a href="https://www.spguides.com/power-apps-download-file-from-sharepoint-document-library/">Download File From SharePoint Document Library in Power Apps</a></p>



<h2 class="wp-block-heading" id="can-you-use-folders-inside-a-document-set">Can You Use Folders Inside a Document Set?</h2>



<p>Yes, you can create folders inside a document set for further organization. This works well when a document set has a large volume of files that need subcategories — like separating &#8220;Legal Documents&#8221; from &#8220;Financial Documents&#8221; within the same project set.</p>



<p>That said, use this sparingly. If you find yourself building deep nested structures inside document sets, it might be a sign that the metadata isn&#8217;t being fully utilized. A well-tagged flat structure is almost always easier to search and filter than a folder tree.</p>



<h2 class="wp-block-heading" id="a-note-on-modern-sharepoint">For Modern SharePoint</h2>



<p>Document sets work in both classic and modern SharePoint. In modern SharePoint Online, the welcome page is built on the modern page framework, so it looks clean and responsive.</p>



<p>One thing to watch: in modern SharePoint, filters in views work much better with metadata than with folders. If you&#8217;re on SharePoint Online and struggling with filtering across folders, document sets with metadata columns are the better long-term architecture. The modern experience is built around metadata-first navigation.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>So there you have it — folders and document sets both have their place in SharePoint, but they solve different problems.</p>



<p>If you&#8217;re managing a small set of files with no real structure needed, a folder gets the job done. But if you&#8217;re dealing with recurring work — contracts, projects, HR records, legal cases — document sets are genuinely worth the extra setup time. The ability to share metadata, trigger workflows, and filter across your entire library as a unit changes how your team works with documents.</p>



<p>I&#8217;ve seen teams stick with folders out of habit, then spend hours hunting for files or manually re-tagging documents. Once they switch to document sets for the right use cases, they wonder why they waited so long.</p>



<p>Start small — pick one repeating process in your team, set up a document set for it, and see how it feels. Once it clicks, you&#8217;ll naturally start applying it everywhere it makes sense.</p>



<p>If you&#8217;re still unsure which to use, run through this quick checklist:</p>



<p><strong>Use a Folder if:</strong></p>



<ul class="wp-block-list">
<li>Simple grouping with no metadata needed</li>



<li>Small team, small number of files</li>



<li>No automation or reporting required</li>
</ul>



<p><strong>Use a Document Set if:</strong></p>



<ul class="wp-block-list">
<li>You manage a repeating type of work (projects, contracts, cases)</li>



<li>You need shared metadata across related documents</li>



<li>You want filtering, views, or workflows on the group</li>



<li>Compliance or audit trail matters</li>
</ul>



<p>If you have any questions or run into issues setting it up, drop a comment below — I&#8217;m happy to help!</p>



<p>You may also like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/restrict-user-access-to-specific-document-libraries-in-sharepoint/">Restrict User Access to Specific Document Libraries in SharePoint</a></li>



<li><a href="https://www.spguides.com/give-sharepoint-library-upload-access-external-users/">Give SharePoint Library Upload Access to External Users</a></li>



<li><a href="https://www.spguides.com/set-column-default-value-in-sharepoint-library/">How to Set Column Default Value in SharePoint Library?</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.spguides.com/sharepoint-document-sets-vs-folder/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>How to Create a Folder in SharePoint (Step-by-Step Guide)</title>
		<link>https://www.spguides.com/sharepoint-create-folder/</link>
					<comments>https://www.spguides.com/sharepoint-create-folder/#comments</comments>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Thu, 05 Mar 2026 05:00:02 +0000</pubDate>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[create a folder in sharepoint]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=23241</guid>

					<description><![CDATA[If you&#8217;ve ever opened a SharePoint document library and found hundreds of files dumped in with no structure, you already know the pain. Folders are one of the simplest ways to bring order to the chaos — and creating them in SharePoint is easier than most people think. In this tutorial, I&#8217;ll walk you through ... <a title="How to Create a Folder in SharePoint (Step-by-Step Guide)" class="read-more" href="https://www.spguides.com/sharepoint-create-folder/" aria-label="Read more about How to Create a Folder in SharePoint (Step-by-Step Guide)">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve ever opened a <a href="https://www.spguides.com/sharepoint-document-library-best-practices/" target="_blank" rel="noreferrer noopener">SharePoint document library</a> and found hundreds of files dumped in with no structure, you already know the pain. Folders are one of the simplest ways to bring order to the chaos — and creating them in SharePoint is easier than most people think.</p>



<p>In this tutorial, I&#8217;ll walk you through every method to <strong>create a folder in SharePoint</strong> — in a <a href="https://www.spguides.com/create-and-delete-sharepoint-document-library-using-powershell/" target="_blank" rel="noreferrer noopener">document library</a>, inside a list, creating nested (sub) folders, doing it through Microsoft Teams, and even how to enable or disable the folder option when it&#8217;s missing. Let&#8217;s get into it.</p>



<p>Before jumping in, just check these two things:</p>



<ul class="wp-block-list">
<li><strong>Permissions</strong>: You need at least <strong>Contribute</strong> <a href="https://www.spguides.com/restrict-user-access-to-specific-document-libraries-in-sharepoint/" target="_blank" rel="noreferrer noopener">access to the document library</a> or list where you want to create folders. If you&#8217;re a visitor (read-only), you won&#8217;t see the option.</li>



<li><strong>Folder command enabled</strong>: By default, the folder option is turned on in document libraries. But sometimes, admins disable it. I&#8217;ll show you how to re-enable it later in this tutorial.</li>
</ul>



<h2 class="wp-block-heading" id="method-1-create-a-folder-in-sharepoint-online-mode">Method 1: Create a Folder in SharePoint Online (Modern Experience)</h2>



<p>This is the most common scenario — you&#8217;re using SharePoint Online (part of Microsoft 365), and you want to add a folder to <a href="https://www.spguides.com/document-library-in-sharepoint-2013/" target="_blank" rel="noreferrer noopener">a document library</a>.</p>



<p>Here&#8217;s how to do it:</p>



<ol class="wp-block-list">
<li>Go to your SharePoint site and open the <strong>document library</strong> where you want the folder. For example, let&#8217;s say it&#8217;s a library called <em>Marketing Policies</em>.</li>



<li>Click the <strong>+ Create or upload</strong> button at the top right of the SharePoint document library.</li>



<li>From the dropdown, select <strong>Folder</strong>. You can refer to the screenshot below:</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f6f1f1" data-has-transparency="false" style="--dominant-color: #f6f1f1;" loading="lazy" decoding="async" width="666" height="287" sizes="(max-width: 666px) 100vw, 666px" src="https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-1.avif" alt="create a folder in sharepoint" class="wp-image-131505 not-transparent" title="create a folder in sharepoint 1" srcset="https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-1.avif 666w, https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-1-300x129.avif 300w" /></figure></div>


<ol start="4" class="wp-block-list">
<li>A small dialog box appears. Type a <strong>Folder Name</strong> — something descriptive like <em>International Marketing</em> or <em>Q1 Reports</em>.</li>



<li>You&#8217;ll also notice a <strong>Folder color</strong> option (it defaults to yellow). This is a nice visual touch if you want to color-code your folders — totally optional.</li>



<li>Click <strong>Create</strong>. Here is the screenshot for your reference:</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="c4c1c1" data-has-transparency="false" style="--dominant-color: #c4c1c1;" loading="lazy" decoding="async" width="918" height="518" sizes="(max-width: 918px) 100vw, 918px" src="https://www.spguides.com/wp-content/uploads/2024/02/sharepoint-create-a-folder-in-library.avif" alt="sharepoint create a folder in library" class="wp-image-131506 not-transparent" title="sharepoint create a folder in library" srcset="https://www.spguides.com/wp-content/uploads/2024/02/sharepoint-create-a-folder-in-library.avif 918w, https://www.spguides.com/wp-content/uploads/2024/02/sharepoint-create-a-folder-in-library-300x169.avif 300w, https://www.spguides.com/wp-content/uploads/2024/02/sharepoint-create-a-folder-in-library-768x433.avif 768w" /></figure></div>


<p>That&#8217;s it. Your folder shows up right there in the library. Click on it to open it, and you&#8217;re ready to start uploading files into it.</p>



<p>Here is how to the SharePoint document library looks with some folders.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-dominant-color="f8f7f7" data-has-transparency="false" style="--dominant-color: #f8f7f7;" loading="lazy" decoding="async" width="867" height="332" sizes="(max-width: 867px) 100vw, 867px" src="https://www.spguides.com/wp-content/uploads/2024/02/how-to-create-folder-in-SharePoint-1.avif" alt="how to create folder in SharePoint" class="wp-image-131507 not-transparent" title="how to create folder in SharePoint 1" srcset="https://www.spguides.com/wp-content/uploads/2024/02/how-to-create-folder-in-SharePoint-1.avif 867w, https://www.spguides.com/wp-content/uploads/2024/02/how-to-create-folder-in-SharePoint-1-300x115.avif 300w, https://www.spguides.com/wp-content/uploads/2024/02/how-to-create-folder-in-SharePoint-1-768x294.avif 768w" /></figure></div>


<p><strong>Quick tip:</strong>&nbsp;SharePoint Online allows up to&nbsp;<strong>30 million files and folders</strong>&nbsp;in a single document library. So don&#8217;t worry about running out of space anytime soon.</p>



<h2 class="wp-block-heading" id="method-2-create-a-folder-in-sharepoint-classic-exp">Method 2: Create a Folder in SharePoint Classic Experience</h2>



<p>If your organization is still using the SharePoint Classic interface (you&#8217;ll know because it looks a bit older and has a ribbon toolbar at the top), the steps are slightly different.</p>



<ol class="wp-block-list">
<li>Navigate to your SharePoint site and open the document library.</li>



<li>Click on the <strong>Files</strong> tab in the ribbon toolbar at the top.</li>



<li>In the <strong>New</strong> group, click <strong>New Folder</strong>.</li>



<li>Enter a name for your folder in the <strong>Name</strong> field.</li>



<li>Click <strong>Create</strong>.</li>
</ol>



<p>Done. The folder appears in your library just like in the modern experience.</p>



<p>Check out <a href="https://www.spguides.com/create-choice-column-fill-in-options-sharepoint-document-library/">Create Choice Column With Fill-in Options in SharePoint Document Library</a></p>



<h2 class="wp-block-heading" id="method-3-create-a-subfolder-nested-folder">Method 3: Create a Subfolder (Nested Folder)</h2>



<p>Sometimes a single level of folders isn&#8217;t enough. Maybe you have a&nbsp;<em>Projects</em>&nbsp;folder and you need separate subfolders for each project — like&nbsp;<em>2025 Projects &gt; Project Alpha</em>,&nbsp;<em>Project Beta</em>, and so on. SharePoint handles nested folders just fine.</p>



<p>Here&#8217;s how to create a subfolder:</p>



<ol class="wp-block-list">
<li>Open your document library and <strong>click into the parent folder</strong> where you want to create the subfolder. Make sure you&#8217;re inside that folder — look at the breadcrumb trail at the top to confirm your location.</li>



<li>Once you&#8217;re inside the parent folder, click <strong>+ New</strong> → <strong>Folder</strong>.</li>



<li>Give the subfolder a name and click <strong>Create</strong>.</li>
</ol>



<p>Here is a screenshot for your reference.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f8f6f6" data-has-transparency="false" style="--dominant-color: #f8f6f6;" loading="lazy" decoding="async" width="1024" height="244" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint-1024x244.avif" alt="Create a Subfolder in SharePoint" class="wp-image-131508 not-transparent" title="Create a Subfolder in SharePoint" srcset="https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint-1024x244.avif 1024w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint-300x72.avif 300w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint-768x183.avif 768w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint-1536x367.avif 1536w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Subfolder-in-SharePoint.avif 1567w" /></figure></div>


<p>The breadcrumb navigation is your friend here. It shows you exactly where you are in the folder hierarchy, so you don&#8217;t accidentally create a folder at the wrong level.</p>



<p>You can nest folders inside folders as deep as you need — though from experience, going more than 3–4 levels deep can make navigation confusing for your team. Keep it manageable.</p>



<p>Read <a href="https://www.spguides.com/get-sharepoint-document-library-size-using-powershell/">Get SharePoint Document Library Size using PnP PowerShell</a></p>



<h2 class="wp-block-heading" id="method-4-create-a-folder-in-a-sharepoint-list">Method 4: Create a Folder in a SharePoint List</h2>



<p>Most people don&#8217;t realize you can also create folders inside a&nbsp;<strong>SharePoint list</strong>, not just a document library. This is useful when you have a large list and want to group items by category or project.</p>



<p>The catch: folder creation in lists is&nbsp;<strong>disabled by default</strong>. You need to turn it on first.</p>



<p><strong>Step 1 — Enable folder creation in a list:</strong></p>



<ol class="wp-block-list">
<li>Open your SharePoint list.</li>



<li>Click the <strong>Gear (Settings) icon</strong> → <strong>List settings</strong>.</li>



<li>Click <strong>Advanced settings</strong>.</li>



<li>Scroll down to the <strong>Folders</strong> section.</li>



<li>Under <em>Make &#8220;New Folder&#8221; command available</em>, select <strong>Yes</strong>.</li>



<li>Click <strong>OK</strong>.</li>
</ol>



<p><strong>Step 2 — Create the folder:</strong></p>



<ol class="wp-block-list">
<li>Go back to your list.</li>



<li>Click <strong>+ New</strong> → <strong>Folder</strong>.</li>



<li>Enter a folder name and click <strong>Create</strong>.</li>
</ol>



<p>The folder will now appear in your list, and you can move list items into it to group them.</p>



<h2 class="wp-block-heading" id="method-5-create-a-folder-in-sharepoint-via-microso">Method 5: Create a Folder in SharePoint via Microsoft Teams</h2>



<p>If your team mainly works inside <a href="https://www.spguides.com/send-approvals-microsoft-teams-using-power-automate/" target="_blank" rel="noreferrer noopener">Microsoft Teams</a>, you don&#8217;t actually need to open SharePoint separately. Since Teams channels are backed by SharePoint document libraries, any folder you create in Teams shows up in SharePoint too — and vice versa.</p>



<p>Here&#8217;s how to do it directly from Teams:</p>



<ol class="wp-block-list">
<li>Open Microsoft Teams and go to the <strong>channel</strong> where you want to add a folder.</li>



<li>Click on the <strong>Shared</strong> tab at the top of the channel.</li>



<li>Click <strong>+ New</strong> → <strong>Folder</strong> (or look for the <strong>New Folder</strong> button depending on your Teams version).</li>



<li>Enter the folder name and click <strong>Create</strong>. Here is a screenshot for your reference.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-dominant-color="f1f0f2" data-has-transparency="false" style="--dominant-color: #f1f0f2;" loading="lazy" decoding="async" width="1024" height="611" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Folder-in-SharePoint-via-Microsoft-Teams-1024x611.avif" alt="Create a Folder in SharePoint via Microsoft Teams" class="wp-image-131509 not-transparent" title="Create a Folder in SharePoint via Microsoft Teams" srcset="https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Folder-in-SharePoint-via-Microsoft-Teams-1024x611.avif 1024w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Folder-in-SharePoint-via-Microsoft-Teams-300x179.avif 300w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Folder-in-SharePoint-via-Microsoft-Teams-768x458.avif 768w, https://www.spguides.com/wp-content/uploads/2024/02/Create-a-Folder-in-SharePoint-via-Microsoft-Teams.avif 1419w" /></figure></div>


<p>The folder instantly appears in both Teams and the connected SharePoint document library. This is handy if your team lives in Teams and doesn&#8217;t want to jump into SharePoint separately.</p>



<h2 class="wp-block-heading" id="how-to-rename-move-or-delete-a-folder">How to Rename, Move, or Delete a Folder</h2>



<p>Once you&#8217;ve created a folder, managing it is straightforward. Here&#8217;s a quick rundown:</p>



<ul class="wp-block-list">
<li><strong>Rename a folder</strong>: Hover over the folder, click the <strong>three dots (…)</strong> that appear, and select <strong>Rename</strong>.</li>



<li><strong>Move a folder</strong>: Select the folder (click the checkbox next to it), then click <strong>Move to</strong> from the top toolbar. Pick the destination library or folder.</li>



<li><strong>Delete a folder</strong>: Hover over it, click the three dots, and select <strong>Delete</strong>. Deleted folders go to the <strong>Recycle Bin</strong>, so you can restore them within 93 days if needed.</li>



<li><strong>Share a folder</strong>: Click the three dots → <strong>Share</strong>, and you can invite people to access just that folder with specific permissions.</li>
</ul>



<p>Check out <a href="https://www.spguides.com/delete-files-from-sharepoint-document-library-using-rest-api-in-power-automate/">Delete Files From SharePoint Document Library Using Rest API in Power Automate</a></p>



<h2 class="wp-block-heading" id="how-to-enable-or-disable-the-folder-option-in-a-do">How to Enable or Disable the Folder Option in a Document Library</h2>



<p>Sometimes you&#8217;ll click&nbsp;<strong>+ New</strong>&nbsp;and not see the&nbsp;<strong>Folder</strong>&nbsp;option. That means it&#8217;s been disabled at the library level. Here&#8217;s how to turn it back on (you need to be a site owner or have design permissions):</p>



<ol class="wp-block-list">
<li>Open the document library.</li>



<li>Click the <strong>Gear (Settings) icon</strong> at the top right.</li>



<li>Select <strong>Library settings</strong> → <strong>More library settings</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="880" height="472" sizes="(max-width: 880px) 100vw, 880px" src="https://www.spguides.com/wp-content/uploads/2024/02/create-folder-in-sharepoint.jpg" alt="create folder in sharepoint" class="wp-image-89430" title="create folder in sharepoint" srcset="https://www.spguides.com/wp-content/uploads/2024/02/create-folder-in-sharepoint.jpg 880w, https://www.spguides.com/wp-content/uploads/2024/02/create-folder-in-sharepoint-300x161.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/02/create-folder-in-sharepoint-768x412.jpg 768w" /></figure></div>


<ol start="4" class="wp-block-list">
<li>Click <strong>Advanced settings</strong>.</li>



<li>Scroll down to the <strong>Folders</strong> section.</li>



<li>Under <em>Make &#8220;New Folder&#8221; command available</em>, select <strong>Yes</strong>.</li>



<li>Click <strong>OK</strong>. Here is a screenshot for your reference.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="377" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-1024x377.jpg" alt="create a folder in sharepoint" class="wp-image-89431" title="create a folder in sharepoint" srcset="https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-1024x377.jpg 1024w, https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-300x110.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint-768x283.jpg 768w, https://www.spguides.com/wp-content/uploads/2024/02/create-a-folder-in-sharepoint.jpg 1223w" /></figure></div>


<p>Go back to the library and the&nbsp;<strong>Folder</strong>&nbsp;option will be back in the&nbsp;<strong>+ New</strong>&nbsp;menu.</p>



<p><strong>To disable it</strong> (if you want to prevent users from creating folders), follow the same steps and select <strong>No</strong> instead.</p>



<p>Check out <a href="https://www.spguides.com/create-folders-and-subfolders-in-sharepoint-document-library-using-spfx/">Create Folders and Subfolders in SharePoint document library using SPFx</a></p>



<h2 class="wp-block-heading" id="should-you-use-folders-or-views-in-sharepoint">Should You Use Folders or Views in SharePoint?</h2>



<p>This is a fair question to ask. Folders work great when you want a simple, familiar file-explorer-style structure. But SharePoint also gives you something more powerful —&nbsp;<strong>metadata views</strong>. Here&#8217;s a quick comparison:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th><strong>Folders</strong></th><th><strong>Views (Metadata)</strong></th></tr></thead></table></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th><strong>Folders</strong></th><th><strong>Views (Metadata)</strong></th></tr></thead><tbody><tr><td><strong>Best for</strong></td><td>Simple file hierarchy</td><td>Large libraries with varied content</td></tr><tr><td><strong>Navigation</strong></td><td>Click through folder levels</td><td>Filter and sort from one screen</td></tr><tr><td><strong>Search</strong></td><td>Works, but limited to folder path</td><td>Searches across all metadata</td></tr><tr><td><strong>Flexibility</strong></td><td>Rigid structure</td><td>Highly flexible</td></tr><tr><td><strong>Learning curve</strong></td><td>None — everyone knows folders</td><td>Requires metadata setup upfront</td></tr></tbody></table></figure>



<p>My honest take: for most teams,&nbsp;<strong>a combination works best</strong>. Use a light folder structure for top-level organization, and set up views with filters for day-to-day browsing. You don&#8217;t have to choose one or the other.</p>



<p>Check out <a href="https://www.spguides.com/get-sharepoint-document-library-folder-path-in-power-automate/">Get SharePoint Document Library Folder Path in Power Automate</a></p>



<h2 class="wp-block-heading" id="best-practices-for-naming-and-organizing-folders-i">Best Practices for Naming and Organizing Folders in SharePoint</h2>



<p>A few things I&#8217;ve learned that save a lot of headaches later:</p>



<ul class="wp-block-list">
<li><strong>Keep folder names short and clear</strong> — &#8220;HR Policies 2026&#8221; is better than &#8220;All HR-Related Policy Documents for the Year 2025.&#8221;</li>



<li><strong>Avoid special characters</strong> in folder names — things like <code># % &amp; * : &lt; > ? /</code> can cause issues, especially when syncing with OneDrive.</li>



<li><strong>Don&#8217;t go deeper than 3–4 folder levels</strong> — it gets hard to navigate and the file path can get too long for Windows sync.</li>



<li><strong>Use consistent naming conventions</strong> — if you name one folder &#8220;Q1-2026&#8221;, don&#8217;t name another &#8220;2026 Q2&#8221;. Pick a format and stick with it across your team.</li>



<li><strong>Review folder permissions occasionally</strong> — especially for sensitive folders. Folder-level permissions can be set in SharePoint, but they add complexity, so use them sparingly.</li>



<li><strong>Combine folders with metadata</strong> where possible — even inside a folder, adding columns like Department or Status makes finding files much faster.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Creating folders in SharePoint is genuinely simple once you know where to look. Whether you&#8217;re using the modern interface, the classic experience, Microsoft Teams, or working inside a list — the process takes less than a minute. The bigger skill is organizing those folders in a way that makes sense for your team long-term.</p>



<p>Start with a simple structure, keep folder names clean, and don&#8217;t nest too deep. That alone will make your SharePoint library a place people actually want to use instead of avoid.</p>



<p>You may also like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/check-if-a-file-exists-in-the-sharepoint-document-library-in-power-automate/">How to check if a file exists in the SharePoint document library in Power Automate?</a></li>



<li><a href="https://www.spguides.com/spfx-upload-file-to-sharepoint-document-library-with-metadata/">SPFx Upload File to SharePoint Document Library With Metadata</a></li>



<li><a href="https://www.spguides.com/give-sharepoint-library-upload-access-external-users/">Give SharePoint Library Upload Access to External Users</a></li>



<li><a href="https://www.spguides.com/set-column-default-value-in-sharepoint-library/">How to Set Column Default Value in SharePoint Library?</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.spguides.com/sharepoint-create-folder/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>SharePoint Customization Examples: How to Customize a SharePoint Online Site (Step-by-Step)</title>
		<link>https://www.spguides.com/sharepoint-customization/</link>
					<comments>https://www.spguides.com/sharepoint-customization/#respond</comments>
		
		<dc:creator><![CDATA[Bijay Kumar]]></dc:creator>
		<pubDate>Sun, 01 Mar 2026 17:44:28 +0000</pubDate>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Customize a SharePoint Online Site]]></category>
		<guid isPermaLink="false">https://www.spguides.com/?p=28123</guid>

					<description><![CDATA[If you&#8217;ve ever opened a freshly created SharePoint site and thought, &#8220;this looks too plain, I need to make it feel like ours&#8221; — you&#8217;re in the right place. In this tutorial, I&#8217;ll walk you through everything you need to know about customizing a SharePoint Online site. No code required for most of it. We&#8217;re ... <a title="SharePoint Customization Examples: How to Customize a SharePoint Online Site (Step-by-Step)" class="read-more" href="https://www.spguides.com/sharepoint-customization/" aria-label="Read more about SharePoint Customization Examples: How to Customize a SharePoint Online Site (Step-by-Step)">read more...</a>]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve ever opened a freshly <a href="https://www.spguides.com/create-sharepoint-site-using-power-apps-power-automate/" target="_blank" rel="noreferrer noopener">created SharePoint site</a> and thought, &#8220;this looks too plain, I need to make it feel like ours&#8221; — you&#8217;re in the right place.</p>



<p>In this tutorial, I&#8217;ll walk you through everything you need to know about <strong>customizing a SharePoint Online site</strong>. No code required for most of it. We&#8217;re talking about practical, real-world customization that you can do right now, whether you manage a Team site or a Communication site.</p>



<p>I&#8217;ll cover six major areas: site information, applying templates, themes, header and navigation, footer, and some newer features like flex sections and the Brand Center. Let&#8217;s get into it.</p>




<div class="adthrive-video-player in-post" itemscope itemtype="https://schema.org/VideoObject" data-video-id="I5lsMgUC" data-player-type="default" orientation="" override-embed="default">
			<meta itemprop="uploadDate" content="2024-01-29T12:55:07.000Z" />
		<meta itemprop="name" content="How to Customize SharePoint Online Team Site or Communication Site" />
		<meta itemprop="description" content="Learn how to customize a SharePoint Online team site as well as a SharePoint communication site." />
		<meta itemprop="thumbnailUrl" content="https://content.jwplatform.com/thumbs/I5lsMgUC-720.jpg" />
		<meta itemprop="contentUrl" content="https://content.jwplatform.com/videos/I5lsMgUC.mp4" />
	</div>




<h2 class="wp-block-heading" id="what-does-sharepoint-customization-actually-mean">What Does &#8220;SharePoint Customization&#8221; Actually Mean?</h2>



<p>When people say &#8220;customize SharePoint,&#8221; they usually mean one of two things:</p>



<ul class="wp-block-list">
<li><strong>Visual customization</strong> – changing the look and feel, colors, fonts, logo, and layout</li>



<li><strong>Functional customization</strong> – <a href="https://www.spguides.com/create-spfx-web-part-with-jquery-accordion/" target="_blank" rel="noreferrer noopener">adding web parts</a>, building pages, setting up navigation, personalizing content for different users</li>
</ul>



<p>In this tutorial, I&#8217;m focusing mostly on the first category — things <a href="https://www.spguides.com/sharepoint-site-owner/" target="_blank" rel="noreferrer noopener">any site owner</a> can do using SharePoint&#8217;s built-in settings. No developer tools, no PowerShell, no SPFx. Just the gear icon and a few clicks.</p>



<p>That said, I&#8217;ll also touch on some slightly advanced options (like the Brand Center and Flex Sections) that Microsoft has rolled out recently — because they&#8217;re genuinely useful and not enough people know about them.</p>



<h2 class="wp-block-heading" id="1-change-site-information-name-description-privacy">1. Change SharePoint Site Information (Name, Description, Privacy)</h2>



<p>This is the most basic but often overlooked customization. The site information panel lets you update your <a href="https://www.spguides.com/create-a-sharepoint-site/" target="_blank" rel="noreferrer noopener">SharePoint site</a> name, add a description, and control privacy — all in one place.</p>



<p>Here&#8217;s how to get to it:</p>



<ol class="wp-block-list">
<li>Open your SharePoint site</li>



<li>Click the <strong>gear icon</strong> (top right corner)</li>



<li>Select <strong>Site information</strong></li>
</ol>



<p>Inside the panel, you&#8217;ll see these options:</p>



<ul class="wp-block-list">
<li><strong>Site name</strong> – This is required. Change it to something that clearly describes the site&#8217;s purpose</li>



<li><strong>Site description</strong> – Optional, but worth filling in. It shows up in search results and helps people understand what the site is about</li>



<li><strong>Privacy settings</strong> – Choose between <strong>Private</strong> (only approved members can access) or <strong>Public</strong> (anyone in your organization can access)</li>



<li><strong>View all site settings</strong> – This takes you to the classic site settings page, where more advanced options live</li>



<li><strong>Delete site</strong> – Only use this if you&#8217;re absolutely sure. There&#8217;s no undo button here</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="401" height="741" sizes="(max-width: 401px) 100vw, 401px" src="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Team-site.jpg" alt="customize a SharePoint Team site" class="wp-image-88766" title="customize a SharePoint Team site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Team-site.jpg 401w, https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Team-site-162x300.jpg 162w" /></figure></div>


<p><strong>A real-world tip:</strong>&nbsp;Don&#8217;t leave the site description blank. When someone searches for this site in Microsoft 365, that description shows up right below the title. A good description helps people quickly decide if this is the site they&#8217;re looking for.</p>



<h2 class="wp-block-heading" id="2-apply-a-site-template">2. Apply a Site Template</h2>



<p>SharePoint comes with a library of pre-built site templates from Microsoft. These are not just visual themes — they bring in entire page structures, pre-configured web parts, and content layouts specific to different business scenarios.</p>



<p>Some popular templates include:</p>



<ul class="wp-block-list">
<li><strong>Store Collaboration</strong> – For retail or frontline teams</li>



<li><strong>Crisis Communication</strong> – For emergency announcements</li>



<li><strong>Human Resources</strong> – For HR portals with onboarding resources</li>



<li><strong>Learning Central</strong> – For internal training and learning content</li>
</ul>



<p>Here is a screenshot for your reference; you can see a few templates.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="808" height="646" sizes="(max-width: 808px) 100vw, 808px" src="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Online-site.jpg" alt="how to customize SharePoint Online site" class="wp-image-88768" title="how to customize SharePoint Online site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Online-site.jpg 808w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Online-site-300x240.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Online-site-768x614.jpg 768w" /></figure></div>


<p>To apply a template:</p>



<ol class="wp-block-list">
<li>Click the <strong>gear icon</strong></li>



<li>Select <strong>Apply a site template</strong></li>



<li>Browse the available templates and click on one to preview it</li>



<li>Review the site capabilities shown in the preview panel</li>



<li>Click <strong>Use template</strong> to apply it, like in the screenshot below:</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="551" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-a-site-in-SharePoint-1024x551.jpg" alt="how to customize a site in SharePoint" class="wp-image-88769" title="how to customize a site in SharePoint" srcset="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-a-site-in-SharePoint-1024x551.jpg 1024w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-a-site-in-SharePoint-300x161.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-a-site-in-SharePoint-768x413.jpg 768w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-a-site-in-SharePoint.jpg 1390w" /></figure></div>


<p>One thing to keep in mind:&nbsp;<strong>your existing data is safe</strong>. Applying a template changes the look and layout of your home page and may add new pages, but it doesn&#8217;t delete your lists, libraries, or content. You can access everything from&nbsp;<strong>Site contents</strong>&nbsp;after the template is applied.</p>



<p>If you ever want to go back to the default home page, just go to the <strong>Site Pages</strong> library, find <strong>Home.aspx</strong>, click the three dots (<strong>&#8230;</strong>) next to it, and select <strong>Make homepage</strong>. Here is a screenshot for your reference:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="421" sizes="(max-width: 1024px) 100vw, 1024px" src="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-1024x421.jpg" alt="how to customize site in SharePoint" class="wp-image-88771" title="how to customize site in SharePoint" srcset="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-1024x421.jpg 1024w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-300x123.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-768x316.jpg 768w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-1536x631.jpg 1536w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint.jpg 1579w" /></figure></div>


<p>This is how to apply a SharePoint template.</p>



<p>Check out <a href="https://www.spguides.com/create-custom-site-template-in-sharepoint-online/">How To Create Custom Site Template In SharePoint Online?</a></p>



<h2 class="wp-block-heading" id="3-change-the-theme-colors-and-fonts">3. Change the Theme (Colors and Fonts)</h2>



<p>This is where it gets fun. SharePoint lets you change the entire color palette of your site in just a few clicks.</p>



<p><strong>Option A: Use a built-in theme</strong></p>



<ol class="wp-block-list">
<li>Click the <strong>gear icon</strong></li>



<li>Go to <strong>Change the look</strong></li>



<li>Click <strong>Theme</strong></li>



<li>Pick from the available color themes and click <strong>Save</strong>, like in the screenshot below:</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="860" height="480" sizes="(max-width: 860px) 100vw, 860px" src="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-Online.jpg" alt="how to customize site in SharePoint Online" class="wp-image-88776" title="how to customize site in SharePoint Online" srcset="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-Online.jpg 860w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-Online-300x167.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-site-in-SharePoint-Online-768x429.jpg 768w" /></figure></div>


<p>Microsoft provides a decent range of built-in themes. But if your organization has specific brand colors, you&#8217;ll want to go further.</p>



<p><strong>Option B: Create a custom theme using the Brand Center (newer feature)</strong></p>



<p>Microsoft recently introduced the&nbsp;<strong>Brand Center</strong>&nbsp;— a dedicated SharePoint site at the tenant level where IT admins or designated brand managers can define company-wide fonts, colors, and themes.</p>



<p>Here&#8217;s the basic flow:</p>



<ol class="wp-block-list">
<li>Set up the Brand Center (your Microsoft 365 admin does this once)</li>



<li>In the Brand Center, go to <strong>Add Colors</strong> and define your brand hex color codes</li>



<li>Then go to <strong>Font packages and themes</strong> → <strong>Add theme</strong></li>



<li>Build your theme using the brand colors you defined</li>
</ol>



<p>Once published, site owners across your organization can apply this custom theme to their own sites — without any PowerShell or code.</p>



<p><strong>Option C: Site-level custom theme (site owners can do this)</strong></p>



<p>Even without the Brand Center, site owners can now create a simple custom theme directly on their site:</p>



<ol class="wp-block-list">
<li>Click <strong>Gear icon</strong> → <strong>Site branding</strong></li>



<li>Go to the <strong>Themes</strong> tab and click <strong>+ New theme</strong></li>



<li>Define your colors (you can use hex codes directly)</li>



<li>Give it a name and click <strong>Save</strong></li>
</ol>



<p>This is perfect when you manage a site that needs to match a specific department&#8217;s branding, without waiting on IT.</p>



<h2 class="wp-block-heading" id="4-customize-the-header">4. Customize SharePoint Site Header</h2>



<p>The header is the first thing people see when they land on your SharePoint site. Customizing it well makes a huge difference in how professional and organized your site looks.</p>



<p>To access header settings:</p>



<ol class="wp-block-list">
<li><strong>Gear icon</strong> → <strong>Change the look</strong> → <strong>Header</strong></li>
</ol>



<p>You&#8217;ll see four sections:</p>



<p><strong>Layout options:</strong></p>



<ul class="wp-block-list">
<li><strong>Minimal</strong> – Clean and compact; just the logo and site name</li>



<li><strong>Compact</strong> – Slightly more space; works well for communication sites</li>



<li><strong>Standard</strong> – The default layout</li>



<li><strong>Extended</strong> – Gives you a large banner-style header with more room for branding</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="762" height="653" sizes="(max-width: 762px) 100vw, 762px" src="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Team-site.jpg" alt="customize a SharePoint Online Team site" class="wp-image-88777" title="customize a SharePoint Online Team site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Team-site.jpg 762w, https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Team-site-300x257.jpg 300w" /></figure></div>


<p><strong>Background:</strong><br>Change the background color of the header bar to match your theme or brand color.</p>



<p><strong>Display options:</strong></p>



<ul class="wp-block-list">
<li>Toggle the <strong>Site title</strong> on or off</li>



<li>Upload a custom <strong>Site logo</strong> (use a PNG with a transparent background for best results)</li>



<li>Set a <strong>Site logo thumbnail</strong> for compact header display</li>
</ul>



<p>Once you&#8217;re happy with the changes, click&nbsp;<strong>Save</strong>.</p>



<p><strong>Practical example:</strong>&nbsp;For a company intranet homepage, I usually go with the&nbsp;<strong>Extended</strong>&nbsp;layout, upload the company logo in white, and set the background to the company&#8217;s primary brand color. It immediately makes the site feel branded and intentional.</p>



<h2 class="wp-block-heading" id="5-customize-navigation">5. Customize SharePoint Site Navigation</h2>



<p>Navigation is what helps people find things on your site. Poor navigation is the number one reason people give up on SharePoint sites. Let&#8217;s fix that.</p>



<p>Go to&nbsp;<strong>Gear icon</strong>&nbsp;→&nbsp;<strong>Change the look</strong>&nbsp;→&nbsp;<strong>Navigation</strong></p>



<p>Here you can control:</p>



<p><strong>Site navigation visibility:</strong><br>Toggle the navigation on or off entirely. For sites that are single-page or landing pages, turning off navigation can actually look cleaner.</p>



<p><strong>Orientation:</strong></p>



<ul class="wp-block-list">
<li><strong>Vertical</strong> – Navigation appears on the left side (default for Team sites)</li>



<li><strong>Horizontal</strong> – Navigation appears at the top</li>
</ul>



<p>If you go horizontal, you also get to choose between:</p>



<ul class="wp-block-list">
<li><strong>Mega menu</strong> – Shows a large dropdown grid, great for sites with many subsections</li>



<li><strong>Cascading</strong> – Traditional dropdown menu</li>
</ul>



<p>Here is a screenshot for your reference.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="889" height="625" sizes="(max-width: 889px) 100vw, 889px" src="https://www.spguides.com/wp-content/uploads/2024/01/customize-SharePoint-Online-Team-site.jpg" alt="customize SharePoint Online Team site" class="wp-image-88778" title="customize SharePoint Online Team site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/customize-SharePoint-Online-Team-site.jpg 889w, https://www.spguides.com/wp-content/uploads/2024/01/customize-SharePoint-Online-Team-site-300x211.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/customize-SharePoint-Online-Team-site-768x540.jpg 768w" /></figure></div>


<p><strong>My recommendation:</strong></p>



<ul class="wp-block-list">
<li>For <strong>Team sites</strong> used by a small team → stick with vertical navigation</li>



<li>For <strong>Communication sites</strong> used as company intranets → go with horizontal + mega menu. It handles lots of links much better and looks more polished</li>
</ul>



<p>Below is a SharePoint team site left navigation, check the screenshot below:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="851" height="540" sizes="(max-width: 851px) 100vw, 851px" src="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Team-site.jpg" alt="how to customize SharePoint Team site" class="wp-image-88779" title="how to customize SharePoint Team site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Team-site.jpg 851w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Team-site-300x190.jpg 300w, https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Team-site-768x487.jpg 768w" /></figure></div>


<p>You can further edit the actual navigation links by clicking&nbsp;<strong>Edit</strong>&nbsp;on the navigation bar itself. From there, you can add links, reorder items, and create sub-links.</p>



<p>Check out <a href="https://www.spguides.com/create-sharepoint-dropdown-navigation/">Create a Dropdown Navigation in SharePoint [With Sublinks]</a></p>



<h2 class="wp-block-heading" id="6-customize-the-footer-communication-sites-only">6. Customize the Footer (Communication Sites Only)</h2>



<p>This one surprises a lot of people — the Footer option is only available on&nbsp;<strong>Communication sites</strong>, not Team sites. If you&#8217;re on a Team site and don&#8217;t see it, that&#8217;s why.</p>



<p>To access footer settings:</p>



<ol class="wp-block-list">
<li><strong>Gear icon</strong> → <strong>Change the look</strong> → <strong>Footer</strong>, follow the screenshot below:</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="425" height="397" sizes="(max-width: 425px) 100vw, 425px" src="https://www.spguides.com/wp-content/uploads/2024/01/customize-the-SharePoint-Online-site.jpg" alt="customize the SharePoint Online site" class="wp-image-88788" title="customize the SharePoint Online site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/customize-the-SharePoint-Online-site.jpg 425w, https://www.spguides.com/wp-content/uploads/2024/01/customize-the-SharePoint-Online-site-300x280.jpg 300w" /></figure></div>


<p>You&#8217;ll get these controls:</p>



<ul class="wp-block-list">
<li><strong>Enable</strong> – Toggle the footer on or off</li>



<li><strong>Layout</strong> – Choose between <strong>Simple</strong> (single row) or <strong>Extended</strong> (multi-row with more links), like in the screenshot below:</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="409" height="878" sizes="(max-width: 409px) 100vw, 409px" src="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Communication-site.jpg" alt="customize a SharePoint Online Communication site" class="wp-image-88790" title="customize a SharePoint Online Communication site" srcset="https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Communication-site.jpg 409w, https://www.spguides.com/wp-content/uploads/2024/01/customize-a-SharePoint-Online-Communication-site-140x300.jpg 140w" /></figure></div>


<ul class="wp-block-list">
<li><strong>Logo</strong> – Add a footer logo (company logo or department icon)</li>



<li><strong>Display name</strong> – The label that appears in the footer, like your company name or site name</li>



<li><strong>Background</strong> – Change the footer background color</li>
</ul>



<p>After saving, you can also click&nbsp;<strong>Edit</strong>&nbsp;directly on the footer to add navigation links and labels — similar to how you edit the top navigation.</p>



<p><strong>Good use cases for the footer:</strong></p>



<ul class="wp-block-list">
<li>Links to legal/compliance pages</li>



<li>Contact information or support links</li>



<li>Links to related sites in your organization</li>



<li>Social media links for company-wide communication sites</li>
</ul>



<p>Check out <a href="https://www.spguides.com/sharepoint-left-navigation-menu-customization/">SharePoint Site Left Navigation or Quick Launch</a></p>



<h2 class="wp-block-heading" id="7-add-and-customize-web-parts-on-pages">7. Add and Customize Web Parts on Pages</h2>



<p>Beyond the site-level settings, you can also customize individual pages by adding and configuring&nbsp;<strong>web parts</strong>. Think of web parts as the building blocks of your pages.</p>



<p>To add a web part to a page:</p>



<ol class="wp-block-list">
<li>Click <strong>Edit</strong> on the page (top right)</li>



<li>Hover over a section and click the <strong>+</strong> button to add a web part</li>



<li>Search for the web part you want</li>
</ol>



<p>Some of the most commonly used web parts for customization include:</p>



<ul class="wp-block-list">
<li><strong>Hero</strong> – A <a href="https://www.spguides.com/hero-web-part-sharepoint-online-modern-site/" target="_blank" rel="noreferrer noopener">visual banner-style section</a> great for homepages; supports images, titles, and links</li>



<li><strong>News</strong> – Automatically pulls in recent news posts from your site or across your SharePoint environment</li>



<li><strong><a href="https://www.spguides.com/sharepoint-online-quick-links-web-part/" target="_blank" rel="noreferrer noopener">Quick Links</a></strong> – A clean, icon-based link section for directing users to key resources</li>



<li><strong><a href="https://www.spguides.com/sharepoint-online-highlighted-content/" target="_blank" rel="noreferrer noopener">Highlighted Content</a></strong> – Dynamically surfaces documents, pages, or sites based on filters you set</li>



<li><strong>People</strong> – Displays profile cards for specific team members</li>



<li><strong>Events</strong> – Shows upcoming calendar events</li>



<li><strong>Text and Image</strong> – For adding formatted content with supporting visuals</li>
</ul>



<p><strong>New Flex Sections:</strong><br>Microsoft recently introduced <strong>Flex Sections</strong> as a major upgrade to how you lay out page content. With Flex Sections, you can freely move, resize, overlap, and group web parts on a 2D grid — giving you much more design freedom than the older column-based layout.</p>



<p>To use a Flex Section:</p>



<ol class="wp-block-list">
<li>While editing a page, click the <strong>+ Add a section</strong> option</li>



<li>Choose <strong>Flexible layout</strong></li>



<li>Now you can drag and drop web parts anywhere within that section and resize them freely</li>
</ol>



<p>This is a huge upgrade if you&#8217;ve ever felt constrained by SharePoint&#8217;s default 1-, 2-, or 3-column layouts.</p>



<p>Check out <a href="https://www.spguides.com/sharepoint-editorial-card-web-part/">SharePoint Editorial Card Web Part</a></p>



<h2 class="wp-block-heading" id="8-customize-site-pages-vs-home-page">8. Customize Site Pages vs. Home Page</h2>



<p>Here&#8217;s something that trips people up: the&nbsp;<strong>Home page</strong>&nbsp;of a SharePoint site is just one page in the&nbsp;<strong>Site Pages</strong>&nbsp;library. You can create multiple pages and set any of them as the new homepage.</p>



<p>To create a new page:</p>



<ol class="wp-block-list">
<li>Click <strong>Gear icon</strong> → <strong>Add a page</strong></li>



<li>Choose a page template or start from blank</li>



<li>Customize it with web parts</li>



<li>When ready, click <strong>Publish</strong></li>
</ol>



<p>To make a different page the homepage:</p>



<ol class="wp-block-list">
<li>Go to <strong>Site contents</strong> → <strong>Site Pages</strong></li>



<li>Find the page you want</li>



<li>Click the three dots (<strong>&#8230;</strong>) next to it</li>



<li>Select <strong>Make homepage</strong></li>
</ol>



<p><strong>Why would you do this?</strong><br>Say you applied a template and don&#8217;t love the default home page it created. You can build a completely custom page and swap it in as the homepage without touching anything else the template set up.</p>



<h2 class="wp-block-heading" id="9-personalized-content-with-audience-targeting">9. Personalized Content with Audience Targeting</h2>



<p>This is one of the more powerful but underused features in SharePoint.&nbsp;<strong>Audience targeting</strong>&nbsp;lets you show specific content only to certain groups of users — while everyone else sees something different (or nothing at all).</p>



<p>For example, you could set up a news web part on your intranet homepage to show HR-specific announcements only to the HR team, while the IT team sees IT-related updates in the same space.</p>



<p>Here&#8217;s how to enable it:</p>



<p><strong>For a web part:</strong></p>



<ol class="wp-block-list">
<li>Edit the page</li>



<li>Click on the web part you want to target (e.g., News, Highlighted Content, Quick Links)</li>



<li>In the web part settings, look for <strong>Enable audience targeting</strong> and turn it on</li>



<li>Now you can target specific Microsoft 365 groups</li>
</ol>



<p><strong>For a news post or document:</strong></p>



<ol class="wp-block-list">
<li>Go to the <a href="https://www.spguides.com/create-a-sharepoint-list-or-library-spfx/" target="_blank" rel="noreferrer noopener">SharePoint library or list</a></li>



<li>Open the settings and enable <strong>Audience targeting</strong> on the library/list itself</li>



<li>Add the target audience column to the items you want to target</li>
</ol>



<p>This works best when your users are properly organized into Microsoft 365 groups or security groups — which is another reason to keep your Azure AD groups tidy.</p>



<h2 class="wp-block-heading" id="10-quick-branding-tips-that-make-a-real-difference">10. Quick Branding Tips That Make a Real Difference</h2>



<p>Before I wrap up, here are a few quick wins that I always recommend when customizing a SharePoint site:</p>



<ul class="wp-block-list">
<li><strong>Use a transparent PNG logo</strong> – It blends cleanly into any background color</li>



<li><strong>Stick to 2–3 brand colors</strong> – More than that starts looking chaotic</li>



<li><strong>Match your header background to your main brand color</strong> – It immediately looks intentional</li>



<li><strong>Keep navigation items under 7</strong> – More than that and people start ignoring the menu</li>



<li><strong>Use the Hero web part on the homepage</strong> – It adds visual weight and makes the page feel designed, not assembled</li>



<li><strong>Add a site icon (favicon)</strong> – Go to <strong>Site information</strong> → <strong>Site logo</strong> and upload a square icon. It shows up in browser tabs and search results</li>
</ul>



<h2 class="wp-block-heading" id="team-site-vs-communication-site-what-can-you-custo">Team Site vs. Communication Site: What Can You Customize?</h2>



<p>People often ask whether the customization options differ between the two site types. Here&#8217;s a quick breakdown:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Customization Option</th><th>Team Site</th><th>Communication Site</th></tr></thead><tbody><tr><td>Site Information</td><td>✅</td><td>✅</td></tr><tr><td>Apply a Site Template</td><td>✅</td><td>✅</td></tr><tr><td>Theme</td><td>✅</td><td>✅</td></tr><tr><td>Header</td><td>✅</td><td>✅</td></tr><tr><td>Navigation (vertical)</td><td>✅</td><td>✅</td></tr><tr><td>Navigation (horizontal/mega menu)</td><td>✅</td><td>✅</td></tr><tr><td>Footer</td><td>❌</td><td>✅</td></tr><tr><td>Audience Targeting</td><td>✅</td><td>✅</td></tr><tr><td>Flex Sections</td><td>✅</td><td>✅</td></tr></tbody></table></figure>



<p>The Footer is the big one — it&#8217;s exclusive to Communication sites. Everything else is available on both.</p>



<p>Here is a video I recorded and uploaded to the YouTube channel on SharePoint site customization.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="How to Customize a SharePoint Online Team Site or Communication Site [2024]" width="963" height="542" src="https://www.youtube.com/embed/hyAsB0kTpoE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Customizing a SharePoint Online site doesn&#8217;t have to be complicated. Start with the basics — update your site name, apply a theme that matches your brand, set up the header and navigation, and drop a few well-chosen web parts on your homepage. That alone will make your site look 10x better than a fresh out-of-the-box install.</p>



<p>Once you&#8217;re comfortable with those, move on to things like audience targeting, custom themes via the Brand Center, and Flex Sections for more advanced layout control.</p>



<p>The goal is a site that feels like it was built for your team — not just a generic SharePoint template that nobody wants to use.</p>



<p>You may also like:</p>



<ul class="wp-block-list">
<li><a href="https://www.spguides.com/sharepoint-calendar-color-code/">SharePoint Calendar Color Coding</a></li>



<li><a href="https://www.spguides.com/add-calendar-list-in-the-modern-sharepoint-online-site-page/">How To Add a Calendar in SharePoint Online</a></li>



<li><a href="https://www.spguides.com/difference-between-sharepoint-and-onedrive/">When to Use OneDrive vs SharePoint for File Storage</a></li>
</ul>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.spguides.com/wp-content/uploads/2026/05/Bijay-Kumar-Microsoft-MVP-Copy.avif" width="100" height="100" alt="Bijay Kumar Microsoft MVP" itemprop="image" title="Bijay Kumar Microsoft MVP Copy"></div><div class="saboxplugin-authorname"><a href="https://www.spguides.com/author/fewlines4biju/" class="vcard author" rel="author"><span class="fn">Bijay Kumar</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Hey! I’m Bijay Kumar, founder of SPGuides.com and a <a href="https://mvp.microsoft.com/en-US/mvp/profile/b59207f9-3c9a-e411-93f2-9cb65495d3c4" target="_blank" rel="nofollow noopener">Microsoft Business Applications MVP</a> (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and <a href="https://www.youtube.com/@SPGuides?sub_confirmation=1" target="_blank" rel="noopener">training videos</a>. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.enjoysharepoint.com" target="_self" rel="noopener">www.enjoysharepoint.com</a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a title="Linkedin" target="_self" href="https://www.linkedin.com/in/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-linkedin" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#0077b5" /><polygon class="st1" points="500.3 374.1 500.3 500.6 278.2 500.6 141.1 363.6 176.3 220.6 144.3 183 182.4 144.4 250.3 212.7 262.2 212.7 271.7 222 342.2 218.1" /><path class="st2" d="m187.9 363.6h-46.9v-150.9h46.9v150.9zm-23.4-171.5c-15 0-27.1-12.4-27.1-27.4s12.2-27.1 27.1-27.1c15 0 27.1 12.2 27.1 27.1 0 15-12.1 27.4-27.1 27.4zm198.8 171.5h-46.8v-73.4c0-17.5-0.4-39.9-24.4-39.9-24.4 0-28.1 19-28.1 38.7v74.7h-46.8v-151h44.9v20.6h0.7c6.3-11.9 21.5-24.4 44.3-24.4 47.4 0 56.1 31.2 56.1 71.8l0.1 82.9z" /></svg></span></a><a title="Behance" target="_self" href="http://Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-behance" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".2" y=".3" width="500" height="500" fill="#1769ff" /><polygon class="st1" points="500.2 297.6 500.2 500.3 280.8 500.3 108.6 327.8 135.7 171.3 233 164.4 285 215.9 303.7 219.9 335 224 293.5 179.9 364.1 162.7" /><path class="st2" d="m222.7 233.1c15.6-7.5 23.8-18.8 23.8-36.4 0-34.7-25.9-43.2-55.7-43.2h-82.2v174.2h84.5c31.7 0 61.4-15.2 61.4-50.6 0-21.8-10.4-37.9-31.8-44zm-75.8-49.8h35.9c13.8 0 26.3 3.9 26.3 19.9 0 14.8-9.7 20.7-23.4 20.7h-38.8v-40.6zm41 114.9h-41v-48h41.7c16.9 0 27.5 7 27.5 24.9 0.1 17.6-12.7 23.1-28.2 23.1zm176.2-118.3h-70.7v-17.2h70.7v17.2zm27.7 86.6c0-37.3-21.8-68.4-61.4-68.4-38.4 0-64.6 28.9-64.6 66.8 0 39.3 24.7 66.2 64.6 66.2 30.1 0 49.7-13.6 59-42.4h-30.6c-3.3 10.8-16.9 16.5-27.4 16.5-20.3 0-31-11.9-31-32.1h91c0.3-2.1 0.4-4.3 0.4-6.6zm-91.3-15.3c1.1-16.6 12.1-26.9 28.8-26.9 17.4 0 26.2 10.2 27.6 26.9h-56.4z" /></svg></span></a><a title="Pinterest" target="_self" href="https://in.pinterest.com/fewlines4biju/" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-pinterest" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".6" width="500" height="500" fill="#bd081c" /><path class="st1" d="m500.3 310.4v190.2h-227.8l-87.7-88.2 17.2-85.2-43-45s-9-64-7-70 21-49 21-49 40-30 44-30 115.7 9.1 115.7 9.1l167.6 168.1z" /><path class="st2" d="m257.5 115.4c-61.4 0-122.1 40.9-122.1 107.2 0 42.1 23.7 66.1 38.1 66.1 5.9 0 9.3-16.5 9.3-21.2 0-5.6-14.2-17.4-14.2-40.6 0-48.1 36.6-82.3 84-82.3 40.8 0 70.9 23.2 70.9 65.7 0 31.8-12.8 91.4-54.1 91.4-14.9 0-27.7-10.8-27.7-26.2 0-22.6 15.8-44.5 15.8-67.9 0-39.6-56.2-32.4-56.2 15.4 0 10.1 1.3 21.2 5.7 30.4-8.3 35.6-25.1 88.5-25.1 125.2 0 11.3 1.6 22.4 2.7 33.8 2 2.3 1 2 4.1 0.9 30.2-41.3 29.1-49.4 42.7-103.4 7.4 14 26.4 21.6 41.5 21.6 63.6 0 92.1-62 92.1-117.8 0.2-59.5-51.1-98.3-107.5-98.3z" /></svg></span></a><a title="Twitter" target="_self" href="https://twitter.com/fewlines4biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span></a><a title="Whatsapp" target="_self" href="https://wa.me/+919916854253" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500.7" xml:space="preserve"><rect x="-0.9" y="0.2" class="st0" width="500" height="500" fill="#25d366" />
<path class="st1" d="M499.1,304.9v195.3H225.9L118.6,393.4l0.1-0.2l13-35.5l11.2-27.7l9.4-2L138,308.2l-5-15l-4-30l-3-18l7-28  l13-26.1l18-25.9l23-20l37-15h76l41.9,17.1l22.6,22.7c0,0,0,0,0,0L499.1,304.9z" /><path fill="#25d366" class="st2" d="M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1c-3.1-1.2-5.4-1.7-7.7,1.7   c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7c1.1-2.3,0.6-4.3-0.3-6   c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2c-3.1,3.5-12,11.7-12,28.5   c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6c6.6-1,20.2-8.3,23-16.3   C326.2,294.9,326.2,288.1,325.3,286.7z M325.3,286.7c-0.8-1.5-3.1-2.4-6.5-4.1c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3C326.2,294.9,326.2,288.1,325.3,286.7z M364.6,170C364.6,170,364.6,170,364.6,170   c-3.5-4.5-7.3-8.7-11.3-12.7c-25.8-25.9-60.2-40.1-96.7-40.1c-75.4,0-136.8,61.4-136.8,136.8c0,24.1,6.3,47.6,18.2,68.4l-19.4,70.9   l0.1,0l72.4-19c20,10.9,42.4,16.6,65.4,16.6h0.1c75.3,0,138.1-61.4,138.1-136.8C394.6,223.2,383.5,194,364.6,170z M256.5,367.8   c-20.5,0-40.5-5.5-57.9-15.8l-4.1-2.5l-43,11.3l11.5-41.9l-2.7-4.3c-11.4-18.1-17.4-39-17.4-60.5c0-62.7,51-113.7,113.7-113.7   c30.4,0,58.9,11.8,80.3,33.3s34.6,50,34.6,80.4C371.5,316.7,319.2,367.8,256.5,367.8z M318.9,282.6c-3.4-1.7-20.2-10-23.3-11.1   c-3.1-1.2-5.4-1.7-7.7,1.7c-2.3,3.5-8.8,11.1-10.8,13.4c-2,2.3-4,2.6-7.4,0.9c-20.1-10-33.3-17.9-46.5-40.7c-3.5-6,3.5-5.6,10-18.7   c1.1-2.3,0.6-4.3-0.3-6c-0.9-1.7-7.7-18.5-10.5-25.4c-2.8-6.7-5.6-5.7-7.7-5.9c-2-0.1-4.2-0.1-6.5-0.1c-2.3,0-6,0.9-9.1,4.2   c-3.1,3.5-12,11.7-12,28.5c0,16.8,12.3,33.1,13.9,35.4c1.7,2.3,24.1,36.8,58.4,51.6c21.7,9.4,30.2,10.2,41,8.6   c6.6-1,20.2-8.3,23-16.3c2.8-8,2.8-14.8,2-16.3C324.5,285.1,322.3,284.3,318.9,282.6z" /></svg></span></a><a title="Facebook" target="_self" href="https://www.facebook.com/Fewlines4Biju" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-facebook" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.3" y=".3" width="500" height="500" fill="#3b5998" /><polygon class="st1" points="499.7 292.6 499.7 500.3 331.4 500.3 219.8 388.7 221.6 385.3 223.7 308.6 178.3 264.9 219.7 233.9 249.7 138.6 321.1 113.9" /><path class="st2" d="M219.8,388.7V264.9h-41.5v-49.2h41.5V177c0-42.1,25.7-65,63.3-65c18,0,33.5,1.4,38,1.9v44H295  c-20.4,0-24.4,9.7-24.4,24v33.9h46.1l-6.3,49.2h-39.8v123.8" /></svg></span></a><a title="Youtube" target="_self" href="https://www.youtube.com/@SPGuides?sub_confirmation=1" rel="nofollow noopener" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.spguides.com/sharepoint-customization/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://www.youtube.com/embed/hyAsB0kTpoE" medium="video" width="1280" height="720">
			<media:player url="https://www.youtube.com/embed/hyAsB0kTpoE" />
			<media:title type="plain">How to Customize a SharePoint Online Team Site or Communication Site [2024]</media:title>
			<media:description type="html"><![CDATA[In today&#039;s video I have explained in detail how to customize a SharePoint Online team site as well as a communication site. Here, I have explained about:1. C...]]></media:description>
			<media:thumbnail url="https://www.spguides.com/wp-content/uploads/2024/01/how-to-customize-SharePoint-Online-site.jpg" />
			<media:rating scheme="urn:simple">nonadult</media:rating>
		</media:content>
	</item>
	</channel>
</rss>
