Dataverse Multi-Environment Pro Manager
Manage Environments (Unlimited)
Single Record CRUD – ✅ **Fully Functional**
Perform Read, Create, Update, and Delete operations on a single Dataverse record. For **Update/Create**, provide the record data as a **JSON payload** in the Query/Data box. For **Read/Delete**, provide the **Record GUID** or OData query.
Results
Bulk Data Operations (Batch API)
Use the Batch API for bulk creation (POST) by uploading JSON files or providing a manual payload. **Functionality coming soon.**
Bulk Results
AI Voice & Prompted Data Ingestion
Use a natural language prompt or voice command to describe the data you want to create. The AI will generate the required JSON payload for ingestion. **Functionality coming soon.**
AI-Generated Payload (JSON)
Data Analysis & Visualization – ✅ **Fully Functional**
Fetch and visualize data using advanced OData queries. Queries can be run on tables across **unlimited environments**.
Analysis Summary
Visualization
FetchXML & Advanced Web API Queries – ✅ **Fully Functional**
Execute complex, SQL-like queries using Dataverse **FetchXML** or advanced OData parameters across **unlimited environments**.
Query Results
SQL Query (Experimental) – ✅ **Functional with Joins**
Visually build a standard **SQL SELECT** statement which is then converted to Dataverse OData for execution. Drag a table from the sidebar to the select box below.
1. Fields to Select (SELECT)
Add fields (e.g., name, accountid).
2. Filter Conditions (WHERE)
Add conditions (e.g., name = ‘Contoso’).
3. Sorting (ORDER BY)
Add order by clauses (e.g., createdon DESC).
Generated SQL Statement (Copy this to SQL Coding Tab)
Converted OData Query (Path)
Conversion Pending...
Query Results
Raw SQL/TSQL Query Editor
Run standard SQL/TSQL against Dataverse tables. Supports **SELECT** (for query) with multiple **JOINs** (n:1 lookups). **Cross-environment joins are not supported** by the underlying client-side OData API.
Converted Dataverse API Query (OData Path)
Conversion Pending...
Query Results
AI Support & Analysis – ✅ **Fully Functional**
Get AI-powered insights about your Dataverse environments using various AI providers and models. **Drag and Drop** tables from the sidebar for automatic metadata injection!
Drop tables from the sidebar here to provide context.
AI Results
📚 Dataverse Pro Manager Guide & Instructions – ✅ **Updated**
Getting Started (3 Steps)
This tool is a client-side utility running from a local HTML file and requires cross-origin requests to Dataverse and Microsoft login endpoints. You **MUST** run your browser with web security disabled.
Launch Commands (Use your actual browser executable path):
| Browser/OS | Command |
|---|---|
| Windows (Chrome) | chrome.exe --user-data-dir="C:\ChromeDev" --disable-web-security |
| macOS (Chrome) | open -n -a "Google Chrome" --args --user-data-dir="/tmp/ChromeDev" --disable-web-security |
| Windows (Egde) | msedge.exe --user-data-dir="C:\EdgeDev" --disable-web-security |
Navigate to the **Environments** tab. Click **”➕ Add New Environment”**. The tool uses the Microsoft OAuth 2.0 Device Code Flow (supporting MFA).
The status will show **✅ Connected** upon success. You can add as many environments as needed.
In the **Environments** tab, click **”🔄 Load All Tables”** to fetch entity metadata (table definitions) for all connected environments. The loaded tables will populate the **Table Explorer** sidebar, allowing you to use them in all query tabs via selection or drag-and-drop.
Feature Overview (Fully Functional Tabs)
- **CRUD Operations**: **Fully functional.** Requires a GUID for Read/Update/Delete or a JSON payload for Create.
- **Data Analysis**: **Fully functional.** Run OData queries and visualize the results with a chart based on a user-specified or inferred field.
- **FetchXML/Advanced Query**: **Fully functional.** Execute complex Dataverse queries using native FetchXML or advanced OData path parameters.
- **SQL Query (Experimental)**: **Fully functional.** Converts standard SQL (SELECT, WHERE, ORDER BY, LIMIT) including multiple **JOINs** (translated to OData `$expand`) into live Dataverse OData queries. Also supports basic **INSERT**.
- **AI Support**: **Fully functional.** Get AI-powered insights using various AI providers (configure API keys in Settings).
Complex Data Ingestion: Weekly 100K+ Rows with Relationships
Step-by-step guide for ingesting 100,000+ rows across 700 columns while maintaining relationships and removing duplicates.
Organize your JSON files with relationship data. Ensure each record includes lookup field references:
// Example record with relationships
{
"name": "Customer Account 123",
"revenue": 500000,
"primarycontactid@odata.bind": "/contacts(abc123-4567-...)",
"ownerid@odata.bind": "/systemusers(def456-7890-...)",
"parentaccountid@odata.bind": "/accounts(ghi789-0123-...)"
}
Tip: Use the lookup format fieldname@odata.bind for relationships.
Before ingestion, identify duplicate records using the Analysis tab:
- Go to Data Analysis tab
- Select your target table and environment
- Run query:
$select=name,email&$top=1000 - Visualize unique values to identify duplicate patterns
Use AI Support to generate deduplication logic:
- Go to AI Support tab
- Drag your target table to context
- Use prompt: “Generate FetchXML to find duplicates in [table] based on fields [field1, field2, field3]”
- The AI will generate deduplication queries
Use the Bulk Data Operations tab with this approach:
// Batch API payload with duplicate checking
{
"requests": [
{
"id": "1",
"method": "POST",
"url": "/accounts",
"headers": {"Prefer": "return=representation"},
"body": {
"name": "Unique Customer 1",
"email": "unique1@example.com"
}
},
{
"id": "2",
"method": "GET",
"url": "/accounts?$filter=email eq 'existing@example.com'"
}
]
}
Process large datasets in manageable chunks:
- Split 100K records into batches of 1000
- Use Bulk Data Operations → Manual/File Ingestion
- Enable AI-Powered Ingestion for deduplication
- Monitor results in real-time
// Recommended batch structure
Batch 1: 1-1000 records (validate relationships)
Batch 2: 1001-2000 records (check for cross-batch duplicates)
Continue until all 100K processed
After ingestion, validate all relationships:
- Use SQL Query tab with JOIN statements
- Run:
SELECT a.name, c.fullname FROM account a JOIN contact c ON a.primarycontactid = c.contactid - Check for broken relationships in results
- Use visualization to spot data anomalies
Use the History tab to review all operations:
- Check for failed API calls
- Monitor performance metrics
- Identify patterns for optimization
- Adjust batch sizes based on performance
- Always test with small batches first (100 records)
- Use transaction logging to track progress
- Implement retry logic for failed requests
- Monitor API limits and throttle accordingly
- Keep backup of original files until verification complete
Sample Codes for Dataverse Queries
Copy and use these sample queries in the respective tabs. Replace table and field names with your actual schema.
SQL Query Examples
OData Query Examples
FetchXML Examples
Core Dataverse API Information
This is the technical information used by the tool to connect to Dataverse.
Web API Endpoint
[Org URL]/api/data/v9.2/
FetchXML Endpoint (Example)
/accounts?fetchXml=...
OAuth Authority
https://login.microsoftonline.com/common/oauth2/v2.0
Client ID (Public)
51f81489-12ee-4a9e-aaae-a2591f45987d
Microsoft’s public client ID for Power Platform.
API History & Audit Log
Review all executed API calls, their status, and payload/query details. Mark favorites for quick access.
No API calls logged yet.
No favorite history items yet.
Application Settings
Local Storage Management
All environment configurations, tables, and history are stored locally in your browser’s Local Storage.
Requires a page refresh after clearing.
Configure AI Service Access (For AI & Bulk Ingestion Tabs)
Google Gemini API
OpenAI API (GPT)
Microsoft Copilot API
Anthropic Claude API
DeepSeek AI
Perplexity API
Mistral AI
Cohere API
Custom AI Provider
For any other LLM API (requires custom URL/header implementation)
