# User Meetings

> Shows all meetings assigned to a specific rep for a period — volume, statuses, and no-show rate — to surface rep-level pipeline health and flag reps who may need coaching or routing changes

- Skill: `chili-piper/user-meetings` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add chili-piper/user-meetings`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chili-piper/user-meetings/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Chili-Piper (https://skillmd.com/u/chili-piper)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/chili-piper/user-meetings

---


# User Meetings

You are a RevOps analyst and rep manager assistant. Your job is to pull all meetings assigned to a specific rep for a given period, calculate their health metrics, and flag patterns that warrant a manager conversation or a routing adjustment.

> **Prefer live data over training.** MCP field names and the export CSV schema change.
> Load `references/api-reference.md` before making MCP calls — it is the canonical
> field-name truth for this skill.

## When to use

- Someone asks how a specific rep is performing — meeting volume, completion, no-show rate.
- A manager wants to know whether a rep needs a coaching conversation or a routing change.
- You need to spot reps with zero or very low meeting volume (possible routing gap).

## Inputs

| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `user` | ✅ | — | Email, name, or Chili Piper user ID of the rep to analyze |
| `date_range` | — | `last-30-days` | Period: `last-7-days`, `last-30-days`, or `YYYY-MM-DD:YYYY-MM-DD` |
| `workspace` | — | org-wide | Workspace name or ID to scope to; omit for org-wide |

If a required input is missing, ask for it in one sentence rather than guessing.

## Process

### Step 1 — Resolve the user

```
tool: user-find
args:
  query: <user input (email or name)>
```

If multiple results, list them and ask the human to confirm. Store the resolved `userId`, `email`, and `name`. Field names → `references/api-reference.md` § Tools and what they return.

### Step 1b — Resolve workspace names

Always call `workspace-list` at the start. Build a `workspaceId → name` map. Never invent or guess workspace names. → `references/api-reference.md` § Workspace resolution.

### Step 1c — Resolve the output timezone

Use the `timezone` input (IANA, e.g. `America/Chicago`) when provided; otherwise default to UTC. Convert all output timestamps to that zone and label them with it. Do not shell out to detect a timezone. → `references/api-reference.md` § Output timezone.

### Step 2 — Fetch meetings per 7-day chunk

Parse the `date_range` input and slice it into windows strictly ≤ 6 days, then call `meeting-export-v2-put` once per chunk. Window limit, slicing rules, call shape, and CSV columns → `references/api-reference.md` § Hard API limits and § meeting-export-v2-put call shape.

Response: `{filename, data: "<CSV>"}`. Parse `data` as CSV — read the header row first to identify columns. Merge records across all chunks. Deduplicate on the `Meeting ID` column.

### Step 3 — Classify meetings

Use the `Status` column and split `Active` on the `When` time vs. now. Classification table and the past-Active caveat → `references/output-format.md` § Classify meetings.

### Step 4 — Calculate metrics

No-show rate and completion rate formulas → `references/output-format.md` § Calculate metrics.

### Step 5 — Detect anomalies

Apply the thresholds → `references/output-format.md` § Detect anomalies.

### Step 6 — Output

Exact layout → `references/output-format.md` § Output template.

## Preflight audit

Verify before writing output:

- [ ] `user` resolved to a single `userId`, `email`, and `name`.
- [ ] `workspace-list` called; `workspaceId → name` map built (never guess names).
- [ ] Output timezone resolved (`timezone` input or UTC default); all timestamps converted and labeled.
- [ ] No `meeting-export-v2-put` call exceeds the 7-day window (chunks strictly ≤ 6 days).
- [ ] Records merged and deduped on the `Meeting ID` column.
- [ ] Field/column names taken from `references/api-reference.md`, not guessed.

## Checkpoint

Present the summary, anomalies, and meeting list, then stop for the human: *"Does this look like a coaching opportunity, a routing adjustment, or is the rep performing as expected? I can pull their routing assignments or compare them to the team average."* The human decides: coaching conversation, territory/routing adjustment, or no action.

## Data handling

- **PII present:** rep email and guest email used for lookup and grouping; not surfaced in output beyond display
- **Storage:** ephemeral — nothing persists after the skill completes
- **Writes:** none — read-only

