# M365 Copilot Plugins - Ecosystem and Distribution

**Last updated:** 2026-04 | Verified: MCP 2026-04-10
**Status:** GA
**Category:** Copilot Extensibility & Integration

---

## Introduksjon

Microsoft 365 Copilot plugins (også kalt "agents") opererer innenfor et omfattende økosystem som spenner over hele Microsoft 365-plattformen. Plugins er ikke bare isolerte tillegg, men integrerte komponenter som kan nå over 350 millioner daglige brukere på tvers av Teams, Outlook, Word, Excel, PowerPoint og Microsoft 365 Copilot-appen.

Det sentrale prinsippet er **"write once, run anywhere"** — utviklere bygger én gang og plugins distribueres automatisk på tvers av alle Microsoft 365 host-applikasjoner. Microsoft 365 Copilot orkestrerer integrasjon av plugins med sine eksisterende ferdigheter og kunnskapsbase, uten at utviklere må integrere direkte med individuelle Microsoft 365-apper.

Plugins pakkes, distribueres og administreres gjennom en **unified app model** som bruker samme manifest-skjema og pakkeformat som Teams-apper, Outlook Add-ins og SharePoint Framework-løsninger. Dette gir enhetlig distribusjon via Microsoft 365 admin center, Teams admin center og Microsoft Commercial Marketplace (Partner Center).

## Kjernekomponenter

### 1. App Package (Pakkeformat)

M365 Copilot plugins distribueres som en `.zip`-fil som inneholder:

| Komponent | Fil | Krav |
|-----------|-----|------|
| **App manifest** | `manifest.json` | Beskriver konfigurasjon, capabilities, ressurser og attributter |
| **Color icon** | `color.png` | 192x192 px, full-color ikon (120x120 px safe region) |
| **Outline icon** | `outline.png` | 32x32 px, hvit med transparent bakgrunn (kreves for validering) |
| **Declarative agent** | `declarativeAgent.json` | (Valgfri) Agent-definisjon med instruksjoner og actions |
| **API plugin** | `plugin.json` | (Valgfri) API-capabilities og OpenAPI-referanse |
| **Localization files** | `en.json`, `nb.json` etc. | (Valgfri) Språkfiler for internasjonalisering |

**Eksempel: App manifest (forenklet)**

```json
{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.26/MicrosoftTeams.schema.json",
  "manifestVersion": "1.26" // Verified 2026-04: v1.26 er seneste GA (april 2026),
  "version": "1.0.0",
  "id": "00000000-0000-0000-0000-000000000000",
  "developer": {
    "name": "Northwind Traders",
    "websiteUrl": "https://www.example.com",
    "privacyUrl": "https://www.example.com/privacy",
    "termsOfUseUrl": "https://www.example.com/terms"
  },
  "name": {
    "short": "Northwind Inventory",
    "full": "Northwind Inventory App"
  },
  "description": {
    "short": "Find and update product inventory",
    "full": "Northwind Inventory is the ultimate tool for managing your product inventory..."
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "accentColor": "#3690E9",
  "copilotAgents": {
    "declarativeAgents": [
      {
        "id": "agent1",
        "file": "declarativeAgent.json"
      }
    ]
  }
}
```

### 2. Plugin-typer og tilgjengelighet

| Plugin-type | Microsoft 365-produkter | Ekstra tilgjengelighet |
|-------------|------------------------|------------------------|
| **Copilot connectors** | M365 Copilot, Power Automate, Power Apps, Azure Logic Apps | Microsoft Search, Context IQ (Outlook/web) |
| **Microsoft 365 Copilot connectors** (Graph) | M365 Copilot, Microsoft Search | M365 Copilot app (microsoft365.com) |
| **Declarative agents** | M365 Copilot, Teams, Outlook, Word, Excel, PowerPoint | M365 Copilot app |
| **Custom engine agents** | M365 Copilot, Teams | M365 Copilot app |

### 3. In-context vs. Immersive Experience

| Opplevelse | Beskrivelse | Brukerinteraksjon |
|------------|-------------|-------------------|
| **In-context** | Plugin tilgjengelig i eksisterende Copilot Chat-kontekst | Brukere `@`-mention plugin i Teams-chat eller Word-dokument |
| **Immersive** | Full plugin-opplevelse i M365 Copilot-appen | 1:1 samtale med plugin, skreddersydd til dens capabilities |

Declarative agents støtter begge moduser. Actions (API plugins) er kun tilgjengelig in-context og må legges til en declarative agent.

## Arkitekturmønstre

### Mønster 1: Declarative Agent med API Plugin (Anbefalt)

**Fordeler:**
- Low-code / no-code tilnærming
- Rask time-to-market
- Microsoft 365 Copilot håndterer orchestration
- Automatisk tilgjengelighet på tvers av M365-apper

**Ulemper:**
- Begrenset til forhåndsdefinerte capabilities
- Mindre kontroll over conversation flow
- Avhengig av Microsofts orchestration-logikk

**Bruksområder:**
- LOB-applikasjoner med REST API
- Enterprise data-integration
- Standardiserte workflows

**Arkitektur:**

```
App Manifest (manifest.json)
  ├─> Declarative Agent (declarativeAgent.json)
  │     ├─> Instructions (system prompt)
  │     ├─> Conversation starters
  │     ├─> Capabilities (WebSearch, OneDrive, CodeInterpreter)
  │     └─> Actions
  │           └─> API Plugin (plugin.json)
  │                 ├─> OpenAPI definition
  │                 └─> Authentication config
  └─> Icons (color.png, outline.png)
```

### Mønster 2: Custom Engine Agent (Bot Framework)

**Fordeler:**
- Full kontroll over conversational AI
- Egendefinert reasoning og orchestration
- Integrasjon med eksisterende bot-infrastruktur
- Avanserte dialog management-capabilities

**Ulemper:**
- Høyere utviklingskompleksitet
- Krever hosting-infrastruktur
- Mer vedlikeholdskrevende
- Må implementere egen sikkerhet og compliance

**Bruksområder:**
- Komplekse multi-turn samtaler
- Domene-spesifikk reasoning
- Legacy bot migration
- Spesialiserte LLM-workflows

**Arkitektur:**

```
App Manifest (manifest.json)
  ├─> Bot registration (Azure Bot Service)
  │     ├─> Bot endpoint (HTTPS)
  │     ├─> Messaging endpoint
  │     └─> Authentication (OAuth 2.0)
  ├─> copilotAgents.customEngineAgents
  │     └─> Bot ID reference
  └─> Bot Framework SDK (C#, TypeScript, Python)
```

### Mønster 3: Graph Connector for Microsoft 365 Copilot

**Fordeler:**
- Indeksering av ekstern data i Microsoft Graph
- Automatisk grounding i Copilot
- Ingen custom code nødvendig (low-code)
- Security-trimmed search results

**Ulemper:**
- Kun data retrieval (ikke actions)
- Krever crawling-infrastruktur
- Schema mapping-overhead
- Latency i indeksering

**Bruksområder:**
- Enterprise document repositories
- Tredjepartssystemer med bulk data
- Knowledge bases og wikis
- CRM/ERP-data grounding

## Beslutningsveiledning

### Når velge hvilken plugin-type?

| Scenario | Anbefalt type | Begrunnelse |
|----------|--------------|-------------|
| Integrasjon med REST API | Declarative agent + API plugin | Rask utvikling, ingen hosting, auto-orchestration |
| Kompleks dialog management | Custom engine agent | Full kontroll over conversation flow |
| Ekstern dataindeksering | Graph connector | Automatisk grounding uten custom code |
| Teams bot migration | Custom engine agent | Gjenbruk eksisterende bot-kode |
| Low-code requirement | Declarative agent i Copilot Studio | Grafisk designer, ingen kode |

### Vanlige feil

| Feil | Konsekvens | Løsning |
|------|------------|---------|
| API plugin uten declarative agent | Plugin fungerer ikke i M365 Copilot | API plugins må wrappes i declarative agent |
| Manglende beskrivelser i manifest | Dårlig LLM skill-selection | Inkluder detaljerte `shortDescription` og `longDescription` |
| Ikon-feil (feil størrelse) | Validering feiler i Partner Center | Color: 192x192px, Outline: 32x32px |
| Hardkodet localhost i produksjon | Plugin feiler utenfor dev-miljø | Bruk miljøvariabler for URLs |
| Manglende Responsible AI-compliance | Avvist i store submission | Test med RAI validation checks før innsending |

### Røde flagg

- **Secrets i manifest:** Aldri inkluder API keys eller secrets i `manifest.json` — bruk Azure Key Vault eller miljøvariabler
- **Overly broad permissions:** Be kun om nødvendige Microsoft Graph-permissions — overly broad scope gir compliance-problemer
- **Ingen error handling:** Plugin må håndtere API-feil gracefully — Copilot viser feilmeldinger til brukere
- **Manglende localization:** Plugins uten lokalisering har dårlig user experience i internasjonale org

## Integrasjon med Microsoft-stakken

### 1. Microsoft 365 Admin Center

**Rolle:** Sentral hub for plugin-administrasjon i enterprise

| Funksjon | Beskrivelse |
|----------|-------------|
| **Integrated Apps** | Godkjenn, deploy og administrer plugins på org-nivå |
| **App governance** | Kontroller hvilke plugins er enabled per bruker/gruppe |
| **Usage analytics** | Overvåk plugin-bruk og performance |
| **Policy enforcement** | Implementer data loss prevention (DLP) policies |

**Workflow:**
1. Admin mottar plugin submission fra ISV eller LOB-utvikler
2. Review permissions og compliance status
3. Approve/reject via Integrated Apps-seksjonen
4. Assign til security groups eller organization-wide
5. Plugin blir tilgjengelig i M365 Copilot, Teams, Outlook etc.

### 2. Teams Admin Center

**Rolle:** Kontroll av Teams-spesifikke plugin-capabilities

| Funksjon | Beskrivelse |
|----------|-------------|
| **App permission policies** | Definer hvilke plugins som er tillatt per bruker-gruppe |
| **App setup policies** | Pin plugins til Teams-appen for spesifikke brukere |
| **App centric management** | GA (fra 2025) — forenklet org-wide app-management |
| **Custom app upload** | Sideload plugins til organisasjonens app catalog |

### 3. Microsoft Partner Center (Microsoft 365 and Copilot Program)

**Rolle:** Distribusjon til Microsoft Commercial Marketplace

**Sertifiseringskrav (viktige "Must fix"-krav):**
- [Microsoft Commercial Marketplace certification policies](https://learn.microsoft.com/legal/marketplace/certification-policies)
- [Microsoft 365 store validation guidelines for agents](https://learn.microsoft.com/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines)
- [Responsible AI validation checks](https://learn.microsoft.com/microsoft-365-copilot/extensibility/rai-validation)
- (Valgfri) [Microsoft 365 App Compliance Program certification](https://learn.microsoft.com/microsoft-365-app-certification/docs/certification)

**Tekniske minstekrav (Must fix — ISV store submission):**

| Krav | Verdi |
|------|-------|
| **Manifest-versjon** | 1.13 eller nyere (seneste GA: v1.26, april 2026) (Verified 2026-04) |
| **Responstid** | ≤9 sek (99%), ≤5 sek (75%), ≤2 sek (50%) |
| **Tilgjengelighet** | 99.9% uptime |
| **TLS** | 1.2 eller høyere (alle serverkall) |
| **Prompt starters** | Minst 3 (declarative og custom engine agents) |
| **Navn-konsistens** | `name` i manifest.json, declarativeAgent.json og plugin.json MÅ være identiske |
| **Screenshot** | Minst 1 relatert til M365 Copilot-funksjonalitet |
| **Action disclosure** | Bruker MÅ bekrefte konsekvente operasjoner (Create/Update/Delete) |
| **MCP-servere** | `enable_dynamic_discovery` og `enable_dynamic_client_registration` MÅ settes til false |

**Distribusjonsflyt:**
1. ISV registrerer seg i Partner Center
2. Laster opp app package (.zip med manifest + icons)
3. Microsoft validerer plugin (teknisk + RAI + compliance)
4. Ved godkjenning → publisert i Microsoft AppSource
5. IT-admins enabler plugin i Microsoft 365 admin center
6. Plugin vises i App Store (M365 Copilot, Teams, Outlook etc.)

### 4. Utviklerverktøy

| Verktøy | Type | Bruksområde |
|---------|------|-------------|
| **Microsoft 365 Agents Toolkit** | Pro-code (VS Code / Visual Studio) | Declarative agents, custom engine agents, debugging |
| **Copilot Studio** | Low-code (web app / Teams app) | Grafisk designer for agents og actions |
| **Copilot Developer Mode** | Testing | Debug plugin selection og orchestration |
| **TypeSpec** | Pro-code | Type-safe API plugin definitions |

## Offentlig sektor (Norge)

### GDPR og AI Act

| Krav | Implikasjon for M365 Copilot Plugins |
|------|--------------------------------------|
| **GDPR Art. 5** (Data minimization) | Plugins må kun be om nødvendige Microsoft Graph-permissions. Overly broad scope er non-compliant. |
| **GDPR Art. 32** (Security of processing) | Plugins må implementere encryption at rest/transit. Azure Key Vault anbefales for secrets. |
| **EU AI Act** (Transparency) | Plugins klassifisert som "high-risk AI" må dokumentere decision-making-logikk. |
| **AI Act Art. 52** (Transparency obligations) | Brukere må informeres om at de samhandler med AI. M365 Copilot håndterer dette, men custom engine agents må selv implementere. |

### Schrems II og datasuverenitet

**Utfordring:** EU Court of Justice-avgjørelsen (Schrems II) krever at persondata ikke overføres til USA uten adequate safeguards.

**Løsning for norske org:**
- **EU Data Boundary:** Microsoft 365 Copilot respekterer EU Data Boundary — data processing skjer i EU-regionen hvis konfigurert
- **Azure Norway regions:** Host custom engine agents i Norway East / Norway West for full datasuverenitet
- **Graph Connectors:** Indeksert data i Graph lagres i tenant region (EU for norske org)

**Checklist:**
- [ ] Verifiser at tenant er konfigurert med EU Data Boundary
- [ ] Custom engine agents deployed i Azure Norway regions
- [ ] API plugin endpoints hosted i EU/EEA
- [ ] Data Processing Agreement (DPA) på plass med Microsoft
- [ ] Sub-processor list reviewed (tredjepartstjenester)

### Forvaltningsloven § 11 (automatiserte avgjørelser)

Hvis plugin brukes til å fatte avgjørelser som påvirker individers rettigheter:
- **§ 11a:** Varsling om automatisert saksbehandling
- **§ 11b:** Rett til manuell vurdering hvis ønskelig
- **§ 11c:** Krav til transparens i beslutningsgrunnlag

**Anbefaling:** Declarative agents bør dokumentere hvilke data-kilder og API calls som brukes i decision-making.

## Kostnad og lisensiering

### Lisenskrav for plugin-bruk

| Plugin-type | Lisenskrav (brukere) | Lisenskrav (utviklere) |
|-------------|---------------------|------------------------|
| **Declarative agents** | M365 Copilot license ELLER metered usage tenant | Microsoft 365 Copilot developer license (testing) |
| **Custom engine agents** | M365 Copilot license ELLER metered usage tenant | Microsoft 365 Copilot developer license |
| **Graph connectors** | Ingen Copilot-lisens påkrevd (men anbefalt) | Graph API permissions |
| **API plugins** | M365 Copilot license (må brukes i declarative agent) | Microsoft 365 Copilot developer license |

**Viktig:**
- Noen agent capabilities kun tilgjengelig for tenants med **metered usage** eller brukere med **M365 Copilot license**
- **Developer licenses:** Gratis for testing, men krever production licenses for deployment

### Kostnadsmodell for distribusjon

| Distribusjonsmetode | Kostnad | Bemerkninger |
|---------------------|---------|--------------|
| **Sideload (personal use)** | Gratis | Kun for testing/utvikling |
| **Organizational catalog** | Gratis | Intern distribusjon (LOB apps) |
| **Microsoft Commercial Marketplace** | **$99 USD per year** (Partner Center membership) + **Revenue share** (hvis paid app) | ISV-lisens, Microsoft tar 20% revenue share |

### Optimaliseringstips

1. **Start med organizational catalog:** Test intern før Commercial Marketplace submission
2. **Bruk metered usage tenants for testing:** Unngå å kjøpe Copilot-lisenser for alle testbrukere
3. **Leverage Graph connector for read-only scenarios:** Billigere enn custom engine agents (ingen hosting cost)
4. **Microsoft 365 Agents Toolkit over Copilot Studio:** Toolkit er gratis, Copilot Studio krever Power Platform-lisens for produksjon

## For arkitekten (Cosmo)

### Spørsmål å stille kunden

1. **Hvem er målgruppen for plugin?**
   - Intern (LOB) eller ekstern (ISV)?
   - Antall brukere? (påvirker distribusjonsmetode)

2. **Hvilken data skal plugin tilgang til?**
   - Ekstern API (REST) → Declarative agent + API plugin
   - Microsoft Graph data → Graph connector
   - Egendefinert conversational logic → Custom engine agent

3. **Hva er customer's modenhetsnivå på AI/Copilot?**
   - **Early adopter:** Start med declarative agent (rask POC)
   - **Mature org:** Vurder custom engine agent for kontroll

4. **Finnes det compliance-krav?**
   - GDPR, AI Act, Forvaltningsloven?
   - Data residency requirements (Norge/EU)?

5. **Hva er distribusjonskanalen?**
   - Intern → Organizational catalog (gratis)
   - Ekstern → Microsoft Commercial Marketplace (Partner Center)

6. **Skal plugin utføre actions eller kun retrieval?**
   - Actions → API plugin (mutating operations)
   - Retrieval → Graph connector (read-only, indeksert data)

7. **Finnes det eksisterende bot-infrastruktur?**
   - Ja → Vurder custom engine agent (gjenbruk)
   - Nei → Start med declarative agent

8. **Hva er tidslinje og budsjett?**
   - Kort tidslinje + lite budsjett → Declarative agent (low-code)
   - Lengre tidslinje + høyere budsjett → Custom engine agent (full kontroll)

### Fallgruver å unngå

1. **Overly complex manifest:**
   - Hold manifest minimal — ikke inkluder unødvendige capabilities
   - LLM-orchestrator blir forvirret av for mange valg

2. **Manglende plugin description quality:**
   - Dårlige beskrivelser → plugin velges sjelden av orchestrator
   - Test med Copilot Developer Mode for å se selection rate

3. **Ignoring Responsible AI validation:**
   - RAI checks kjører automatisk ved sideload/publish
   - Plugins med problematic content blir avvist

4. **Sideloading uten plan for production distribution:**
   - Sideload er kun for testing — ikke production-ready
   - Plan for organizational catalog eller Marketplace early

5. **Hard dependencies on preview features:**
   - Preview manifest versions (`devPreview`) ikke tillatt i production
   - Bruk GA manifest versioner (`1.18` eller senere)

6. **Neglisjering av icon design:**
   - Ikoner er første inntrykk for brukere i App Store
   - Følg [design guidelines](https://learn.microsoft.com/microsoft-365-copilot/extensibility/agent-icon-management)

7. **Manglende error handling i API plugins:**
   - API failures vises direkte til brukere
   - Implementer graceful degradation

8. **Ingen testing med real users:**
   - LLM orchestration er non-deterministic
   - Test med ulike prompt-formuleringer og user personas

### Anbefalinger per modenhetsnivå

| Modenhetsnivå | Anbefaling | Reasoning |
|---------------|------------|-----------|
| **Pilot (PoC)** | Declarative agent i Copilot Studio | Raskeste time-to-value, ingen kode, grafisk designer |
| **Production (LOB)** | Declarative agent med API plugin (M365 Agents Toolkit) | Balance mellom kontroll og utviklingshastighet |
| **Advanced (Enterprise)** | Custom engine agent (Bot Framework) | Full kontroll, custom reasoning, egendefinert orchestration |
| **ISV (Marketplace)** | Declarative agent + Commercial Marketplace submission | Skalerbart, Responsible AI-compliant, global distribusjon |

**Best practice for alle nivåer:**
- Start med sideload (testing)
- Promoter til organizational catalog (intern pilot)
- Vurder Commercial Marketplace (ekstern distribusjon) hvis relevant

## Kilder og verifisering

| Seksjon | Kilde | Konfidensnivå |
|---------|-------|---------------|
| **Ecosystem Overview** | [Copilot extensibility in the Microsoft 365 ecosystem](https://learn.microsoft.com/microsoft-365-copilot/extensibility/ecosystem) | ✅ Verified (MCP) |
| **App Package Structure** | [Agents are apps for Microsoft 365](https://learn.microsoft.com/microsoft-365-copilot/extensibility/agents-are-apps) | ✅ Verified (MCP) |
| **Distribution Methods** | [Publish agents for Microsoft 365 Copilot](https://learn.microsoft.com/microsoft-365-copilot/extensibility/publish) | ✅ Verified (MCP) |
| **Manifest Schema** | [Microsoft 365 app manifest schema reference](https://learn.microsoft.com/microsoft-365/extensibility/schema) — seneste GA: v1.26 (april 2026) | ✅ Verified (MCP 2026-04) |
| **Plugin Types** | [Adopt, extend and build Copilot experiences](https://learn.microsoft.com/copilot/roadmap/overview) | ✅ Verified (MCP) |
| **Teams Admin Center** | [Manage apps in Teams admin center](https://learn.microsoft.com/microsoftteams/manage-apps) | ✅ Verified (MCP) |
| **Partner Center** | [Microsoft 365 and Copilot program](https://learn.microsoft.com/partner-center/marketplace/why-publish) | ✅ Verified (MCP) |
| **GDPR Compliance** | EU GDPR Articles 5, 32 | ⚠️ Baseline (legal text) |
| **Schrems II** | CJEU Case C-311/18 | ⚠️ Baseline (legal text) |
| **AI Act** | EU AI Act Articles 52, Annex III | ⚠️ Baseline (legal text) |
| **Forvaltningsloven** | Forvaltningsloven §§ 11a-11c (Norge) | ⚠️ Baseline (legal text) |
| **Licensing** | [Microsoft 365 Copilot developer licenses](https://learn.microsoft.com/microsoft-365-copilot/extensibility/prerequisites) | ✅ Verified (MCP) |

**Konfidensnivå-definisjon:**
- ✅ **Verified:** Hentet direkte fra Microsoft Learn via MCP (oppdatert per januar 2026)
- ⚠️ **Baseline:** Basert på modellkunnskap (legal/regulatory tekster, ikke Microsoft-dokumentasjon)

**Siste oppdatering av Microsoft-dokumentasjon:** April 2026 (reflektert i MCP-kall 2026-04-10) — Manifest v1.26 GA
