Skip to main content

Power Pages Manual Config

Experience recommended

Manual configuration is intended for administrators who are comfortable with Power Pages setup, Dataverse security (web roles, site settings, table permissions), and solution lifecycle management.
If you’re new to Power Pages, consider starting with the Power Pages Accelerator in a sandbox, then return to this guide once you’re familiar with the fundamentals.

To integrate Maptaskr Power Maps with an existing Power Pages site, complete these high-level steps:

  1. Add the PCF map control to the relevant Dataverse (model-driven) form in make.powerapps.com.
  2. Configure required Site Settings (Web API allow-list) in Portal Management.
  3. Create required Table Permissions (and link them to a web role) in Portal Management.
  4. Create a helper Web Template, Page Template, and Web Page (user info endpoint).
  5. In the Power Pages designer, enable the code component on the form field.

Before You Begin (Quick Checklist)

Before you begin the manual configuration process you must;

  • Install and activate the Maptaskr Power Maps solution is in your environment before integrating with an existing Power Pages site. This includes a URL entry added to Supported URLs (include custom domain and *.powerappsportals.com if applicable, no trailing slash).
  • Have a target Power Pages site provisioned, and know if you’re on the standard or enhanced data model.
  • Determine the import approach you wish to use: Standard CSV vs Enhanced (Site Component) imports.
  • Confirm who will assign the Web Role to end-user Contacts.
  • Ensure the Basic Form / Multistep Form in Power Pages surfaces the exact Dataverse Main Form you’ll edit.

1. Add the PCF Control to a Form

Power Pages Basic Forms and Multistep Forms are generated from Dataverse Main Forms. To surface a map in your portal, you first add the Maptaskr PCF control to the relevant Main Form in Dataverse. This ensures the map is available when that form is exposed through Power Pages.

Common Pitfall

Make sure you edit the exact Main Form used by your Power Pages form. Adding the control to a different or duplicate form will not surface in the portal.

Steps

  1. Open make.powerapps.com and navigate to the solution containing your target table (entity).

  2. Open the Main Form you intend to use in Power Pages.

  3. Add (or select) the section/tab where the map should appear.

  4. Insert the Maptaskr Power Maps PCF control (Add Control → search “Maptaskr”).

  5. In the control properties, configure:

FieldDescriptionValue Type / ExamplesMandatory?
Configuration Profile IDGUID linking the map to a Configuration Profile (providers, layers, styling). Learn more →36-char GUID, e.g. 00000000-0000-0000-0000-000000000000Yes
Design Width & HeightCSS properties that define the rendered size of the map.Pixels (600px), percentages (100%)Yes
ParametersOptional filters or query string passed to the provider API.JSON or key=value pairsOptional
Additional SettingsDeployment-specific options such as default zoom or center point.Depends on use caseOptional

Power Pages Add PCF

  1. Save and publish the form.

  2. (Optional) Hide the bound field label for a cleaner UI.

Retrieve the Configuration Profile ID

The Configuration Profile ID binds your form’s map to the correct provider, layers, and styling.

  1. Open the Maptaskr Configuration area (Configuration → Profiles).

  2. Copy the Profile record’s GUID from the form or URL.

Format reminder: 00000000-0000-0000-0000-000000000000 (36 characters with hyphens).
Do not include braces {} or the entire URL.

Learn more about Configuration Profiles →

Not Using a Form?

Just like in the Solution Accelerator, you can embed the Maptaskr map control on a Power Pages page without binding it to a Dataverse form. Use this when you want a standalone, interactive map (pan, search, toggle layers, draw shapes) where user interaction does not immediately create or update a record.

You can implement a standalone map in two main ways:

  1. Portal Management (Web Template / Page Content) – Maximum control and reusability. Define a Web Template that outputs the container and any Liquid variables, then reference it via a Page Template.
  2. Power Pages Designer (Edit in VS Code) – Faster iterative changes directly in page content using inline Liquid + HTML.
Choosing an approach

Use the Web Template route if you expect to reuse the same interactive map shell across several pages. Use Designer editing for a one‑off or when prototyping.

In both approaches you’ll: (a) ensure the required Configuration Profile ID is available and (b) render the PCF control container

  1. Go to make.powerpages.microsoft.com → open Portal (Power Pages) Management and navigate to Web Templates.

  2. Create a New Web Template (or open an existing reusable template) and give it a clear name, e.g. Interactive Map.

  3. (If new) Set the Website.

  4. Paste (or update) the markup below. Replace PROFILE_GUID_HERE with the Configuration Profile GUID you copied earlier.

<div class="interactive-map" style="overflow:hidden;">
{% codecomponent
name: mtrcore_MaptaskrPowerPCF.MaptaskrPowerPCF
profileid: 'PROFILE_GUID_HERE'
designHeightOfMap: 'calc(100vh - 184px)'
%}
</div>
Parameters

designHeightOfMap is optional; adjust or remove if you want the height controlled by a surrounding layout. You can also add designWidthOfMap: '100%' if required. Keep the surrounding <div> lightweight—avoid padding that can create scrollbars.

Dynamic profile

You can swap the static GUID for a Liquid variable if you render different profiles per user role, e.g. {% assign profile = user.roles contains 'Sales Manager' | ternary: 'GUID_A','GUID_B' %} then set profileid: '{{ profile }}'.

  1. Click Save & Close (or Save if editing). Then reference this Web Template from a Page Template to render the map.

2. Create a Web Role (Web API User)

Power Pages relies on Web Roles to determine what Dataverse data a portal user can access.
To allow Maptaskr maps to query and render data, you need to create a dedicated Web API User role.

Naming Tip

If your environment hosts multiple portals, use a clear name such as <SiteName> Web API User to avoid confusion during imports or role assignments.

Steps

  1. Go to make.powerpages.microsoft.comPower Pages Management.
  2. Navigate to Web Roles (under Security).
  3. Select New to create a new role.
  4. Populate the following fields:
PropertyValueNotes
NameWeb API UserOr use <SiteName> Web API User for multi-site clarity.
WebsiteYour portal’s siteMust match the exact site record.
Authenticated Users RoleYesGrants access to logged-in users.
Anonymous Users RoleNoPrevents this role being applied by default to all visitors.

Adding new web role

  1. Save & Close.

Assigning the Web Role to Users

After creation, you must link the Web API User role to the contacts (portal users) who need access.

  1. Open the relevant Contact record in Dataverse.
  2. Scroll to the Web Roles subgrid.
  3. Add the Web API User role.
  4. Save changes.
Refresh Session

Assigned users may need to sign out and back in before the new role takes effect in the portal.


3. Configure Site Settings

Maptaskr requires specific Site Settings to allow Web API access to listed tables. This can be done via import (recommended) or via manually.

Import Method

Use this method if you want to avoid manually adding each Site Setting.

Choose one of the two data model options below to quickly import all required Site Settings.

  1. Open Portal Management for your site (e.g. https://<environment>.crm.dynamics.com/).

  2. Navigate to Site Settings (Website section).

  3. Download maptaskr-site-settings-standard.csv (contains all required rows).

  4. Open the CSV and replace every value in the Website column with your site’s exact name (must match the lookup). Do not change other columns.

  5. Save the CSV.

  6. In the Site Settings grid command bar select the ellipsis (...) > Import from Excel > Import from CSV.

  7. Click Upload, choose the edited CSV, then click Next.

  8. Leave the defaults for: Data Delimiter, Field Delimiter, First Row contains column headings, and Allow Duplicates. Click Review Mapping.

  9. Confirm that each field maps correctly:

  • Name → Name
  • Website (Lookup) → Website
  • Value → Value
  1. Click Finish Review.

  2. Click Done to start the import.

  3. After the success message appears, refresh Active Site Settings and confirm the new rows are present.

tip

If rows don’t appear immediately, clear the view filters or refresh your browser.

Power Pages Importing Site Settings for the standard data model

Manual Method

Use this method if you prefer to manually add each Site Setting.

  1. Open Portal Management for your site (e.g. https://<environment>.crm.dynamics.com/).

  2. Go to Site Settings (Website section).

  3. Create (or update) entries exactly as listed below. For each logical table add both /enabled (true) and /fields (*) rows where present.

Wildcard Fields

The asterisk * exposes all attributes for that table through the portal Web API. This is acceptable for initial setup, but for production you should later replace * with a minimal comma‑separated list of required fields to reduce data exposure.

TableWebsiteSourceValue
Webapi/Maptaskr Core License Assignment/enabledYour SiteTabletrue
Webapi/annotation/enabledYour SiteTabletrue
Webapi/annotation/fieldsYour SiteTable*
Webapi/mtrcore_authenticationprofile/enabledYour SiteTabletrue
Webapi/mtrcore_authenticationprofile/fieldsYour SiteTable*
Webapi/mtrcore_authenticationprofilerequest/enabledYour SiteTabletrue
Webapi/mtrcore_authenticationprofilerequest/fieldsYour SiteTable*
Webapi/mtrcore_basemaplayer/enabledYour SiteTabletrue
Webapi/mtrcore_basemaplayer/fieldsYour SiteTable*
Webapi/mtrcore_basemaplayerproperty/enabledYour SiteTabletrue
Webapi/mtrcore_basemaplayerproperty/fieldsYour SiteTable*
Webapi/mtrcore_config/enabledYour SiteTabletrue
Webapi/mtrcore_config/fieldsYour SiteTable*
Webapi/mtrcore_configproperty/enabledYour SiteTabletrue
Webapi/mtrcore_configproperty/fieldsYour SiteTable*
Webapi/mtrcore_layer/enabledYour SiteTabletrue
Webapi/mtrcore_layer/fieldsYour SiteTable*
Webapi/mtrcore_layergroup/enabledYour SiteTabletrue
Webapi/mtrcore_layergroup/fieldsYour SiteTable*
Webapi/mtrcore_license/enabledYour SiteTabletrue
Webapi/mtrcore_license/fieldsYour SiteTable*
Webapi/mtrcore_licenseassignment/enabledYour SiteTabletrue
Webapi/mtrcore_licenseassignment/fieldsYour SiteTable*
Webapi/mtrcore_licensedurl/enabledYour SiteTabletrue
Webapi/mtrcore_licensedurl/fieldsYour SiteTable*
Webapi/mtrcore_licenseduser/enabledYour SiteTabletrue
Webapi/mtrcore_licenseduser/fieldsYour SiteTable*
Webapi/mtrcore_migrationversion/enabledYour SiteTabletrue
Webapi/mtrcore_migrationversion/fieldsYour SiteTable*
Webapi/mtrcore_offlinecache/enabledYour SiteTabletrue
Webapi/mtrcore_offlinecache/fieldsYour SiteTable*
Webapi/mtrcore_offlineregion/enabledYour SiteTabletrue
Webapi/mtrcore_offlineregion/fieldsYour SiteTable*
Webapi/mtrcore_resource/enabledYour SiteTabletrue
Webapi/mtrcore_resource/fieldsYour SiteTable*
Webapi/mtrcore_serviceprovider/enabledYour SiteTabletrue
Webapi/mtrcore_serviceprovider/fieldsYour SiteTable*
Webapi/mtrcore_serviceproviderproperty/enabledYour SiteTabletrue
Webapi/mtrcore_serviceproviderproperty/fieldsYour SiteTable*
Webapi/mtrcore_shape/enabledYour SiteTabletrue
Webapi/mtrcore_shape/fieldsYour SiteTable*
Webapi/mtrcore_sublayer/enabledYour SiteTabletrue
Webapi/mtrcore_sublayer/fieldsYour SiteTable*
Webapi/mtrcore_sublayerproperty/enabledYour SiteTabletrue
Webapi/mtrcore_sublayerproperty/fieldsYour SiteTable*

Example new Site Setting record:

Add a site setting


4. Create Table Permissions

To use Maptaskr Power Maps in Power Pages, required table permissions must be in place. You can add them via import (recommended) or manually.

note

When creating table permissions, the ability to add Web Roles is only available after saving the record.

In Table Permissions (Security), create these 22 permissions. Below is an overview of required permissions:

NameTable NameAccess TypePrivilegesWeb Roles
Annotation PermissionannotationGlobalRead, Write, Create, Delete, Append and Append ToWeb API User
Authentication Profile Permissionmtrcore_authenticationprofileGlobalReadWeb API User
Authentication Profile Request Permissionmtrcore_authenticationprofilerequestGlobalReadWeb API User
Basemap Layer Permissionmtrcore_basemaplayerGlobalReadWeb API User
Basemap Layer Property Permissionmtrcore_basemaplayerpropertyGlobalReadWeb API User
Config Permissionmtrcore_configGlobalReadWeb API User
Config Property Permissionmtrcore_configpropertyGlobalReadWeb API User
Layer Permissionmtrcore_layerGlobalReadWeb API User
Layer Group Permissionmtrcore_layergroupGlobalReadWeb API User
License Permissionmtrcore_licenseGlobalReadWeb API User
License Assignment Permissionmtrcore_licenseassignmentGlobalReadWeb API User
Licensed URL Permissionmtrcore_licensedurlGlobalReadWeb API User
Licensed User Permissionmtrcore_licenseduserGlobalReadWeb API User
Migration Version Permissionmtrcore_migrationversionGlobalReadWeb API User
Offline Cache Permissionmtrcore_offlinecacheGlobalReadWeb API User
Offline Region Permissionmtrcore_offlineregionGlobalReadWeb API User
Resource Permissionmtrcore_resourceGlobalReadWeb API User
Service Provider Permissionmtrcore_serviceproviderGlobalReadWeb API User
Service Provider Property Permissionmtrcore_serviceproviderpropertyGlobalReadWeb API User
Shape Permissionmtrcore_shapeGlobalRead, Write, Create, Delete, Append and Append ToWeb API User
Sub Layer Permissionmtrcore_sublayerGlobalReadWeb API User
Sub Layer Property Permissionmtrcore_sublayerpropertyGlobalReadWeb API User
Minimum Privileges

Only grant Create/Write/Delete on annotation and mtrcore_shape if your scenario requires user‑generated drawings or notes. For read‑only viewer portals you can omit those elevated privileges to reduce risk.

Import Method

Use this method if you want to avoid manually creating each permission.

Choose one of the two data model options below to quickly import all required Table Permissions.

  1. Open Portal Management for your site (e.g. https://<environment>.crm.dynamics.com/).

  2. Navigate to Site Settings (Website section).

  3. Download maptaskr-table-permissions-standard.csv (contains all required rows).

  4. Open the CSV and replace every value in the Website column with your site’s exact name (must match the lookup). Do not change other columns.

  5. Save the CSV.

  6. In the Site Settings grid command bar select the ellipsis (...) > Import from Excel > Import from CSV.

  7. Click Upload, choose the edited CSV, then click Next.

  8. Leave the defaults for: Data Delimiter, Field Delimiter, First Row contains column headings, and Allow Duplicates. Click Review Mapping.

  9. Confirm that each field maps correctly:

  • Table Name → Table Name
  • Name → Name
  • Access Type (OptionSet) → Access Type
  • Website (Lookup) → Website

For permissions, make sure both options are mapped:

  • Append → Append (2 options)
  • Append To → Append To (2 options)
  • Create → Create (2 options)
  • Delete → Delete (2 options)
  • Read → Read (2 options)
  • Write → Write (2 options)
  1. Click Finish Review.

  2. Click Done to start the import.

  3. After the success message appears, refresh Active table Permissions and confirm the new rows are present.

tip

If rows don’t appear immediately, clear the view filters or refresh your browser.

Power Pages Import Table Permissions for Standard Data Model

Manual Method

Use this method if you prefer to manually add each permission.

  1. Open Portal Management for your site (e.g. https://<environment>.crm.dynamics.com/).

  2. Go to Table Permissions (Website section).

  3. Select New.

  4. Enter a Name.

  5. Select a table from the dropdown (refer to the permissions table above).

  6. Select your Website.

  7. Set Access Type to Global.

  8. Set Privileges as per the table above.

  9. Select Save.

  10. Add the Web API User role to the Web Roles subgrid (see Add a Web Role to a Permission).

Add a Table Permission

Add a Web Role to a Permission

After creation, add each permission to the Web API User role. (Skip this if you used the enhanced data model import and already embedded the role reference.)

  1. Select Table Permissions from navigation list on the left

  2. Select the table permissions that requires the web role

  3. Scroll down to the Web Role table

  4. Select Add Existing Web Role

  5. Search and select your new Web API User Then Select Add

  6. Save the record.

Add a Web to a Table Permission


5. Create a Web Template

Create a helper Web Template that returns lightweight user context (used to determine authentication state).

  1. Navigate to the Web Templates list under the Content section in make.powerpages.microsoft.com.

  2. Select New and name it Maptaskr User Info.

  3. Paste the code below (leave exactly as is).

{% if user %}
{
"userId": "{{user.Id}}",
"userName": "{{user.fullname}}",
"userRoles": [
{% for role in user.roles%}
"{{role}}" {% unless forloop.last %}, {% endunless %}
{% endfor %}
]
}
{% else %}
{
"userId": "Anon",
"userName": "Anonymous",
"userRoles": []
}
{% endif %}
  1. Save & Close

Create a Web Template


6. Create a Page Template

Create a Page Template referencing the Web Template.

  1. Navigate to Page Templates

  2. Select New to create a new page template called Maptaskr User Info.

  3. Set Website to your Power Pages site.

  4. Set the type to Web Template.

  5. Select the Web Template Maptaskr User Info.

  6. Clear Use Website Header and Footer.

  7. Leave remaining fields default and Save & Close.

note

Ensure Use Website Header and Footer remains unchecked.

Create Page Template


7. Create a Web Page

Create a Web Page using the Page Template you just created.

  1. Navigate to Web Page.

  2. Select New.

  3. Set Name to Maptaskr User Info.

  4. Set Website to your Power Pages site.

  5. Set Parent Page to Home.

  6. Set Partial URL to maptaskr-user-info (no leading slash).

  7. Choose Page Template Maptaskr User Info.

  8. Set Publishing State to Published.

  9. Save & Close.

Create Web Page


8. Enable the Code Component (Designer)

Final step: enable the code component for the form field in the designer.

  1. Open the site in the designer: make.powerpages.microsoft.com.

  2. Open (or add) the page hosting the Basic or Multistep form.

  3. Select the field bound to the Maptaskr PCF control.

  4. Click Enable code component and toggle Enable code component field.

  5. Confirm the Configuration Profile ID & optional CSS classes.

  6. Click Done.

Enable Code Component

info

Maptaskr map not rendering?

Quick checks:

  • License Manager: Confirm your site domain (including https:// and no trailing slash) is listed under Supported URLs.
  • Configuration Profile ID: Ensure the GUID on the PCF control matches an active profile.
  • Site Settings: Verify the relevant Web API /enabled entries are present and published.
  • Table Permissions: Confirm the Web API User role is attached and privileges include required Read (and Create/Write for shapes/annotations if used).
  • Browser Cache: Hard refresh (Ctrl+F5) or open in a private window after changes.
  • Portal Cache: Some changes (Site Settings / Table Permissions) may require a portal restart from the Power Platform Admin Center.
  • /maptaskr-user-info endpoint: Browse directly; if you see full site chrome instead of JSON, the Page Template did not disable header/footer.

Still failing? Capture console/network errors and contact support with the site URL + timestamp.


Completion Checklist

  • PCF control added to Dataverse form.
  • Web Role created (Web API User).
  • Site Settings created (all listed /enabled & /fields).
  • Table Permissions created & linked to the role.
  • User Info Web Template, Page Template & Web Page created.
  • Code component enabled in designer.
  • Basic / Multistep Form using the edited Main Form published.
  • Contacts needing access have the Web Role assigned.
  • /maptaskr-user-info returns JSON (no HTML wrapper).

Troubleshooting Matrix

Use this matrix to diagnose and resolve common issues when configuring Maptaskr Power Maps in Power Pages.

SymptomLikely CauseResolution
Map area is blank, no errorsWrong Dataverse Main Form or invalid Profile IDConfirm the correct Main Form is used by the Basic/Multistep form. Verify Profile GUID: 36 characters, hyphenated, no braces.
Map loads slowly or inconsistentlyPortal cache not refreshedRestart the portal from the Power Platform Admin Center, or wait 5–10 minutes and refresh browser.
JSON endpoint shows full HTML pagePage Template still includes header/footerEdit the Page Template, uncheck Use Website Header and Footer, republish, and test /maptaskr-user-info.
401 errors on Web API callsMissing Table Permissions or Web Role not linkedEnsure all 22 Table Permissions exist, are linked to the Web API User role, and that the role is assigned to the correct Contact(s).
404 error on /maptaskr-user-infoWrong URL or Page Template misconfigurationConfirm Partial URL = maptaskr-user-info (no slash). Ensure Page Template references Web Template and header/footer is disabled.
Shapes render but layers don’tMissing Read privilege on mtrcore_layer/layergroupAdd Read permissions in Table Permissions, save, and sync the portal.
Annotations fail to saveInsufficient privileges on annotation tableGrant Create/Write/Delete privileges if end-users need to add notes or drawings.
Site Settings changes ignoredPortal still serving cached configurationRestart the portal, republish, and clear browser cache (Ctrl+F5).
Empty map area with errors in consoleSite domain not registered in License ManagerAdd the portal domain (including https://, no trailing slash) under Supported URLs in License Manager.
JSON endpoint shows HTML chromeHeader/footer still enabled in Page TemplateUpdate Page Template, uncheck header/footer, republish.
Annotations or shapes disappear after refreshPermissions missing or not persistedEnsure annotation and mtrcore_shape permissions include Append/Append To and Write.
Layers visible, but basemaps missingDefault basemaps not installed or disabledVerify Core Package install completed. Reinstall if required.

Security Hardening (Recommendations)

Ongoing Security Hygiene
  • Maintain a lightweight internal runbook documenting the exact Site Settings, Table Permissions, and Web Roles required by Maptaskr.
  • After solution upgrades, validate that new tables and permissions follow the same principle of least privilege.
  • Regularly review Dataverse Audit Logs to monitor portal activity and spot unusual access attempts.

Once your portal is live and maps are rendering correctly, it’s important to revisit configuration with a security-first mindset. The steps below help reduce unnecessary data exposure and align your setup with production best practices.

AreaHardening Action
Site Settings fields (*)Replace wildcard * with a minimal, explicit list of fields required by your maps. This limits data exposure through the portal Web API.
Annotation / Shape CRUDRemove Create/Write/Delete privileges unless end-users must draw or add notes. For read-only portals, keep permissions to Read only.
User Info endpointRestrict the /maptaskr-user-info Web Page to authenticated roles if anonymous role information is not required.
Additional tables (future upgrades)After upgrading Maptaskr, re-run Site Settings and Table Permissions to ensure new mtrcore_* tables are secured.
Role assignmentPeriodically audit which Contacts are assigned the Web API User role, and remove unnecessary assignments.
Portal cacheAfter changes, restart your portal and verify effective security using an incognito browser session.