# Assign Offline Profile

Use when the user needs to bind users or teams to a Mobile Offline Profile so they...

- Repository: https://github.com/microsoft/power-platform-skills (1098 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add microsoft/power-platform-skills --skill assign-offline-profile -g -a claude-code -y`
Codex: `npx skills add microsoft/power-platform-skills --skill assign-offline-profile -g -a codex -y`
Cursor: `npx skills add microsoft/power-platform-skills --skill assign-offline-profile -g -a cursor -y`
Gemini CLI: `npx skills add microsoft/power-platform-skills --skill assign-offline-profile -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add microsoft/power-platform-skills`

## Description

Use when the user needs to bind users or teams to a Mobile Offline Profile so they actually receive offline sync on their devices. Without this, the profile exists in Dataverse but no one's app uses it.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

**Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)**, read first.

**References:**

- [offline-profile-schema.md](${PLUGIN_ROOT}/shared/references/offline-profile-schema.md), `usermobileofflineprofilemembership` / `teammobileofflineprofilemembership` entity field map
- [dataverse-offline-api.md](${PLUGIN_ROOT}/shared/references/dataverse-offline-api.md), Web API recipe (§12, membership POSTs)

# Assign Offline Profile

Bind one or more users and/or teams to an existing Mobile Offline Profile. Without this step, the profile exists in Dataverse but is unbound, no one's app actually uses it for offline sync.

Per the maker portal's UX (the "Assign profile to user" dialog under env settings), this is a separate operation from profile creation. Many users hit "I created the profile but offline still doesn't work", the missing piece is membership.

Before project reads or commands, apply
[app-working-directory.md](${PLUGIN_ROOT}/shared/references/app-working-directory.md).
Resolve one absolute `working_dir` for a direct call or require the child
invocation's owner root. Keep every shell/file operation, referenced recipe,
and retry on that root and the selected environment/tenant; missing or
conflicting context is `NEEDS_CONTEXT`. File tools use `<working_dir>/...`.
Planning-phase calls may discover and propose the membership diff but must
return before the confirmation gate, POST/DELETE, or artifact updates.

## Workflow

1. Verify project + locate profile → 2. Pick users/teams → 3. Discover existing memberships → 4. Confirm diff (single gate) → 5. POST memberships → 6. Verify → 7. Summary

---

### Step 1, Verify project + locate profile

The rest: https://github.com/microsoft/power-platform-skills/blob/HEAD/plugins/mobile-apps/skills/assign-offline-profile/SKILL.md
