Building and customizing solutions using Microsoft 365 Copilot APIs and tools
Using a ZIP package as a custom app in Teams is a valid approach, but it behaves like any other custom Teams app: when the manifest or agent definition changes, a new package must be uploaded. That is why the custom app has to be updated each time a new version of the agent is produced.
To reduce manual effort and get more “automatic” updates, use one of the supported publishing paths where the Teams/Microsoft 365 client always points to the same agent endpoint and version selector:
- Publish directly from Copilot Studio / Foundry to Microsoft 365 and Teams
- Publish the agent to Microsoft 365 Copilot and Teams with Organization or Individual scope.
- A Microsoft 365 admin then approves the agent in the Microsoft 365 admin center. Once approved, it appears under Built by your org in the agent store for users to install.
- When a new agent version is created, the stable endpoint URL stays the same. If the version selector is set to Always use latest (default), users automatically get the latest version in M365/Teams without republishing or re-uploading a ZIP.
- Only if you change metadata visible in Teams/M365 (display name, descriptions, URLs) do you need to use the Update agent Teams and Microsoft 365 Copilot display properties option in the Publish menu; this updates the store metadata but still does not require a new ZIP upload.
- Use the Microsoft 365 admin center Agent Registry for ZIP-based distribution
- Instead of treating the ZIP purely as a Teams custom app, upload the agent ZIP into the Agents section of the Microsoft 365 admin center (Agent Registry).
- From there, configure who can Publish (install) and optionally Deploy (preinstall) the agent to users or groups.
- When a new ZIP is downloaded from Copilot Studio (for example, after structural changes), it can be uploaded again via Add agent or used to update an existing agent. This still requires an upload when the manifest changes, but centralizes management and assignment.
- Sideloading for test-only scenarios
- For development/test, enable sideloading in the Teams admin center (Teams apps → Setup policies → Upload custom apps = On).
- Makers can then upload the ZIP directly in Teams for themselves or small groups. This is still manual per ZIP change, but is intended for limited audiences and ALM/testing, not broad production distribution.
In summary:
- With a pure custom app ZIP flow, uploading a new package per version is expected.
- To avoid repeated manual uploads for every content or logic change, publish the agent to Microsoft 365/Teams from Copilot Studio/Foundry and rely on the stable endpoint plus the Always use latest version selector. Admins then only manage approval and app policies, not every individual version.
References: