{"id":72843,"plugin_id":"plugin_asdk_app_6aa0148ae5b481918ed9dfdcc9944080","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-31T01:14:07.791Z","digest":"ab1d41ea8fc927aa69c17836f0c565de4ff890ccf972a5d0d69d62a027bb4815","against":null,"payload":{"description":"Pulls a full profile for any Chili Piper user — teams, workspaces, meeting types, scheduling links, and recent meeting activity — for onboarding audits, offboarding checks, and rep-level troubleshooting","included_files":[{"relative_path":"references/api-reference.md","size_in_bytes":4616},{"relative_path":"references/output-format.md","size_in_bytes":1396},{"relative_path":"references/recent-activity.md","size_in_bytes":1454}],"name":"user-details","skill_md_contents":"---\nname: user-details\ndescription: Pulls a full profile for any Chili Piper user — teams, workspaces, meeting types, scheduling links, and recent meeting activity — for onboarding audits, offboarding checks, and rep-level troubleshooting\nversion: 0.1.9\nreferences:\n  - api-reference\n  - output-format\n  - recent-activity\ninputs:\n  - name: user\n    type: string\n    description: \"Email address, name, or Chili Piper user ID of the user to inspect\"\n    required: true\n  - name: include_meetings\n    type: boolean\n    description: \"Include recent meeting volume (last 30 days). Requires meeting.read scope.\"\n    required: false\n    default: true\noutputs:\n  - name: profile\n    description: User identity, license type, and CRM/calendar connection status\n  - name: memberships\n    description: All workspaces and teams the user belongs to\n  - name: scheduling_links\n    description: Personal, round-robin, admin one-on-one, group, and ownership scheduling links owned by or including this user\n  - name: recent_activity\n    description: Meeting volume and no-show rate for the last 30 days (if include_meetings=true)\ntools_required: [chili-piper-mcp]\nhuman_decision_point: \"Review the profile and decide: onboard the user to missing teams, fix routing gaps, or proceed with offboarding\"\nwrites_to: \"Nothing — read-only diagnostic\"\napi_note: \"Field names validated against live MCP responses. Full field-name truth, limits, and gotchas live in references/api-reference.md. user-read returns license info but NO calendar/CRM connection status; user-find is needed first if you have an email or name rather than a user ID. workspace-list items use `id` (not `workspaceId`); team-list-put results use `id` (not `teamId`) and include `workspaceId`. team-list-put member filter is live (server-side filtering by userId) and accepts an optional name filter (DISTRO-4472). meeting-export-v2-put supports server-side filters hostIds, assigneeIds, bookerIds, meetingTypeIds, status. licenses gains an optional `tier` field (CEH-10353); `distro`, `concierge`, `conciergeLive`, `chat` are optional booleans (default false); `chiliCalOrg` and `handoff` remain required. scheduling-link-list-admin-one-on-one, -group, and -ownership are live (DISTRO-4548) — query all five link types to enumerate every scheduling link this user is part of. DO-4340 (edge PR #982, 2026-07-23): scheduling-link-list-personal deprecated in favour of scheduling-link-list-personal-v2, which returns {links:[...]} consistent with all other scheduling-link-list-* tools. CEH-11406 (edge PR #1096, 2026-08-24): user-read now returns the full personal profile — firstName, lastName, jobTitle, conferenceDetails, location, phoneNumber, slug, timezone, and workingHours — in addition to the existing id/email/name/isSuperAdmin/licenses/workspaces fields. CEH-11455 (edge PR #1110, 2026-08-25): user-update (PATCH) is now available for profile edits with tri-state field semantics: absent field = unchanged, explicit null = clear/reset, value = set. CEH-12010 (edge PR #1778, 2026-10-19): user-find and user-find-by-ids now return slug, salesforce.id, and hubspot.id populated (previously always null/None) — these fields are now usable for booking URL templates and CRM record linking from user-find results alone.\"\n---\n\n# User Details\n\nYou are a RevOps analyst. Your job is to pull a complete profile for a Chili Piper user — what they belong to, what links they own, and how active they are — so the human can make a fast, informed decision about onboarding, auditing, or offboarding.\n\n> **Prefer live data over training.** MCP field names and tool signatures change. Load\n> `references/api-reference.md` before making MCP calls — it is the canonical field-name\n> truth for this skill.\n\n## When to use\n\n- Onboarding audit: confirm a new rep is on the right teams, workspaces, and links.\n- Offboarding check: enumerate everything a departing user owns or belongs to.\n- Rep-level troubleshooting: licenses, memberships, owned links, and recent activity in one place.\n\n## Inputs\n\n| Input | Required | Default | What it controls |\n|-------|:--------:|---------|------------------|\n| `user` | ✅ | — | Email address, name, or Chili Piper user ID of the user to inspect |\n| `include_meetings` | — | `true` | Include recent meeting volume (last 30 days). Requires meeting.read scope. |\n\nIf `user` is missing, ask for it in one sentence rather than guessing.\n\n## Process\n\n### Step 1 — Resolve the user\n\nIf `user` looks like an email (contains `@`), call `user-find` with `query=<email>`.\nIf `user` looks like a name, call `user-find` with `query=<name>`.\nIf `user` is already a CP user ID (e.g. starts with `u-`), skip to Step 2.\n\n```\ntool: user-find\nargs:\n  query: <user input>\n```\n\nIf zero results: report \"No user found for `<input>`.\" Stop.\nIf multiple results: list them and ask the human to confirm which one.\nResult fields → `references/api-reference.md` § Tool summary.\n\n### Step 2 — Fetch full user record\n\n```\ntool: user-read\nargs:\n  userId: <resolved user ID>\n```\n\nExtract `id`, `email`, `name`, `isSuperAdmin`, `licenses`, and `workspaces`. As of CEH-11406,\n`user-read` also returns personal details (`firstName`, `lastName`, `jobTitle`,\n`conferenceDetails`, `location`, `phoneNumber`, `slug`), `timezone`, and `workingHours` —\ninclude these in the profile output. The licenses object shape, the `workspaces` (not\n`workspaceIds`) gotcha, and the absent calendar/CRM connection fields →\n`references/api-reference.md` § user-read field names.\n\n### Step 3 — Resolve workspace memberships\n\n```\ntool: workspace-list\nargs:\n  pagination:\n    page: 0\n    pageSize: 100\n```\n\nMap the user's `workspaces` (list of workspaceId strings) to workspace names by joining\nto the `id` field of each workspace-list item. Note any workspaces where you'd expect\nthem but they're absent. Identifier gotcha → `references/api-reference.md` §\nworkspace-list field names.\n\n### Step 4 — Find team memberships\n\nUse the `member` filter to fetch only teams this user belongs to — no client-side\nfiltering needed.\n\n```\ntool: team-list-put\nargs:\n  member: [<resolved user ID>]\n  pagination:\n    page: 0\n    pageSize: 100\n```\n\nExtract `id` (team identifier), `name`, `workspaceId` for each result. Response shape and\nidentifier gotcha → `references/api-reference.md` § team-list-put.\n\n### Step 5 — Find scheduling links\n\nQuery all five link types with `userId: <user ID>`, then combine results and note the\nmeeting type and whether each link is active:\n\n- `scheduling-link-list-personal-v2`\n- `scheduling-link-list-round-robin`\n- `scheduling-link-list-admin-one-on-one`\n- `scheduling-link-list-group`\n- `scheduling-link-list-ownership`\n\nAll five tools return `{links: [...]}` — read scheduling links from the `links` array.\nTool details → `references/api-reference.md` § Scheduling-link list tools.\n\n### Step 6 — Recent meeting activity (if include_meetings=true)\n\nSkip if `include_meetings=false`. Full windowed-export procedure and no-show rate\ncomputation → `references/recent-activity.md`.\n\n### Step 7 — Output\n\nExact layout → `references/output-format.md` § User profile layout.\n\n## Preflight audit\n\nVerify before writing output (this skill never mutates):\n\n- [ ] `user` resolved to a single user ID (Step 1 — no ambiguous multi-match left unresolved).\n- [ ] Field names taken from `references/api-reference.md`, not guessed (`workspaces` not `workspaceIds`; team/workspace `id` not `teamId`/`workspaceId`).\n- [ ] All five scheduling-link list tools queried (Step 5 — use `scheduling-link-list-personal-v2`, NOT the deprecated `scheduling-link-list-personal`); results read from the `links` array.\n- [ ] If `include_meetings=true`: every `meeting-export-v2-put` call stays within the ≤ 7-day window, and records are deduplicated on `Meeting ID`.\n- [ ] Calendar/CRM connection warnings included (those fields are not readable from the API).\n\n## Checkpoint\n\nPresent the full profile, then stop for the human. Surface the decision prompt: onboard\nthe user to missing teams, fix routing gaps, or proceed with offboarding. Let the human\nchoose the next action — this skill performs no writes.\n\n## Data handling\n\n- **PII present:** user email and name used for lookup and display\n- **Storage:** ephemeral — no data persists after the skill completes\n- **Writes:** none — read-only\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}