top of page

How to Download Documents from Your Canvas App (Dataverse Attachments Made Simple!)

  • Writer: Sivakumar K
    Sivakumar K
  • Oct 13
  • 3 min read

Ever wondered how to let users download files or attachments directly from your Power Apps Canvas app — especially when your data lives inside Dataverse? You’re not alone!


In this step-by-step guide, we’ll walk through exactly how to make that happen


Using Power Fx: for scenarios where the app already has direct access to the file content.


By the end, you’ll know how to handle file types, permissions, and naming the right way — so your users can grab their files with just one click. No messy workarounds, no confusion — just a clean, working download experience inside your app.


Let’s look at a simple example using Power Fx.


Imagine you have a Dataverse table called Profiles, and inside it, there’s a File-type column named Attachment. This column stores files related to each record — it could be a resume, an image, a PDF, or any kind of document.

Now, your goal is to let users download these files directly from the Canvas app with just one click of a button as showin the below image. Sounds simple, right? Let’s understand how this works before we jump into the steps.


Download files
Download files

 Five Key Parts of the Power Fx Download Formula


Before writing the Power Fx formula, it’s important to understand the five key elements that make it work. Each part has a specific purpose — together, they build the URL that Power Apps uses to fetch and download your file from Dataverse.


Part

Description

Example / Notes

1. Download()

The Power Fx function that triggers the download. It wraps the full Dataverse file URL and lets the user download it directly to their device.

Download("File URL")

2. Dataverse Site Address

The base URL of your Dataverse environment. You can find it under Settings → Developer Resources → Environment URL.

3. API

The Web API path that connects to Dataverse data. This tells Power Apps to look inside your Dataverse tables.

/api/data/v9.2/

4. Table Plural Name

The plural logical name of your table (not the display name). It defines which table you’re accessing.

Example: Table Name: Profile → Plural: Profiles → /api/data/v9.2/profiles

5. Table GUID + File Column Logical Name

Identifies the specific record (GUID) and the File-type column (e.g., Attachment). This points Power Fx to the exact file to download.

/api/data/v9.2/profiles(GUID)/Attachment


Step-1: Find your Dataverse Site and API Info


First, open your Dataverse environment and locate the table that contains the file you want to download.

In my case, the table is called Profiles, which has a File-type column named Attachment.

Once you find your table:

  1. Click on the Profiles table (or your specific table name).

  2. Go to the Advanced Tools section.

  3. Select API link to table definition — this opens the Web API reference for your table.

This step helps you confirm the plural name and logical column names, which are required for your Power



Dataverse Table API Link
Dataverse Table API Link

Once you click on the API link to table definition, a new browser tab will open showing your table’s API endpoint.

From the URL in the address bar, copy everything up to v9.2/ — this part is your base API path.



Dataverse API
Dataverse API

Now, paste only the base API path (the part you copied up to v9.2/) into your web browser and hit Enter.

You’ll see a list of all Entity Sets available in your Dataverse environment — these represent your tables in their plural names.


From the list of Entity Sets shown in your browser, you can now see the plural names of all your Dataverse tables.

In my case, I’m looking for the table named Profileses — this is the plural name I’ll use in my Power Fx download formula.


Dataverse Entity Sets
Dataverse Entity Sets

Finally, you need to identify the column where your files are stored.

Navigate to your Dataverse table, switch to the Columns tab, and look for the File-type column that holds your attachments. In my case, this column is called Attachment.

Once you find it, open the column’s properties — here you’ll see the Logical Name of the column (as shown in the image below).


Dataverse Table File type coloumn
Dataverse Table File type coloumn

Awesome—time to stitch everything together into the final Power Fx you can drop on your Download button


Download("https://yourenv.crm.dynamics.com/api/data/v9.2/profiles(" & ThisItem.profileid & ")/attachment/$value")

LowCodeElite is your go-to hub for Microsoft Power Platform, Power Bi, and Low-Code solutions. We share insights, tutorials, and real-world use cases to help makers, consultants, and businesses innovate faster.

© 2025 LowCodeElite. All rights reserved.

bottom of page