In this Dataverse tutorial, I will show you how to create a Dataverse table step-by-step using different methods like Copilot and Blank table. Also, I will explain how to add various column types such as Text, Choice, Lookup, and more.
This guide will help you get started with the Dataverse table easily, even if you’re new to Power Apps. Follow along to build your own custom table and structure your data the right way.
Table in Microsoft Dataverse
In Microsoft Dataverse, a table is used to store data, much like a table in Excel or a list in SharePoint. When you create a table in Dataverse, you’re defining a place to store business data that you can use across your Power Apps, Power Automate flows, and even Power BI reports.
Each table contains columns (also known as fields) and rows (also referred to as records). You can define the type of data each column will store, such as text, number, date, choice, lookup, etc.
For example:
If you’re building an app to track customer feedback, you might create a table called Customer Feedback, and add columns like Customer Name, Email, Feedback Date, Rating, and Comments.

Types of Tables in Dataverse
Microsoft Dataverse supports different types of tables depending on your business needs. Here are the main ones:
- Standard Tables: These are out-of-the-box tables provided by Dataverse. You can use them as-is or customize them as needed.
Examples include: Account, Contact, Email, Case, etc.
Note:
Most Power Apps use standard tables for common business data. No special configuration or licensing is needed.
- Activity Tables: These are a special type of standard table used to track time-based actions, like appointments, phone calls, tasks, and emails.
All activity tables share a standard structure and are part of the Activity table group.
Examples include: Email, Appointment, Phone Call, Task, etc.
Read More: Add Copilot Studio Knowledge Files Using Power Automate
Tip:
Use activity tables when you want to store interactions or communication history with users or customers.
- Virtual tables allow you to display data from external sources (like SQL Server, SharePoint, or Azure) inside Dataverse without storing the data in Dataverse itself.
The table looks and behaves like a normal Dataverse table in apps, but the data stays in the external system.
Note:
Use virtual tables when you need real-time access to external data without duplicating it in Dataverse.
- Elastic Tables: Elastic tables are optimized for handling high-volume, time-series, or log-type data. They’re designed to scale automatically and support massive amounts of data.
Elastic tables utilize a pay-as-you-go storage model, making them ideal for scenarios such as IoT data, telemetry, or audit logs.
Note:
These tables are perfect when you expect a large volume of write-heavy operations.

Check Out: Create Multi Agent in Copilot Studio
Microsoft Dataverse Table Data Types
When you create columns in a Microsoft Dataverse table, you need to select the right data type based on the kind of information you want to store. Dataverse offers a wide range of column types to handle everything from simple text to complex relationships and file uploads.
Here is a complete list of all Dataverse column data types you can use:
| Data Type | Description |
|---|---|
| Text | Stores a single line of text. |
| Text Area | Stores multiple lines of plain text. |
| Rich Text | Stores formatted text with bold, italics, links, etc. |
| Stores email addresses with validation. | |
| Phone Number | Stores phone numbers. |
| Ticker Symbol | Stores stock ticker symbols. |
| URL | Stores web URLs. |
| Whole Number | Stores integers without decimals. |
| Decimal | Stores exact numeric values with decimals. |
| Float | Stores approximate numeric values for performance-heavy data. |
| Language Code | Stores language codes supported by Microsoft. |
| Duration | Stores time intervals in minutes. |
| Time Zone | Stores time zone selections. |
| Date and Time | Stores date and time together. |
| Date Only | Stores only the date portion. |
| Lookup | Creates a relationship to another Dataverse table. |
| Customer | Special lookup to either the Account or Contact table. |
| Choice | Stores a value from a predefined dropdown list. |
| Yes/No | Stores a boolean value (true/false). |
| Currency | Stores financial values with currency formatting. |
| Autonumber | Automatically generates a unique value for each row. |
| File | Allows uploading one file per record. |
| Image | Allows uploading one image per record. |
| Formula | Calculates values using Power Fx expressions. |

Create a Dataverse Table
Let’s say you’re building a simple HR application using Power Apps. You want to store employee details and also track the departments to which each employee belongs.
To do this, you’ll need two Dataverse tables:
- Employee Table – stores employee details like name, email, joining date, and department.
- Department Table – stores department names and managers.
Different Ways to Create a Dataverse Table
Dataverse gives you multiple ways to create a table depending on your comfort level and data source:
| Method | Description |
|---|---|
| Get started with Copilot | Use natural language to create tables and columns quickly. |
| Start with a blank table | Manually define the table structure from scratch. |
| Create with Excel or .CSV file | Automatically generate a table by uploading a spreadsheet or CSV. |
| Create with SharePoint list | Import structure and data from an existing SharePoint list. |
| Import | Use the legacy data import wizard for more control over the import process. |

In this tutorial, I’ll cover the first two methods, Copilot and Blank Table.
We’ll use Copilot to create the Employee table, and start with a blank table to create the Department table in Microsoft Dataverse.
Get Started with Copilot in Microsoft Dataverse
With Copilot, you can describe your table in plain English, and Power Apps will automatically build it for you.
Now follow the below steps:
- Open Power Apps Maker Portal. In the left pane, click on Tables -> Select Get started with Copilot.

- In the textbox, type a description like:
Create a table to store employee records with Full Name, Email, Department, Joining Date, and Manager.
- Click Generate.

- Copilot will suggest a table structure. Review and click Save and exit.

Your new table will be created with the columns you described.

You can edit the table or add more columns later if needed.
Learn: Create Autonomous Agents in Copilot Studio
Start with a Blank Table in Microsoft Dataverse
If you prefer full control, you can manually create the table and define each column yourself.
Follow the below steps:
- From the same Power Apps Maker Portal, go to Tables. Choose Start with a blank table.

- Fill in the details:
- Display Name: Department
- Plural Name: Departments

- Then click on + New column, provide the Display name, and select the required data type:
| Column Name | Data Type | Notes |
|---|---|---|
| Department Name | Text | Primary column (default) |
| Department Code | Text | Unique code for each dept |
| Manager Name | Text | Name of the department head |
- Click Save and exit once you’ve added all columns.

This way you can create a table in Microsoft Dataverse.
More: Create an Agent Flow Using Designer in Copilot Studio
Add Columns to an Existing Dataverse Table
Once your Dataverse table is created, you can always add more columns to capture additional information. Here, I’ll show you how to add individual columns to your tables step by step.
Add Designation (Text) to Employee Table in Dataverse
- Go to Power Apps Maker Portal. From the left menu, click Tables.
- Select the Employee table. Click on the + (New Columns).

- Set the following:
- Display Name: Designation
- Data Type: Text
- Leave all other settings as default
- Click Save.

The “Designation” column is now added to your Employee table.
Check Out: Create a New Agent Using Microsoft Copilot Studio
Add Salary (Currency) to Employee Table in Dataverse
- Open the Employee table from the Tables list.
- Set the following:
- Display Name: Salary
- Data Type: Currency
- Leave all other settings as default.
- Click Save.

The Salary column has been successfully added.
Read: Create an Agent Flow With Natural Language in Copilot Studio
Add Is Active (Yes/No) to Employee Table in Dataverse
- In the same Employee table, go to the Columns tab.
- Enter:
- Display Name: Is Active
- Data Type: Yes/No
- Click Save.

You’ve now added a Yes/No column to track active employees.
Add Employment Type (Choice) to Employee Table in Dataverse
- Open the Employee table. Click the New Columns.
- Enter:
- Display Name: Employment Type
- Data Type: Choice
- Sync with global choice? select NO.
- Add these choices:
- Full-Time
- Part-Time
- Contract
- Click Save to create the choice set.

You’ve now added a drop-down choice column to your Employee table.
Add Department (Lookup) to Employee Table in Dataverse
We want to link each employee to their department using a Lookup column that points to the Department table.
- From the Employee table, go to the Columns tab.
- Set the following:
- Display Name: Department
- Data Type: Lookup
- In the Related Table dropdown, select Department.
- Keep all other settings default.
- Click Save.

Dataverse Table Ownership
When you create a table in Dataverse, you must choose who owns the data in that table. This decision impacts how security and access control are applied.
There are two types of ownership:
- User or Team-Owned Table
- Data is owned by individual users or teams.
- Ideal for business scenarios where record-level security is important (e.g., each employee can only view their own records).
- You can control who can read, update, or delete each row.
- Organization-Owned Table
- All data is owned by the organization.
- Best for reference or configuration tables (like countries, departments, etc.).
- No record-level permissions, access is controlled at the table level.
If you want to apply row-level security, always go for User or Team-owned tables.
Dataverse Table Permissions (Security Roles)
Dataverse uses security roles to manage what users can do with tables and their data. You can define what actions are allowed at both the table level and row level.
Common permissions include:
- Create – Add new records
- Read – View records
- Write – Edit records
- Delete – Remove records
- Append / Append To – Link related records (used with Lookup columns)
- Share / Assign – Share access or reassign ownership
In this Power Apps Dataverse tutorial, you learned how to create a custom table step-by-step using Copilot and the blank table method. You also saw how to add different types of Dataverse columns, such as Text, Currency, Yes/No, Choice, and Lookup. Additionally, we covered important topics such as table ownership and permissions.
Additionally, you may find the following Dataverse interesting tutorials:
- Get Dataverse Created by in Power Automate
- Create a Dataverse Table from Excel or CSV in Power Apps
- Update a Row in Dataverse Using Power Automate
- Get a Row By ID From Dataverse Using Power Automate
- Count Rows From Dataverse Table Using Power Automate

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (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 training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.
What role do you need to create tables. That option is currently grayed out for me. I need to build a flow to archive data but I need to create the table.