web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Dataverse Copilot crea...
Power Apps
Suggested Answer

Dataverse Copilot creates custom tables instead of using standard tables

(2) ShareShare
ReportReport
Posted on by 42

Hello,

I recently experimented with Dataverse Copilot to generate tables automatically, and while the feature is impressive for quickly building a schema, I noticed a limitation regarding standard table reuse.

Scenario

I asked Copilot to create tables for a teacher–student tutoring business. Copilot generated the following tables:

  • Teacher

  • Student

  • Session

  • Enrollment

  • Payment


  •  

While this structure technically works, I expected Copilot to suggest using existing Dataverse standard tables, particularly:

  • Contact (for Teacher and Student)

  • Possibly Activity or Transaction-related tables for payments

 

Instead, Copilot created entirely new custom tables for Teacher and Student.

 

Concern

From a Dataverse and Dynamics 365 architecture best-practice perspective, it is usually recommended to reuse standard tables whenever possible, especially for entities representing people or organizations.

Using the Contact table would provide several advantages:

  • Built-in integrations (email, phone, activities)

  • Compatibility with Dynamics 365 apps

  • Better reporting and analytics

  • Reduced schema duplication

  • Easier extensibility


  •  

Question

Is there currently a way to guide Copilot to:

  • Prefer standard Dataverse tables (e.g., Contact, Account)

  • Extend existing tables instead of creating new ones?


  •  

For example, in this case I would expect something like:

  • Contact → Teacher / Student (with a role column)

  • Session → Custom table

  • Enrollment → Custom table

  • Payment → Custom table


  •  

Feedback

It would be great if Copilot could:

  1. Detect when an entity represents a person or organization

  2. Suggest using Contact or Account

  3. Recommend extending standard tables instead of creating new ones


  4.  

Has anyone experienced similar behavior with Dataverse Copilot?

 

Would love to hear how others are approaching this.

 

Thanks!

dataverse.png
I have the same question (0)
  • Suggested answer
    MS.Ragavendar Profile Picture
    6,334 Super User 2026 Season 1 on at
     
    Copilot in Power Apps defaults to creating new Dataverse tables, even if you ask it to use existing data.
     
    To use existing Dataverse tables, SharePoint lists, or Excel files, you must use the "Start with data" connector option to select the data source first.
     
    ✅If this helped, please Accept as Solution to help others ❤️ A Like is appreciated 🏷️ Tag @MS.Ragavendar for follow-ups.
  • Suggested answer
    11manish Profile Picture
    853 on at
    Your experience highlights a current "limitation" in how Dataverse Copilot handles architectural best practices versus rapid prototyping. By default, Copilot favors speed and literal interpretation (creating a new custom table for a new noun) over reusability and extensibility (mapping a noun to an existing standard table).
    However, there are specific ways to "guide" Copilot to respect your existing schema and architectural standards.
     
    1. The "Pre-Discovery" Prompting Technique
    Copilot’s initial generation is heavily influenced by the "scope" you define. To force it to look at your existing tables, you must explicitly mention them in your opening prompt.
    • Weak Prompt: "Create a teacher-student tutoring database." (Result: 5 brand new tables).
    • Strong Architecture Prompt: "Create a tutoring database. Use the Contact table to represent both Teachers and Students. Create a Session table to link them and a Payment table for transactions."
    2. Using the ERD Designer for "Hybrid" Modeling
    Microsoft recently released a feature specifically designed to combat the "duplicate table" problem. In the Entity Relationship Diagram (ERD) view, you can now:
    • Drag-and-Drop Existing Tables: Instead of letting Copilot hallucinate a new "Teacher" table, you can manually add the Contact table to your ERD.
    • Create Lookups: You can then use Copilot to "create a lookup from my new Session table to the existing Contact table".
    3. "Grounding" with Metadata and Synonyms
    If you are using Copilot Studio to build an agent over this data, you can improve its "intelligence" regarding your tables by adding synonyms.
    • Go to the Contact table.
    • Add synonyms like "Teacher," "Student," "Tutor," and "Pupil" in the column descriptions or metadata.
    • This helps Copilot understand that when a user asks about a "Teacher," it should be looking at a filtered view of the Contact table rather than suggesting a new one
    Best Practices
    • The "Party" Rule: For any person or organization, always extend Contact or Account.
    • The "Activity" Rule: For events like "Tutoring Sessions," consider extending the Activity table to get built-in "Start/End Time" and "Organizer" logic.
    • Manual Correction: Don't be afraid to tell Copilot, "Actually, delete the Teacher table and add a 'Role' column to the Contact table instead." It responds well to corrective instructions.
  • Suggested answer
    Valantis Profile Picture
    2,535 on at
     

    Using Dataverse Copilot to generate tables from natural language, I’ve observed that when entities represent people/organizations, Copilot creates new custom tables (for example, Teacher, Student) instead of reusing standard tables like Contact/Account.

     

    Docs recommend reusing standard tables where they fit and customizing/renaming them (for example, Contact as “Individual”), but the Copilot data workspace favors new tables and has relationship limits when working with existing tables:

     

     

    Best regards,

    Valantis

     

    ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.

    ❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).

    🏷️ For follow-ups  @Valantis.

    📝 https://valantisond365.com/

     

  • timl Profile Picture
    36,774 Super User 2026 Season 1 on at
     
    The way I would do this is to use the table designer inside a Plan.
     
    Within the context of a plan, you can use the 'replace with existing' menu item to replace the table with the standard contact table.

     
     
     
     
    A limitation is the a single table currently can't be displayed twice in the designer.  So it doesn't support a data model where Teacher and Student records are stored in the Contact table, and the Contact table extended to include a Student/Teacher role column.

    Also, if you use the plan designer chat to specify "use standard tables where possible", the resulting design will use the built in Contact table, rather than create a new table (I just tried it and it works for me).  
     
  • Valantis Profile Picture
    2,535 on at

    Hi @Sajeda_Sultana,

    Just wanted to check in and see if everything is working now. If you still need any help, feel free to let me know.

    Also, if the issue is resolved, it would be great if you could mark the answer as solved so others with the same question can find it easily.

     

    Thanks and have a great day!

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 530

#2
WarrenBelz Profile Picture

WarrenBelz 459 Most Valuable Professional

#3
Haque Profile Picture

Haque 314

Last 30 days Overall leaderboard