Connect Dataverse
Bind your portal to live Microsoft Dataverse tables. You provide a per-workspace Entra ID app; we never see your tenant's master credentials.
1. Create an Entra ID app registration
- In the Azure portal, open Microsoft Entra ID → App registrations → New registration.
- Name it something like
MigrateTo · <Workspace>. - Accounts in this organizational directory only is fine.
- No redirect URI is required for server-to-server.
2. Add API permissions
- Open API permissions → Add a permission → Dynamics CRM.
- Choose Application permissions → user_impersonation.
- Click Grant admin consent.
3. Create a client secret
- Open Certificates & secrets → Client secrets → New client secret.
- Set a 12- or 24-month expiry and copy the secret value (not the ID) immediately.
4. Create the Dataverse application user
- Open Power Platform admin centre → your environment → Settings → Users + permissions → Application users.
- Click New app user, pick the app registration you just made, assign a security role with read access to the tables you want to bind.
5. Add the connection in MigrateTo
- Open
Settings → Integrations → Dataverse. - Paste the environment URL (for example
https://contoso.crm.dynamics.com), tenant ID, client ID, and client secret. - Click Test connection. We call
/api/data/v9.2/WhoAmIwith a client-credentials token and confirm a 200.
Secret storage
Client secrets are encrypted at rest with a workspace-scoped key and never returned to the client after save. To rotate, paste a new value and click Save.
Sync tables
After connecting, click Sync tables. We pull table and column metadata into our schema cache so the mapping canvas can offer them without round-trips.
Supported column types
- String, Multiline text, URL, Email, Phone
- Integer, Decimal, Money, Percent
- Boolean, Choice (option set), Multi-select choice
- DateTime (date-only and full)
- Lookup → ID + primary-name field
- Image (binary attachments → exported as web files)
What we generate at runtime
{% fetchxml records %}
<fetch top="20">
<entity name="cr1f5_articles">
<attribute name="cr1f5_title" />
<attribute name="cr1f5_summary" />
</entity>
</fetch>
{% endfetchxml %}Was this page helpful?Send feedback →