What is a Profile?
A profile represents one synchronization configuration — connecting one Dataverse environment to one Azure SQL database. Each profile contains:
• Source: Your Dataverse environment connection
• Target: Your Azure SQL database connection
• Tables (Routes): The Dataverse tables selected for synchronization
• Settings: Delete mode, quiet time, and scheduling preferences
Most users have one profile. Additional profiles are useful if you need to sync from multiple Dataverse environments or to multiple target databases.
Profiles List
The Profiles page shows all synchronization profiles in your organization. Click '+ Create Profile' to add a new profile.
The Profiles list displays the following information for each profile:
| Column | Description |
| Name | The name you assigned to the profile. |
| Region | The Azure region where synchronization operations are executed. |
| Last Sync | How long ago the last synchronization ran (e.g., '32m ago'). |
| Next Sync | When the next scheduled synchronization will run (e.g., 'in 27 mins'). |
| Tables | The number of tables configured for synchronization in this profile. |
| Status | Whether the profile is Enabled (actively syncing on schedule) or Disabled (paused). |
| Quiet Time | If configured, shows the quiet time window during which syncs are paused. Shows 'None' if not configured. |
| Edit | Click to open the profile configuration and make changes. |
Create Profile Wizard
When creating a new profile, a guided wizard walks you through the complete setup in 7 steps:
| Step | Name | Description |
| 1 | Profile | Set profile name and select Azure region for synchronization. |
| 2 | Source | Configure your Dataverse connection (URL, Client ID, Client Secret). |
| 3 | Target | Configure your Azure SQL database connection. |
| 4 | Tables | Select which Dataverse tables to synchronize. |
| 5 | Quiet Time | Optionally configure time windows when syncs should be paused. |
| 6 | Delete Mode | Choose how deleted records are handled (Soft Delete or Hard Delete). |
| 7 | Initial Sync | Run the first synchronization to populate your target database. |
Step 1: Profile Details
Enter a descriptive Profile Name that helps you identify this synchronization (e.g., 'Production CRM to Analytics DB').
Select the Region where sync operations will execute. Choose a region close to your Azure SQL database for optimal performance, or based on data residency requirements:
| Region | Azure Location | Best For |
| Canada Central | canadacentral | Canadian data residency |
| East US | eastus2 | US East Coast workloads |
| West US | westus2 | US West Coast workloads |
| UK South | uksouth | UK data residency |
| North Europe | northeurope | EU data residency |
The wizard displays the static NAT IP address for your selected region. Copy this IP and add it to your Azure SQL database firewall allow list before proceeding to ensure connectivity.
Step 2: Configure Source
Enter your Dataverse connection credentials:
| Field | Description |
| Base URL | The HTTPS URL to your Dataverse environment (e.g., https://yourorg.crm.dynamics.com). |
| Client ID | The Application (client) ID from your Azure AD App Registration. |
| Client Secret | The client secret value from your App Registration. This will be stored securely in Azure Key Vault. |
Click 'Test Connection' to verify your credentials. A 'Connection successful' banner confirms Data Mission Sync can connect to your Dataverse environment. You must test successfully before proceeding to the next step.
Step 3: Configure Target
Enter your Azure SQL database connection details:
| ⚠ Warning: After the first sync, the target server, database, and schema cannot be changed. You can still update authentication credentials (Client ID, Client Secret, Tenant ID) via Edit Target if needed. | |
| Field | Description |
| Use source client ID | Checkbox to copy the Client ID from your source configuration. Useful if your App Registration has access to both Dataverse and Azure SQL. You still need to provide Tenant ID and Client Secret. |
| Tenant ID | Your Azure AD (Entra ID) tenant ID. |
| Client ID | The Application (client) ID with access to your Azure SQL database. |
| Client Secret | The client secret for the App Registration. |
| Server | Your Azure SQL server address (e.g., yourserver.database.windows.net). |
| Database | The name of the database where synchronized data will be written. |
| Schema Name | The database schema to use (default: dbo). |
Click 'Test Connection' to verify connectivity. Remember: If your Azure SQL database uses Serverless and has auto-paused, the first test may fail with a 504 error. Wait a few seconds and try again.
Step 4: Select Tables
Search and select one or more Dataverse tables to synchronize. The search field filters tables by display name or logical name. A counter shows how many tables you have selected.
Tables with a warning icon (⚠) require change tracking to be enabled in Dataverse before they can be synchronized. A Dataverse administrator must enable change tracking in the Power Platform Admin Center or make.powerapps.com.
Click 'Finish & Add X Tables' to add your selections and proceed.
| Start with a few key tables (e.g., account, contact) to verify your configuration before adding more. You can always add additional tables later. |
Step 5: Configure Quiet Time
Quiet time is optional but recommended. Configure time windows when scheduled synchronizations will be automatically skipped. This is useful for:
• Maintenance windows when your database may be unavailable
• Peak business hours when you want to minimize load
• Backup periods when database performance may be impacted
• Allowing Azure SQL Serverless databases to auto-pause and reduce costs
All times are in UTC. Select 'Every Day' to apply the window daily, or 'Specific Days' to choose which days of the week. Set the Start Time and End Time for the quiet period. Click '+ Add Quiet Time Block' to add additional windows if needed.
Step 6: Configure Delete Mode
Choose how records deleted in the source system are handled in the target database. This affects data integrity, so choose carefully.
| Mode | Description |
| Soft Delete (Recommended) | Mark records as deleted (IsDeleted = true) but keep them in the database. Best for audit trails and historical data. |
| Hard Delete | Physically remove records from the database when they are deleted in the source. |
Step 7: Run Initial Sync
The final step triggers your first synchronization to populate the target database.
The initial sync will process all selected tables and create the initial data set in your target database. This may take some time depending on the amount of data.
Click 'Trigger Initial Sync' to start the synchronization. This step cannot be skipped — the initial sync must run to complete profile setup. Once triggered, you will be taken to the profile detail page where you can monitor progress.
After the Wizard
After triggering the initial sync, you are taken to the profile detail page. The Run History section at the bottom shows real-time progress of your synchronization.
During the initial sync, tables will show state 'Extracting' while data is being pulled from Dataverse, then 'In Progress' while being applied to Azure SQL. Once complete, the 'Initial Sync Completed' column for each table changes from 'No' to 'Yes'.
The initial sync may take several minutes to hours depending on the number of tables and volume of data. You can navigate away and return later — synchronization continues in the background.
Selecting a Region
Choose the region closest to your Azure SQL database for optimal performance and lowest latency. If you have data residency requirements, select a region that meets your compliance needs. The region cannot be changed after the profile is created.
See Section 6: Reference → Regions & Data Residency for full details on each region including data processing locations.
Profile Status (Enabled/Disabled)
Profiles can be Enabled or Disabled using the toggle on the profile detail page:
• Enabled: Scheduled synchronizations run automatically based on the system schedule (approximately hourly).
• Disabled: The profile is paused and no automatic syncs will run. Useful for temporarily stopping synchronization without deleting the profile configuration.
Disabling a profile does not delete any data already synchronized to your target database. Re-enabling the profile resumes synchronization from where it left off.