Category: Governance & Best Practices

  • SBD Part 1 – Using Microsoft’s Success by Design as Your Project Compass


    Purpose:
    This post serves as a reference guide for Solution Architects to structure and govern Dynamics 365 and Power Platform projects. It explains why the Success by Design (SBD) framework exists, how it works, and which deliverables to leverage during planning and implementation.


    Overview of Success by Design (SBD)

    SBD is a prescriptive, methodology-agnostic framework developed by Microsoft to guide project teams in architecting, building, and deploying solutions successfully. It draws on lessons from thousands of real-world implementations, providing a structured approach that minimizes surprises and maximizes predictability.

    Why it matters for a Solution Architect:

    • Ensures your design decisions align with Microsoft best practices and architecture principles.
    • Provides a governance model for proactive risk management, allowing early detection of technical, functional, and operational risks.
    • Enables repeatable success across projects, ensuring predictable delivery outcomes.

    Key Principles to Apply

    1. Proactive Risk Identification
      • Why: Reduces the likelihood of costly rework and project delays.
      • How:
        • Conduct regular Solution Blueprint Reviews (SBRs) and Implementation Reviews.
        • Track and categorize risks using the SBD template: Assertions, Risks, Issues, Recommendations.
      • Reference: SBD Review Outputs
    2. Governance Across Nine Architecture Pillars
      • Why: Ensures the solution is robust, secure, compliant, and maintainable.
      • How:
        • Evaluate architecture decisions against pillars: Security, Performance, Compliance, Maintainability, Integration, Data, UX, Operations, and Innovation.
        • Document architecture rationale in a Solution Blueprint.
      • Reference: Nine Pillars of Architecture
    3. Actionable Outputs for Decision Making
      • Why: Provides clarity for governance boards, sponsors, and project teams.
      • How:
        • Assertions: Capture what is working well to reinforce best practices.
        • Risks: Identify potential threats with impact assessment.
        • Issues: Highlight immediate blockers that require resolution.
        • Recommendations: Provide mitigation steps for risks or issues.
      • Reference: SBD Deliverables Overview

    Implementation Guidance for Architects

    • Use SBD outputs as a decision-support tool for workshops, architecture reviews, and project checkpoints.
    • Integrate SBD deliverables into your project documentation and governance artifacts:
      • Solution Blueprint (SBR Template) – defines architecture, interfaces, and integration points.
      • Implementation Review Checklist – tracks risks and issues during development.
      • Go-live Readiness Review (GRR) – ensures operational readiness before cutover.

    Best Practices:

    • Treat SBD as a living framework, updating risk and issue logs as the project progresses.
    • Reference SBD pillars early in design decisions to avoid architectural debt.
    • Align with FastTrack guidance when reviewing gaps or deviations.

    Key Takeaway

    For a Solution Architect, Success by Design is your project compass. It ensures your Dynamics 365 or Power Platform implementation is:

    • Predictable and resilient
    • Aligned with best practices
    • Governed through proactive risk management
    • Delivering maximum business value

    References / Resources:

    1. Microsoft FastTrack: Success by Design Overview
    2. Solution Blueprint Review (SBR) Template
    3. Implementation Review Checklist
    4. Go-live Readiness Review (GRR) Template

  • 311 Customer Relationship Management Design Pattern in Dynamics 365

    In public-sector service delivery, such as 311 systems, Dynamics 365 provides a robust platform for managing citizen requests, property issues, and business interactions. The key to a clean and scalable solution is designing relationships correctly between contacts, cases, and accounts.

    Core Principle

    Customer = Contact
    Properties and businesses provide context, not identity.

    All service requests, whether submitted by anonymous portal guests or registered residents, are associated with a person, not a property or business account.


    Entity Model

    Case

    • Customer (Contact) → Who submitted the request
    • Property (Account) → Location or asset involved
    • Business (Account, optional) → Related business or partner context
    • Origin / Channel → Portal, Phone, Email
    • Service / Category → Type of service request

    Primary Contact: Optional; typically unused unless a proxy submits on behalf of someone.

    Contact

    • Represents residents, guests, or business representatives
    • Guests:
      • IsGuest = true
      • Minimal profile data (name, email, session ID)
      • New Contact created per submission
    • Registered users:
      • Authenticated via portal
      • Linked to persistent Contact

    Account

    • Property Account: Civic address, Parcel ID, Ward, Property type
    • Business Account: Business name, license, address, category
    • Provides context for cases but is never used as Customer

    Portal & Guest Handling

    • Always create a new guest Contact for each anonymous submission
    • Avoid deduplication at creation
    • Merge guest → registered Contact only after authentication
    • Archive or deactivate old guest records to manage storage

    Agent Experience (Customer Service Workspace / Contact Center)

    • Customer: the submitter
    • Property: context/location of request
    • Business: optional related account
    • Cases drive workflows, timelines, and SLA tracking
    • Timelines on contacts are informational; case is the system of record

    Reporting & Analytics

    • Case + Property + Business fields enable:
      • Property-focused reporting
      • Ward/district trend analysis
      • Business or partner service metrics
      • Person-centric history

    This structure ensures identity, ownership, and privacy are maintained while supporting robust analytics.


    Benefits of this Pattern

    ✔ Scalable and secure for high-volume 311 operations
    ✔ Aligns with Dynamics 365 platform behavior
    ✔ Supports anonymous and registered portal users
    ✔ Ensures clean case ownership and agent workflows
    ✔ Enables property- and business-centric reporting without compromising identity


    Key Takeaway:

    In a 311 system, contacts represent people, accounts provide context, and cases are the system of record. Following this pattern ensures a secure, scalable, and Microsoft-aligned implementation for Customer Service, Contact Center, and Power Pages portals.

  • 311 Email Handling Design Pattern in Dynamics 365

    Core Principle

    • Customer = Contact
    • Properties and business accounts provide context, not identity.
    • Case is the system of record; email alone does not determine ownership.
    • Email activities may link to multiple contacts for history.
    • Case.Customer drives reply behavior and ownership.

    Incoming Email Handling

    1. Check tracking header
      • If Case exists → link email to that Case
      • If no Case exists → create a new Case
    2. Identify matching contacts by email
      • Multiple contacts (guest or registered) may share the same email
      • Link email activity to all matching contacts
      • Do not deduplicate automatically
    3. Assign Case.Customer
      • Registered user → Case.Customer = Contact
      • Guest → create a new guest Contact → Case.Customer = guest
    4. Handle unresolved recipients
      • If a To, CC, or BCC address matches multiple contacts, leave the party list unresolved
      • Only single matches are resolved to a Contact or Account
      • Agents see the unresolved address but can manually link if necessary

    Outgoing Email / Reply Handling

    • From / To fields: Show only Case.Customer (or original sender), not all linked contacts
    • Include tracking headers to associate replies with the correct Case
    • Replies from guests → create a new guest Contact if unmatched
    • Unresolved original recipients can optionally appear as text-only CC/BCC

    Portal Implications

    • Guest submissions always create new guest Contacts
    • Registered users override guest creation for authenticated sessions
    • Portal access is driven by Case.Customer, never email alone

    Reporting & Agent Experience

    • Cases provide centralized history and ownership
    • Email activity timeline includes all linked contacts for historical context
    • Agents work from Case-centric workflows, ensuring clean timelines
    • Property and business accounts provide context for analytics
    • Unresolved email addresses prevent confusing duplicate From/To lists

    Implementation Tips

    1. Use tracking headers in outgoing emails to associate replies with the correct Case
    2. Filter multiple contacts in From/To/CC/BCC fields via:
      • Server-Side Plugin (Pre-Operation on SendEmail)
      • Power Automate / Flow (intercept outgoing email)
      • Leave unresolved if multiple matches exist
    3. Automatically select Case.Customer for reply To field
    4. Maintain history by linking emails to all matching contacts (timeline only)
    5. Handle guest replies: create new guest Contact if no Case exists

    Benefits

    • Maintains identity integrity and privacy
    • Supports guest and registered submissions seamlessly
    • Handles duplicate email addresses safely
    • Prevents confusing recipient lists for agents and customers
    • Enables scalable, Microsoft-aligned operations
    • Preserves full email history while ensuring clean reply behavior

    Key Takeaway

    In 311 systems, cases own the workflow, contacts own identity, and emails are activities linked to all matching contacts. Case.Customer drives reply behavior, while unresolved recipients preserve email integrity without confusing agents. Property and business accounts provide context, ensuring a secure, scalable, and compliant Dynamics 365 solution.