Work 365 Portal Notifications – Overview & Setup
Applies To: Work 365 Self-Service Portal (Dynamics 365 / Power Platform)
Audience: Administrators, Support Engineers, Implementation Teams
Overview
The Work 365 Portal Notifications solution ships a set of Power Automate (cloud) flows that email internal teams and/or customers when key portal events occur. Typical events include subscription changes initiated in the portal, provisioning results, and portal invitation redemptions.
Included Notification Flows (out of the box)
- Event Type: Subscription Quantity Update What it does: Sends an internal alert when a portal user changes a subscription quantity (Manual/Null provider scenarios). Default Recipients*: Internal DL (Environment Variable)
- Event Type: License Provisioning Failed What it does: Alerts internal recipients if a provisioning job fails. Default Recipients*: Internal DL (Environment Variable)
- Event Type: License Provisioning Successful What it does: Emails the initiating portal user and CCs the Billing Contract primary contact (if billable). Default Recipients*: Customer + Internal CC
- Event Type: Portal Invitation Redeemed What it does: Notifies internal users when a customer redeems a portal invitation. Default Recipients*: Internal DL (Environment Variable)
*Recipients can be customized per flow or centrally via Environment Variables (see below).
Prerequisites
System Administrator or System Customizer security role
Work 365 Self-Service Portal installed and initialized
A licensed mailbox for sending notifications (Exchange Online recommended)
(Recommended) A service/shared mailbox for sending system emails
Setup Steps
1) Download the Solution
Get the latest Work 365 Portal Notifications managed solution (
.zip) from the Work 365 Documentation Portal.If you have a version prior to 4.0.0.0, uninstall it first to avoid duplicate notifications.
2) Import the Managed Solution
Go to Power Automate: https://make.powerautomate.com → select the correct Dataverse environment.
Solutions → Import solution → upload
.zip→ Next → Accept → Import.Wait for the import to complete.
3) Configure Connection References
During/after import, configure each connection reference:
Dataverse: sign in as an admin with access to the Work 365 tables.
Outlook/Exchange: pick a licensed mailbox (enable Send As if using a shared mailbox).
Tip: In the solution, open … More → Connection references to confirm each reference is bound to a valid connection.
4) Set Environment Variables
Open the solution → Environment Variable Values → set:
Receiver Email: internal recipient(s) or a Distribution List (e.g., provisioning alerts)
Sender Email: mailbox used as the “From” address
Dynamics CRM URL: e.g.,
https://yourcompany.crmX.dynamics.comWork 365 App ID: the GUID of your installed Work 365 application
You can revise these anytime without re-importing the solution.
5) Enable & Test the Flows
Ensure all flows are Enabled.
Trigger each scenario in a sandbox (recommended):
Change a subscription quantity in the portal (Manual/Null provider).
Force a success/failure provisioning outcome.
Redeem a portal invitation.
Confirm the right recipients get emails and the content looks correct.
Customization & Maintenance
Customize Email Content
Open the flow → edit Subject, To/CC, and HTML Body actions.
Keep a consistent subject pattern, e.g.:
[W365] Provisioning Successful – {Subscription} / {Account}[W365] Provisioning Failed – Action Required – {Subscription} / {Account}[W365] Portal Invitation Redeemed – {Account}
Change Sender/Receiver Centrally
Update Environment Variables for Sender / Receiver to route all notifications without editing each flow.
Avoid Duplicates
Uninstall older or parallel notification solutions.
Keep only one active version per environment.
Ownership & Service Identity
Reassign flows to a service account (cloud flow owner) to avoid interruptions when staff leave.
In the solution → flow Details → Edit owners and add the service account.
Monitoring
Use Run history and Flow checker for failures.
Configure alerting via Power Automate analytics or send failure emails from a catch-all scope.
Best Practices
Dedicated sender mailbox (shared/service) with Send As permission.
Re-test after any permission, mailbox, or environment change.
Keep subjects clear; use HTML email for readability and branding.
Document mailbox owner, environment variable values, and flow owners.
For multi-environment ALM, keep a managed solution and drive per-environment values via Environment Variable Values.
Troubleshooting
Common Errors & Fixes
- Symptom: Emails not sent Likely Cause: Invalid/expired Outlook/Exchange connection Fix: Re-authenticate the connection reference; confirm mailbox license & Send As rights
- Symptom: Flow trigger not firing Likely Cause: Wrong environment or disabled trigger Fix: Verify you’re in the correct environment; ensure flow is Enabled
- Symptom: 401/403 errors to Dataverse Likely Cause: Connection user lacks table permissions Fix: Ensure connection user has at least System Customizer or appropriate security role
- Symptom: Duplicate notifications Likely Cause: Multiple solutions or duplicate flows enabled Fix: Uninstall older solutions; disable duplicate flows
- Symptom: Emails land in spam Likely Cause: Missing SPF/DKIM/DMARC Fix: Configure SPF/DKIM/DMARC for the sender domain (M365 recommended)
Validation Checklist
Connection references bound (Dataverse + Outlook)
Environment Variables set (Sender, Receiver, CRM URL, App ID)
Flows Enabled and owned by a service account
Test events generate expected single email per event
Sender domain passes SPF/DKIM/DMARC checks
Security & Compliance
Use least privilege for the sending mailbox; restrict who can Send As.
Log notification events in a shared mailbox or archive folder for audit.
For PII, ensure email bodies comply with your data handling policy.
Consider Row-Level Security (Dataverse) if you extend flows to include data snapshots.