# Control 2.23: User Consent and AI Disclosure Enforcement - Screenshot Specifications

## Required Screenshots

### Screenshot 1: Microsoft 365 Admin Center - AI Disclaimer Toggle (Enabled)
**Portal Path:** Microsoft 365 Admin Center → Settings → Org settings → Copilot → AI Disclaimer
**What to capture:**
- Copilot settings panel with AI Disclaimer section visible
- AI Disclaimer toggle in "On" position (enabled state)
- Custom disclosure URL field with example URL entered (e.g., https://contoso.com/policies/ai-transparency)
- Save button visible
- Tenant name or admin account visible in the header

### Screenshot 2: Microsoft 365 Admin Center - AI Disclaimer Toggle (Disabled)
**Portal Path:** Microsoft 365 Admin Center → Settings → Org settings → Copilot → AI Disclaimer
**What to capture:**
- Copilot settings panel with AI Disclaimer section visible
- AI Disclaimer toggle in "Off" position (disabled/default state)
- Demonstration of the default configuration before enablement
- Save button visible

### Screenshot 3: Microsoft 365 Copilot - AI Disclaimer Banner Display
**Portal Path:** Microsoft 365 Copilot (copilot.microsoft.com) - First launch for new user
**What to capture:**
- AI Disclaimer banner or modal displayed on first use of Microsoft 365 Copilot
- Disclosure text: "Learn more about how Microsoft uses your data" or similar
- Clickable link to custom disclosure URL (visible and highlighted)
- Copilot interface in the background
- Timestamp or user context visible

### Screenshot 4: Custom Disclosure URL - Organizational AI Policy Page
**Portal Path:** Browser displaying the organizational AI policy document (linked from custom URL)
**What to capture:**
- Full organizational AI transparency policy page
- Page URL in browser address bar (matching the custom disclosure URL)
- Policy content including:
  - Description of AI system usage
  - Data handling and privacy practices
  - Monitoring and compliance notice
  - User rights and escalation path
- Page timestamp or "Last Updated" date visible

### Screenshot 5: Copilot Studio - Agent Greeting Topic with AI Disclosure (Zone 1)
**Portal Path:** Microsoft Copilot Studio → [Agent] → Topics → System → Greeting
**What to capture:**
- Greeting topic editor in Copilot Studio
- Message node showing Zone 1 AI disclosure language (general disclosure)
- Example text: "Hello! I'm an AI assistant. My responses are generated by AI. For more information, see [Microsoft Transparency Notes]."
- Agent name visible in the header
- Save button visible

### Screenshot 6: Copilot Studio - Agent Greeting Topic with AI Disclosure (Zone 2)
**Portal Path:** Copilot Studio → [Agent] → Topics → System → Greeting
**What to capture:**
- Greeting topic editor in Copilot Studio
- Message node showing Zone 2 AI disclosure language (organizational policy + monitoring notice)
- Example text: "Hello! I'm [Agent Name], an AI assistant. Responses are AI-generated and should be reviewed. Conversations may be monitored. See our [AI Policy]."
- Link to organizational AI policy visible in the disclosure text
- Agent name visible in the header

### Screenshot 7: Copilot Studio - Agent Greeting Topic with AI Disclosure (Zone 3)
**Portal Path:** Copilot Studio → [Agent] → Topics → System → Greeting
**What to capture:**
- Greeting topic editor in Copilot Studio
- Message node showing Zone 3 AI disclosure language (regulatory language with all 7 required elements)
- Example text: "Hello! I'm [Agent Name], an AI assistant. Responses are AI-generated and require review. Conversations are monitored and stored for 90 days. You have rights to data access/deletion. Contact [Compliance Officer] for concerns. See our [AI Policy]."
- Agent name visible in the header
- Demonstration of comprehensive Zone 3 disclosure

### Screenshot 8: Copilot Studio - Consent Acknowledgment Prompt (Zone 3)
**Portal Path:** Copilot Studio → [Zone 3 Agent] → Topics → System → Greeting → Consent Question Node
**What to capture:**
- Greeting topic editor showing the consent acknowledgment flow
- Question node with consent prompt: "Do you understand this is an AI system and conversations are monitored? Do you agree to these terms?"
- Condition node checking for "yes"/"agree" response
- Branch paths: Yes → Proceed; No → End conversation with escalation message
- Power Automate action node calling consent logging flow
- Agent name visible in the header

### Screenshot 9: Copilot Studio Test Panel - Consent Acknowledgment in Action
**Portal Path:** Copilot Studio → [Zone 3 Agent] → Test your copilot panel
**What to capture:**
- Test chat panel showing a live conversation
- Agent displays AI disclosure message
- Agent displays consent prompt: "Do you agree to these terms?"
- User response: "Yes" or "I agree"
- Agent response: Conversation proceeds to agent functionality
- Timestamp and conversation context visible

### Screenshot 10: Copilot Studio Test Panel - Consent Declined
**Portal Path:** Copilot Studio → [Zone 3 Agent] → Test your copilot panel
**What to capture:**
- Test chat panel showing a live conversation
- Agent displays AI disclosure message
- Agent displays consent prompt: "Do you agree to these terms?"
- User response: "No" or "I do not agree"
- Agent response: "I'm unable to assist without consent acknowledgment. Please contact [support] for assistance."
- Conversation ends (no further agent responses)
- Timestamp and conversation context visible

### Screenshot 11: Power Automate - Consent Logging Flow
**Portal Path:** Power Automate (make.powerautomate.com) → My flows → [Consent Logging Flow]
**What to capture:**
- Power Automate flow canvas showing consent logging logic
- Trigger: "When Microsoft Copilot Studio calls a flow" or "When an HTTP request is received"
- Action: "Add a new row" to Dataverse fsi_aiconsent table
- Field mappings: UserID, AgentName, ConsentTimestamp, DisclosureVersion, AcknowledgmentStatus
- Flow name visible in the header
- Save button visible

### Screenshot 12: Dataverse - fsi_aiconsent Table Schema
**Portal Path:** Power Apps (make.powerapps.com) → [Environment] → Tables → fsi_aiconsent
**What to capture:**
- Dataverse table definition showing fsi_aiconsent table
- Table columns/fields:
  - fsi_userid (Single line of text)
  - fsi_agentname (Single line of text)
  - fsi_consenttimestamp (Date and time)
  - fsi_disclosureversion (Single line of text)
  - fsi_acknowledgmentstatus (Yes/No)
- Table name visible in the header

### Screenshot 13: Dataverse - Consent Records (Sample Data)
**Portal Path:** Power Apps (make.powerapps.com) → [Environment] → Tables → fsi_aiconsent → Data
**What to capture:**
- Dataverse table data view showing sample consent records
- Multiple records with different users, agents, and timestamps
- All required fields populated:
  - fsi_userid: user@contoso.com
  - fsi_agentname: Customer Service Agent
  - fsi_consenttimestamp: 2026-02-12T10:30:00Z
  - fsi_disclosureversion: v1.0
  - fsi_acknowledgmentstatus: Yes (True)
- Demonstration of consent record persistence

### Screenshot 14: Purview Audit Log - AI Disclaimer Configuration Change
**Portal Path:** Microsoft Purview portal → Audit → Search results
**What to capture:**
- Audit log search results showing an AI Disclaimer configuration change event
- Event details:
  - Activity: "Update organization settings" or "Update Copilot settings"
  - User: admin@contoso.com (admin who made the change)
  - Date/Time: Timestamp of configuration change
  - Details: AI Disclaimer toggle status change (Off → On) or custom URL update
- Search filters showing date range and activity type

### Screenshot 15: Purview Audit Log - Consent Acknowledgment Event
**Portal Path:** Microsoft Purview portal → Audit → Search results
**What to capture:**
- Audit log search results showing a user consent acknowledgment event
- Event details:
  - Activity: "User consent" or "Chatbot interaction"
  - User: testuser@contoso.com (user who acknowledged consent)
  - Date/Time: Timestamp of consent acknowledgment
  - Details: Agent name, consent status (acknowledged)
- Search filters showing user and activity type

### Screenshot 16: PowerShell - Get-TenantAIDisclaimer.ps1 Output
**What to capture:**
- PowerShell terminal window showing output from Get-TenantAIDisclaimer.ps1 script
- Output fields:
  - TenantId: 12345678-1234-1234-1234-123456789012
  - TenantName: Contoso Financial Services
  - AIDisclaimerEnabled: True
  - CustomDisclosureURL: https://contoso.com/policies/ai-transparency
  - LastModifiedDateTime: 2026-02-10T14:32:00Z
  - ComplianceStatus: Compliant
- Script name visible in the command line

### Screenshot 17: PowerShell - Get-AgentDisclosureInventory.ps1 Output
**What to capture:**
- PowerShell terminal window showing output from Get-AgentDisclosureInventory.ps1 script
- Table displaying:
  - EnvironmentName
  - AgentName
  - HasGreetingTopic: True/False
  - HasAIDisclosure: True/False
  - ComplianceStatus: Compliant/Review Required/No Greeting Topic
- Summary statistics:
  - Total Agents: 15
  - Compliant: 12
  - Non-Compliant/Review Required: 3
- CSV export path visible

### Screenshot 18: PowerShell - Get-ConsentRecords.ps1 Output
**What to capture:**
- PowerShell terminal window showing output from Get-ConsentRecords.ps1 script
- Table displaying consent records:
  - UserId: user@contoso.com
  - AgentName: Customer Service Agent
  - ConsentTimestamp: 2026-02-10T10:30:00Z
  - DisclosureVersion: v1.0
  - AcknowledgmentStatus: True
- Summary statistics:
  - Total Consent Records (last 30 days): 125
  - Acknowledged: 125
- CSV export path visible

### Screenshot 19: PowerShell - Verify-ConsentCompliance.ps1 Output
**What to capture:**
- PowerShell terminal window showing output from Verify-ConsentCompliance.ps1 script
- Compliance report table:
  - UserId
  - AgentName
  - LastInteraction
  - ConsentStatus: Valid/Expired
  - ConsentDate
  - DaysSinceConsent
- Highlighting users with expired consent (ConsentStatus: Expired, DaysSinceConsent > 90)
- CSV export path visible

### Screenshot 20: Copilot Control System - Enterprise Transparency Settings (If Available)
**Portal Path:** Copilot Control System (copilot.microsoft.com/admin) → Transparency and Control
**What to capture:**
- Copilot Control System admin interface
- Transparency and Control settings panel
- Options visible:
  - Enterprise transparency mode toggle
  - Plugin permissions and disclosure settings
  - Data usage transparency configuration
  - Transparency Notes reference URL field
- Save button visible
- Tenant context visible in the header

### Screenshot 21: Microsoft Teams - Agent Disclosure Display (Desktop)
**Portal Path:** Microsoft Teams desktop app → [Agent Chat]
**What to capture:**
- Microsoft Teams chat interface with agent conversation
- Agent's greeting message displaying AI disclosure language
- Disclosure text clearly visible in the chat window
- Agent name visible in the chat header
- Teams desktop app interface visible

### Screenshot 22: Microsoft Teams - Agent Disclosure Display (Mobile)
**Portal Path:** Microsoft Teams mobile app (iOS or Android) → [Agent Chat]
**What to capture:**
- Microsoft Teams mobile app interface with agent conversation
- Agent's greeting message displaying AI disclosure language
- Disclosure text clearly visible and readable on mobile screen
- Agent name visible in the chat header
- Mobile device interface visible (iOS or Android)

### Screenshot 23: Agent Greeting Topic - Disclosure Display Frequency Setting
**Portal Path:** Copilot Studio → [Agent] → Topics → System → Greeting → Trigger settings
**What to capture:**
- Greeting topic editor showing the trigger configuration
- Trigger type dropdown or option selected:
  - "On conversation start" (displays every time)
  - "On first use only" (displays once)
- Zone 3 requirement: Set to "On conversation start"
- Agent name visible in the header

### Screenshot 24: Custom Disclosure URL - SharePoint Permissions Configuration
**Portal Path:** SharePoint Admin Center → Site permissions (for disclosure policy document site)
**What to capture:**
- SharePoint site or document permissions panel
- External sharing settings: "Anyone" or "New and existing guests" enabled
- User/group permissions list showing "Everyone" or "All Authenticated Users" with Read access
- Site URL matching the custom disclosure URL
- Demonstration of accessibility configuration for external users

### Screenshot 25: Disclosure Version Tracking - Dataverse or Document Library
**Portal Path:** SharePoint document library or Dataverse table showing disclosure version history
**What to capture:**
- Document library or table showing multiple versions of the AI disclosure policy
- Version numbers: v1.0, v1.1, v1.2, etc.
- Modification dates and modified by users
- Demonstrates version control and audit trail for disclosure language changes

---

## Notes for Verification

- Capture screenshots from a pre-production or test environment when possible
- Use non-sensitive agent names, user accounts, and disclosure URLs
- Include timestamps to demonstrate currency of configurations
- Verify UI matches documentation after Microsoft portal updates
- AI Disclaimer feature rollout began in late November 2025; earlier tenants may not have access
- Custom disclosure URLs should be tested for accessibility from both internal and external networks
- Consent records should show realistic data consistent with test scenarios
- PowerShell outputs should demonstrate successful script execution with accurate data
- Capture both Zone 1/2 and Zone 3 configurations to show the progressive disclosure requirements

---

## Feature Availability Note

The AI Disclaimer toggle in Microsoft 365 Admin Center became available in late November 2025. If your tenant has not yet received this update:

- The AI Disclaimer section may not appear in Copilot organizational settings
- Contact Microsoft Support to confirm rollout status for your tenant region
- Check Message Center for announcements regarding AI Disclaimer feature availability
- Screenshots should be updated once the feature is available in your environment
- In the interim, focus on agent-level disclosure configurations in Copilot Studio

---

## Screenshot Naming Convention

Save screenshots with the following naming format:
```
2.23_Screenshot-[Number]_[Description]_[YYYYMMDD].png
```

Examples:
- `2.23_Screenshot-01_Admin-Center-AI-Disclaimer-Enabled_20260212.png`
- `2.23_Screenshot-08_Consent-Acknowledgment-Prompt_20260212.png`
- `2.23_Screenshot-13_Dataverse-Consent-Records_20260212.png`

Store all screenshots in the `docs/images/2.23/` directory for easy reference and documentation embedding.
