Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
microsoft avatar

Add Dataverse

  • 163 installs
  • 572 repo stars
  • Updated July 28, 2026
  • microsoft/power-platform-skills

Power Apps skill adding Dataverse tables with generated TypeScript models and optional table creation.

About

Power Platform skill for connecting Dataverse to Power Apps code apps. Workflow mirrors SharePoint connector pattern: check memory bank, plan required tables, optionally create new Dataverse tables via Web API, get connection ID, discover available tables, add data sources with power-apps CLI, and configure generated TypeScript models and services. Covers relationship columns, choice fields as integers, lookup references, and build verification. References Dataverse-specific column types and authentication patterns distinct from SharePoint string choice encoding.

  • Dataverse tables added to Power Apps code app with generated TypeScript
  • Optional new table creation via Dataverse Web API
  • power-apps add-data-source CLI for tabular Dataverse connection
  • Choice fields use integer picklist codes unlike SharePoint strings
  • npm run build verification before deploy

Add Dataverse by the numbers

  • 163 all-time installs (skills.sh)
  • Ranked #250 of 923 Databases skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

add-dataverse capabilities & compatibility

Capabilities
add dataverse datasource · create dataverse tables · configure generated services
Works with
azure
Use cases
database · api development
From the docs

What add-dataverse says it does

Adds Dataverse tables to a Power Apps code app with generated TypeScript models and services.
SKILL.md
npx skills add https://github.com/microsoft/power-platform-skills --skill add-dataverse

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs163
repo stars572
Security audit2 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorymicrosoft/power-platform-skills

How do I connect Dataverse tables to my Power Apps code app?

Add Dataverse tables to a Power Apps code app with generated TypeScript models and services, optionally creating new tables.

Who is it for?

Developers building Power Apps code apps against Dataverse entities.

Skip if: SharePoint-only integrations or standalone Dataverse admin without code app.

When should I use this skill?

User needs Dataverse tables, connectors, or new table creation in Power Apps code app.

What you get

Dataverse tables connected, TypeScript services configured, and build passing.

Files

SKILL.mdMarkdownGitHub ↗

📋 Shared Instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md) - Cross-cutting concerns.

References:

  • dataverse-reference.md - Picklist fields, virtual fields, lookups, file/image columns, form patterns (CRITICAL)
  • api-authentication-reference.md - Dataverse API auth, token, publisher prefix
  • table-management-reference.md - Query, create, extend tables and columns
  • data-architecture-reference.md - Relationship types, dependency tiers

Add Dataverse

Two paths: existing tables (skip to Step 5) or new tables (full workflow).

Workflow

1. Plan → 2. Setup API Auth → 3. Review Existing Tables → 4. Create Tables → 5. Add Data Source → 6. Review Generated Files → 7. Build

---

Step 1: Plan

Check memory bank for project context. Ask the user:

1. Which Dataverse table(s) do they need? (e.g., account, contact, cr123_customentity) 2. Do the tables already exist in their environment, or do they need to create new ones?

If tables already exist: Skip to Step 5.

If creating new tables:

  • Ask about the data they need and design an appropriate schema
  • Use standard Dataverse tables when appropriate (contact for people, account for organizations)
  • Build a dependency graph -- see data-architecture-reference.md for tier classification
  • Enter plan mode with EnterPlanMode, present ER model with tables, columns, relationships, and creation order
  • Get approval with ExitPlanMode

Step 2: Setup API Auth (if creating tables)

See api-authentication-reference.md for full details.

az account show   # Verify Azure CLI logged in

# Find your Dataverse environment URL:
# In make.powerapps.com → Settings → Developer resources → Web API endpoint
# It looks like: https://<org-name>.crm.dynamics.com/api/data/v9.2/
# Use the base URL: https://<org-name>.crm.dynamics.com

$api = Initialize-DataverseApi -EnvironmentUrl "https://<org>.crm.dynamics.com"
$headers = $api.Headers
$baseUrl = $api.BaseUrl
$publisherPrefix = $api.PublisherPrefix

Requires System Administrator or System Customizer security role.

Step 3: Review Existing Tables (if creating tables)

Always query existing tables first before creating:

$existingTables = Invoke-RestMethod -Uri "$baseUrl/EntityDefinitions?`$filter=IsCustomEntity eq true&`$select=SchemaName,LogicalName,DisplayName" -Headers $headers

See table-management-reference.md for Find-SimilarTables, Compare-TableSchemas, and Build-TableNameMapping functions.

Present findings to user with AskUserQuestion:

  • Tables that can be reused (already exist with matching columns)
  • Tables that need extension (exist but missing columns)
  • Tables that must be created (no match found)

Step 4: Create Tables (if creating tables)

Get explicit confirmation before creating. Create in dependency order:

  • Tier 0: Reference tables (no dependencies)
  • Tier 1: Primary entities (reference Tier 0)
  • Tier 2: Dependent tables (reference Tier 1)

Use safe functions from table-management-reference.md:

  • New-DataverseTableIfNotExists
  • Add-DataverseColumnIfNotExists
  • Add-DataverseLookupIfNotExists (from data-architecture-reference.md)

Step 5: Add Data Source

For each table:

npx power-apps add-data-source -a dataverse -t <table-logical-name>

Can add multiple tables by running the command for each one.

Step 6: Review Generated Files

The command generates:

  • src/generated/models/{Table}Model.ts -- TypeScript interfaces, plus {Table}FileColumnName, {Table}ImageColumnName, {Table}UploadColumnName union types if the table has file/image columns
  • src/generated/services/{Table}Service.ts -- CRUD methods (create, get, getAll, update, delete) plus upload, downloadFile, downloadImage, deleteFileOrImage if file/image columns exist

Show the user a usage example:

import { AccountsService } from "../generated/services/AccountsService";

const result = await AccountsService.getAll({
  select: ["name", "accountnumber"],
  filter: "statecode eq 0",
  orderBy: ["name asc"],
  top: 50
});
const accounts = result.data || [];

Key rules:

  • Use generated services (e.g., AccountsService.getAll()), not fetch/axios
  • Check result.data for actual data
  • Don't edit generated files unless needed
  • Read [dataverse-reference.md](./references/dataverse-reference.md) before writing any Dataverse code -- picklist fields, virtual fields, lookups, and file/image columns all have critical gotchas

Step 7: Build

npm run build

Fix TypeScript errors before proceeding. Do NOT deploy yet.

Update Memory Bank

Record which tables were added (or created), generated files, and any schema notes.

Related skills

FAQ

How do Dataverse choice fields differ from SharePoint?

Dataverse choice columns use integer picklist codes; SharePoint uses string values in the API.

Can I create new Dataverse tables?

Yes. The skill supports creating new tables via Web API when they do not already exist.

How are TypeScript models generated?

Adding the data source generates models and services in the code app project structure.

Is Add Dataverse safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Databasesdatabases

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.