Skip to main content

Command Palette

Search for a command to run...

Building a Golf Course Booking Agent with Dataverse, Coding Agents & Copilot Studio

Published
β€’5 min read
Building a Golf Course Booking Agent with Dataverse, Coding Agents & Copilot Studio

What if you could build a complete enterprise booking system β€” data model, business logic, and a conversational AI agent β€” without ever opening a form designer or writing XML by hand?

That's exactly what I set out to do. In this walkthrough, I built a Golf Course Booking Agent from scratch using the Dataverse MCP Server plugin for coding agents, GitHub Copilot CLI, and Microsoft Copilot Studio. The entire solution was driven by natural language prompts.

πŸŽ₯ Watch the Full Walkthrough

https://youtu.be/IRrnzRgOMgI?si=M6O1wqndEBplo_TO

The Problem

Building Dataverse solutions the traditional way means a lot of clicking through the Power Apps maker portal β€” creating tables, adding columns, setting up relationships, configuring forms and views, and then wiring up agents. It works, but it's slow and tedious, especially when you already know what you want.

I wanted to see how far you could push agentic development β€” letting AI do the heavy lifting while I focused on what I wanted to build rather than how to build it.

What I Built

The solution is a complete golf course booking system called GolfCourseAgent, with the following data model:

Golf Membership ◄── Golf Customer ◄── Tee Time Booking ──► Tee Time
       β–²                                    β”‚
       └────────────────────────────────────└──► Golf Rate

The Tables

Table Purpose
Golf Membership Tracks membership records with status (Active / Expired / Suspended)
Golf Customer Customer contact info linked to memberships
Golf Rate Time-based pricing (Peak / Off-Peak)
Tee Time Available tee time slots
Tee Time Booking Booking records linking customers, tee times, rates, and memberships

The Agent

On top of the data layer, I created a Copilot Studio agent (the "Zava Golf Booking Agent") that lets users book tee times, look up availability, and manage their bookings β€” all through natural language conversation.

The Stack

Here's what made this possible:

  • GitHub Copilot CLI β€” My coding partner in the terminal. I described what I wanted and it generated the Dataverse solution artifacts.
  • Dataverse MCP Server β€” The bridge between the coding agent and my Dataverse environment. This plugin lets AI tools read and write Dataverse metadata (tables, columns, relationships, forms, views) directly.
  • Copilot Studio β€” Where the conversational agent comes to life, connected to the Dataverse tables via the Model Context Protocol (MCP).
  • PAC CLI β€” For solution export, import, and deployment automation.

How It Works

The workflow is straightforward:

  1. Describe what you want β€” I used natural language prompts in the terminal to tell the coding agent what tables, columns, and relationships to create.
  2. The agent builds it β€” Using the Dataverse MCP Server, the agent creates the solution components directly in the environment.
  3. Pull to source control β€” I exported and unpacked the solution into a Git repo for version control.
  4. Wire up the Copilot agent β€” In Copilot Studio, I connected the agent to the Dataverse tables so it could query and create bookings conversationally.

No form designer. No clicking through column definitions. No hand-writing FetchXML or FormXML.

Key Takeaways

πŸš€ Speed

What would normally take hours of clicking through the maker portal took minutes with natural language prompts. The coding agent handled table creation, relationships, option sets, forms, and views β€” all from the command line.

🎯 Precision

The Dataverse MCP Server gives the coding agent real-time access to environment metadata. It doesn't hallucinate table names or column types β€” it reads what's actually there and builds on top of it.

πŸ”„ Source Control from Day One

By pulling the solution into Git immediately, every change is tracked. The unpacked solution format means you get meaningful diffs on tables, forms, and views β€” not just a binary zip.

πŸ€– End-to-End Agent Experience

The real magic is connecting it all to Copilot Studio. The booking agent doesn't just query data β€” it understands the domain. Ask it to "book a tee time for Saturday morning" and it knows how to find availability, check rates, and create the booking record.

Try It Yourself

The full demo is open source on GitHub:

πŸ‘‰ kewear/dataverse-golf-demo

The repo includes:

  • The complete unpacked Dataverse solution
  • Python helper scripts for auth, setup, and data seeding
  • Everything you need to import and run it in your own environment

What's Next

This is just the beginning. I'm exploring how coding agents + MCP can handle increasingly complex scenarios β€” business rules, plugins, security roles, and multi-environment ALM. If you're interested in agentic development on the Power Platform, subscribe to the channel and follow along.


What do you think β€” is natural language the future of low-code development? Drop a comment below or reach out on YouTube. I'd love to hear how you'd use this in your own projects.


Kent Weare is a Program Manager on the Agents and Apps team at Microsoft, focused on Agentic Business Process Automation. Follow along at The Agent Frontier for more deep dives into Copilot Studio, Dataverse, and AI-powered workflows.