Chili Piper
Chili Piper v1.0.0
Book and route meetings
From the developer
Declared limitations
- Do not trigger for writing outbound sales email.
- Do not trigger for CRM pipeline reporting.
- Do not trigger for personal travel or restaurant bookings.
Not specified in the available declarations: capabilities, pricing & account requirements.
Onboarding example
How many meetings did each rep get last week?
Sources & dates
Developer declarations; not independently tested. Listing last checked Nov 11, 2026. Package observed Nov 11, 2026.
Description
From the marketplace listing
Connect ChatGPT to your Chili Piper account to review and manage meetings, lead routing, and scheduling in plain language. Ask questions like "How many meetings did each rep get last week?", "Why didn't this lead book?", or "Why does this rep have no availability?" and get answers from your live Chili Piper data. What you can do: • Meetings: list, export, and inspect meetings, including how each one was booked and routed. Mark no-shows or cancel. • Routing: review Concierge, Distro, and Handoff routers, rules, and distributions. Audit for coverage gaps and adjust round-robin weights. • Scheduling: check rep and team availability, and manage meeting types and scheduling links. • Users and teams: look up users, manage workspace and team membership, and onboard or offboard reps. • Chat AI: review conversation logs and routing outcomes. Includes built-in skills for common admin workflows: meeting diagnostics, routing audits, no-show analysis, availability checks, and user onboarding and offboarding. Skills that make changes show you a plan and ask for confirmation first. Requires a Chili Piper account. Sign in with a Chili Piper Admin login.
Language: English · Automatically detected from descriptions.
Matches for “changes”
Exact text from the indicated source. A mention alone does not establish support for your task.
Publisher full description
Connect ChatGPT to your Chili Piper account to review and manage meetings, lead routing, and scheduling in plain language. Ask questions like "How many meetings did each rep get last week?", "Why didn't this lead book?", or "Why does this rep have no availability?" and get answers from your live Chili Piper data. What you can do: • Meetings: list, export, and inspect meetings, including how each one was booked and routed. Mark no-shows or cancel. • Routing: review Concierge, Distro, and Handoff routers, rules, and distributions. Audit for coverage gaps and adjust round-robin weights. • Scheduling: check rep and team availability, and manage meeting types and scheduling links. • Users and teams: look up users, manage workspace and team membership, and onboard or offboard reps. • Chat AI: review conversation logs and routing outcomes. Includes built-in skills for common admin workflows: meeting diagnostics, routing audits, no-show analysis, availability checks, and user onboarding and offboarding. Skills that make changes show you a plan and ask for confirmation first. Requires a Chili Piper account. Sign in with a Chili Piper Admin login.
Changes
No changes recorded yet. Follow this plugin to keep track of future changes.
First seen Oct 30, 2026. Last seen Nov 11, 2026.
Similar plugins
Find competitors to follow as you develop your plugin.
-
Connect Book with Schedulo to book a meeting with a host directly in ChatGPT — see their meeting types, find open times, and reserve a sl...
Shared terms: meeting, book, availability, cancel
-
meetergo connects ChatGPT to your meetergo account. Check availability, book, reschedule or cancel meetings, and manage contacts and rout...
Shared terms: meeting, book, availability, cancel
-
Run LeanData Scheduling conversationally. Sales reps handle their own links and meetings; admins handle pools, routing, and availability ...
Shared terms: meeting, admin, availability, rep
-
Connect ChatGPT to your Avoma workspace and get meeting intelligence, including call transcripts, AI-generated notes, scorecard results, ...
Shared terms: meeting, last, outcome, rep
-
Search and update your Metaventus CRM and manage your meetings: contacts, companies, notes, availability and bookings.
Shared terms: meeting, admin, audit, availability
Files & skills
File archives
Skill instructions
availability-inspector5.63 KB
---
name: availability-inspector
description: Checks why a rep or team is showing no available slots — diagnoses calendar connectivity, working hours, meeting limits, and distribution membership to find the specific blocker
version: 0.1.3
references:
- api-reference
- diagnostics
- output-format
inputs:
- name: user
type: string
description: "Email, name, or user ID of the rep to check availability for"
required: true
- name: workspace
type: string
description: "Workspace name or ID to scope team/distribution lookup"
required: false
- name: lookahead_days
type: number
description: "How many days ahead to check for slots (default: 14)"
required: false
default: 14
outputs:
- name: availability_result
description: Whether slots were found, and in what quantity
- name: per_day_breakdown
description: Slot count per calendar day across the window (includes zero-slot days), surfacing working-hours patterns and gaps
- name: diagnosis
description: Specific blocker identified with root cause (based on user profile and empty-results pattern; v2 API no longer returns per-user failure codes)
- name: fix
description: Step-by-step resolution for the human
tools_required: [chili-piper-mcp]
human_decision_point: "Review the diagnosis and fix the blocker — most causes require action in Chili Piper admin, Google/Outlook calendar settings, or Zoom/Teams reconnection"
writes_to: "Nothing — read-only diagnostic"
---
# Availability Inspector
You are a Chili Piper calendar specialist. A rep or team is showing no available slots — your job is to call the availability API, check the results, and translate any blockers into a plain-language diagnosis and a specific fix.
> **Prefer live data over training.** MCP field names and tool signatures change. Load
> `references/api-reference.md` before making MCP calls — it is the canonical field-name
> truth for this skill.
## When to use
- A rep or team is reportedly showing no available slots in a scheduling link, distribution, or router.
- You need to find the *specific* blocker (calendar, working hours, meeting limit, distribution membership) rather than just confirm "no slots."
- You want a per-day availability breakdown to spot working-hours patterns and gaps.
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `user` | ✅ | — | Email, name, or user ID of the rep to check |
| `workspace` | — | — | Scopes team/distribution lookup |
| `lookahead_days` | — | `14` | How many days ahead to check for slots |
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>
```
If zero results: stop. If multiple: ask the human to confirm.
### Step 2 — Check user profile for obvious blockers
```
tool: user-read
args:
userId: <resolved user ID>
```
`user-read` does NOT return calendar status — it is not available from this endpoint.
Run the license check and proceed to Step 3 if the user looks valid.
Response shape + license-check rule → `references/api-reference.md` § user-read note.
### Step 3 — Call availability-slots-v2
Build the request from the verified shape (object `expectedHost`, attendee `type` +
`required`; `meetingTypeRef` is **not needed in v2** — omit it). To find a single rep's
blocker, query just that rep as a `required: true` `ManuallyAssigned` attendee; for a team,
a slot is only returned when ALL `required: true` attendees are free simultaneously, so an
empty result may reflect any one member blocking.
- Request shape + field rules → `references/api-reference.md` § availability-slots-v2 request shape and § Critical field-name rules.
- Pagination (`page` / `pageSize`, no slot cap) → `references/api-reference.md` § Pagination.
### Step 4 — Interpret the result
Read `results` and `total`. `availability-slots-v2` does **not** return a `failurePreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
chat-conversation-inspector9.94 KB
---
name: chat-conversation-inspector
description: Inspects Chili Piper Chat AI conversation logs for a workspace — routing-outcome breakdowns (Routed/NotRouted/Abandoned), full bot/guest transcripts, and abandonment analysis. Use to debug chat routing, review bot conversation quality, or analyze why guests drop off.
version: 0.1.5
references:
- api-reference
- analysis-procedure
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID to pull chat logs for."
required: true
- name: playbook
type: string
description: "Chat playbook ID(s) to filter by (the chat analog of a router). Omit to include all playbooks in the workspace."
required: false
- name: date_range
type: string
description: "Window to inspect: 'today', 'last-7-days', or 'YYYY-MM-DD:YYYY-MM-DD'. Windows over 30 days are chunked into sequential calls."
required: false
default: "last-7-days"
- name: outcome_filter
type: string
description: "Only analyze conversations with this routing outcome: 'Routed', 'NotRouted', or 'Abandoned'. Omit for all."
required: false
- name: guest_email
type: string
description: "Guest email to drill into — renders the full transcript(s) for that guest's conversations."
required: false
outputs:
- name: outcome_summary
description: Conversation counts and percentages by routing outcome (Routed / NotRouted / Abandoned), with rep-join and meeting-booked rates
- name: conversation_list
description: Table of conversations — guest, playbook, outcome, assignee, started/ended, meeting booked
- name: transcript
description: Full Bot/Guest message transcript for selected conversation(s)
- name: abandonment_analysis
description: Patterns behind Abandoned conversations — who spoke last, drop-off depth, time-of-day clusters — with a recommendation
tools_required: [chili-piper-mcp]
human_decision_point: "Review the outcome breakdown and abandonment findings — decide whether the fix is playbook configuration, bot response quality, or rep availability, and who should own it"
writes_to: "Nothing — read-only"
api_note: "2026-07-15: chat-logs live in the deployed MCP (since DISTRO-4429, PR #882). DISTRO-4615 (edge #961, 2026-07-09) added ruleId/ruleName rule attribution to ChatConversationLog; DISTRO-4612 (edge #957, 2026-07-07) added guestEmail/guestId/ruleId/ruleName server-side filters; DISTRO-4608 (edge #948, 2026-07-03) made a workspace with no chat sessions return an empty page instead of an error. Assignee is a single conversationAssigneeId (not an assignees array); pagination is 0-indexed with pageSize max 50. Field-name truth → references/api-reference.md. 2026-07-22: CEH-11034 (edge PR #1010) added evaluatedRules: List[ChatRuleEvaluation] to ChatConversationLog — full rule-evaluation trail (ruleId, ruleName, ruleType, matched boolean, evaluatedAt) for every rule evaluated during the conversation, not just the deciding one; entries with matched=false show rules that were evaluated but did not fire. 2026-09-08 (CEH-11625, edge PR #1171): ChatConversationLog now includes assignments: List[ChatAssignment] — the full assignee roster for the session (every conversation and meeting assignee in a double round-robin), not just the primary. Each entry: {assigneeId, method (e.g. FlexibleRoundRobin), assignmentType ('Conversation'|'Meeting')}. conversationAssigneeId is retained as the primary assignee label. The earlier 'Assignee is a single conversationAssigneeId (not an assignees array)' note is superseded — use assignments for the full roster. 2026-09-14 (CEH-11643, edge PR #1181): New chat-transcript MCP tool available (GET /chat/transcript) — returns the full Guest/Bot/Rep transcript from the message archive, including rep turns and reply-button label selections that chat-logs (Chat-AI turns only) cannot surface. Optional start/end time window (ISO-8601 inclusive), page/pageSize pagination (0-indexed); unknown senders Preview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
chiliforms-configuration11.9 KB
---
name: chiliforms-configuration
description: Builds a ChiliForms embed, a web form Chili Piper generates from a Concierge router, for customers without a form of their own. Reads the router's fields and returns a ready-to-paste snippet, or diagnoses a broken embed. Read-only.
version: 0.1.0
references:
- api-reference
- embed-reference
- troubleshooting
- output-format
inputs:
- name: router
type: string
description: "Concierge router name (substring), slug, or router ID the form should route through."
required: true
- name: mode
type: string
description: "generate (build the form from the router, the default), describe (schema only, the customer renders it), or attach (only on explicit request, e.g. migrating a legacy chiliforms-fire.js integration)."
required: false
default: "generate"
- name: form_html
type: string
description: "Explicit attach requests only: the customer's existing <form> markup, or its field name attributes, checked against the router's third-party form mapping."
required: false
- name: requirements
type: string
description: "Plain-language customisations, e.g. 'French labels, hide the phone field, reCAPTCHA, send them to /thanks after booking'."
required: false
- name: workspace
type: string
description: "Workspace name or ID, to narrow the router search when names collide."
required: false
outputs:
- name: snippet
description: Ready-to-paste HTML, the Concierge snippet plus chiliforms.js in the right order and the configured create() call
- name: field_report
description: What the form will collect (label, type, required, hidden value, URL prefill aliases), plus any blocking gaps
- name: handoffs
description: Router changes the embed needs but this skill does not make (no Router Link or trigger that can submit the form, unknown data field), each routed to concierge-router-configuration
tools_required: [chili-piper-mcp]
human_decision_point: "Present the snippet, field report and any blocking gaps. The customer decides whether to publish it on a live page, and whether to fix router-side gaps through concierge-router-configuration (a separate, confirmed write)."
writes_to: "Nothing, read-only. Router changes are handed off to concierge-router-configuration."
---
# ChiliForms Configuration
You are a Chili Piper web-integration engineer. When a customer has no form of their own,
turn a Concierge router into a working ChiliForms embed: confirm the router can supply the
fields, and hand back a snippet the customer can paste into their site with no guesswork.
> **Prefer live data over training.** Load `references/api-reference.md` before making
> MCP calls. It holds the verified field names for this skill, and it maps each MCP trigger
> view to the trigger ChiliForms reads.
**What ChiliForms is.** `chiliforms.js` is a script served from
`https://fire.chilipiper.com/chiliforms/cjs/chiliforms.js`. It reads a Concierge router's
published field configuration, **generates** a form from it (labels, types, required flags,
choices, translations), and routes the submission through Concierge, so the guest lands on
the booking calendar. It needs no API key. It only reads what a visitor to the router's
booking page could already see.
## When to use
- A customer has **no form of their own** and wants Chili Piper to provide one on their site. This is the primary use case.
- A customer wants to render the form in their own framework but still read labels, types and choices from the router (`describe` mode).
- Someone is replacing the legacy form-generating `chiliforms.js` script and wants the equivalent new configuration.
- An existing ChiliForms embed renders nothing, drops a field, or doesn't open the calendar. Diagnose it with `references/troubleshooting.md`.
**Not for customers who already have a form** (custom HTML, CMS, HubSpot, Marketo, Pardot,
…). They use the standard Concierge snippet (`ChiliPiper.deploy`, Preview of the first 4,000 characters. Read full instructions →
Referenced files: 4 — file references are metadata, not package contents.
concierge-debugger7.12 KB
---
name: concierge-debugger
description: Debugs why a specific lead did not book — traces the concierge routing session, identifies the rule that fired (or why none did), and recommends a targeted fix
version: 0.2.6
api_note: "concierge-logs: optional page/pageSize pagination added (DISTRO-4576, max 500 per page); Step 2 and preflight updated to paginate when searching for a lead in high-volume routers. DISTRO-4612 (PR #957, 2026-07-07): guestEmail/guestId/ruleId/ruleName server-side filters added — Step 2 now passes guestEmail directly, eliminating client-side email matching. As of DISTRO-4623 (PR #962, 2026-07-09): concierge-list-routers now returns `inAppButton` and `routerLink` trigger fields on each router's read view (separate from `form`; no longer present in `form.readOnlyTriggers`). Note which trigger kinds are active when diagnosing non-bookings — a missing trigger kind means leads cannot arrive via that channel (e.g., no `routerLink` means no one could have booked via the router's shareable URL). As of CEH-10905 (edge PR #1031, 2026-08-03): concierge-list-routers and the single-router GET now include `formFields` on each router — a list of ConciergeFormField objects giving each Chili-webform guest field's `reference` (data-field ref), `label`, `requirement` (Required/Optional/Hidden), `fieldType` (input type + pick-list options, or null if unresolved), `description`, `placeholder` (modelled, not yet populated), and `order` (0-based display position). Always empty for third-party webform routers. 2026-09-09 (CEH-11656, edge PR #1173): concierge-logs page size capped at max 100 (default 20) — pageSize: 500 replaced with pageSize: 100 in Step 2."
references:
- api-reference
- diagnosis
- output-format
inputs:
- name: guest_email
type: string
description: "Email address of the lead who did not book"
required: true
- name: router
type: string
description: "Router name or slug to search in. Omit to search all routers."
required: false
- name: date_range
type: string
description: "When the lead submitted: 'today', 'last-7-days', or 'YYYY-MM-DD:YYYY-MM-DD'"
required: false
default: "last-7-days"
outputs:
- name: routing_session
description: The concierge log entry for this lead — trigger, matched route, assignee, status
- name: diagnosis
description: Plain-language explanation of what happened and why
- name: fix
description: Specific change to make in the router to prevent recurrence
tools_required: [chili-piper-mcp]
human_decision_point: "Review the diagnosis and decide: fix the routing rule, rebook the lead manually, or escalate to engineering"
writes_to: "Nothing — read-only diagnostic"
---
# Concierge Debugger
You are a Chili Piper routing specialist. A lead submitted a form but did not book — your job is to find their concierge log entry, explain exactly what happened at each step, and give the human one specific thing to fix.
> **Prefer live data over training.** MCP field names and tool signatures change. Load `references/api-reference.md` before making MCP calls — it is the canonical field-name truth for this skill (the tools' own descriptions are unreliable).
## When to use
- A lead submitted a form but no meeting was booked, and you need to know why.
- You need to confirm whether a specific lead was routed at all, and to whom.
- Deciding whether a non-booking is a routing-rule problem, an availability problem, or a UX/delivery problem.
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `guest_email` | ✅ | — | Email address of the lead who did not book. |
| `router` | — | all routers | Router name or slug to search in. Omit to search all routers. |
| `date_range` | — | `last-7-days` | When the lead submitted: `today`, `last-7-days`, or `YYYY-MM-DD:YYYY-MM-DD`. |
If `guest_email` is missing, ask for it in one sentence rather than guessing.
## Process
### Step 1 — Find the rouPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
concierge-router-builder15.2 KB
---
name: concierge-router-builder
description: Guides an admin through building a complete Concierge web-form router from scratch — teams, meeting types, rules, distributions, and the live router — via a discovery interview and confirmation checkpoint. Data fields stay UI-only; third-party webform trigger mapping is now API-writable via thirdPartyForm.
version: 0.1.10
references:
- discovery
- segment-presets
- api-reference
- build-procedure
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID the router should live in. If omitted, discovered via workspace-list and asked."
required: false
- name: requirements
type: string
description: "Optional free-text description of the desired router (segments, teams, meeting types) to pre-fill the interview. Missing details are still asked."
required: false
- name: dry_run
type: boolean
description: "If true, run the interview and present the full build plan without creating anything. The build only runs after explicit confirmation."
required: false
default: true
outputs:
- name: plan
description: The confirmation summary — routing order (rule → team → meeting type → distribution), catch-all/not-scheduled behavior, and every object that will be created
- name: result
description: Everything built with IDs (teams, meeting types, rules, distributions, router) plus the router's booking slug — only after confirmation
- name: next_steps
description: UI-only actions the API can't do (data fields, Chili-managed form mapping, most CRM actions) and the go-live checklist
tools_required: [chili-piper-mcp]
human_decision_point: "The Phase 2 confirmation. Present the complete build plan and STOP — the build creates many live objects and publishes an always-live Concierge router. Nothing is created until the admin confirms."
writes_to: "Chili Piper — creates teams, meeting types, rules, distributions, and a live Concierge router (multi-object, NOT transactional; a mid-build failure leaves earlier objects behind). Data fields are UI-only (or data-field-create). Chili-managed form mapping is also UI-only. Third-party webform trigger mapping is set via thirdPartyForm in the create call."
api_note: "2026-07-21: data-field read/create and form mapping have NO MCP/Edge API — they are UI-only prerequisites (Settings → Data Fields; Concierge Form Mapping) for Chili-managed webform routers (see 2026-08-19 note for third-party). The router's form/rule `dataField` references must already exist: standard defaults (PersonEmail, PersonFirstName, …) are always valid; custom fields need their UUID from the UI or data-field-create. An unknown `dataField` fails concierge-router-create with 400. Field truth → references/api-reference.md.; 2026-07-30 (CEH-11141, edge PR #1024): AddToCampaign is now a supported Concierge crmAction — {type: 'AddToCampaign', campaignId, memberStatus} — alongside ConvertLead. Update ownership and create-event remain UI-only. Preflight checklist updated.; 2026-07-30 (verified on a live tenant): ConvertLead written via the API is INVISIBLE in the Concierge Flow Builder — the API accepts and publishes it (the node is real in the draft+published trees and fires post-booking), but the canvas renders no node and the SCHEDULED-branch ACTION menu offers no Convert Lead, so admins cannot see, edit, or remove it in the UI (API-only inspect/remove via router get/update). Whenever a build writes ConvertLead, say so explicitly in the hand-off output so the admin knows it exists. AddToCampaign UI rendering not yet verified. 2026-08-13 (CEH-11300/CEH-11302, edge PR #1069): Update Record and Create/Upsert Record CRM actions are now API-supported — SalesforceUpdateFields / HubspotUpdateFields (Update Record) for both Concierge and Handoff, SalesforceUpsertRecord / HubspotUpsertRecord (Create/Upsert Record) for Concierge only; field shapes in references/api-reference.md. campaign-list / campaign-seaPreview of the first 4,000 characters. Read full instructions →
Referenced files: 5 — file references are metadata, not package contents.
concierge-router-configuration22.5 KB
---
name: concierge-router-configuration
description: Creates, reads, updates, and deletes Chili Piper Concierge routers — the web-form routing configs that decide which rep a form submission books with. Always-live writes with dry-run diffs and representability checks; the write complement to concierge-debugger/routing-audit.
version: 0.2.5
references:
- api-reference
- write-procedures
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID containing the router."
required: true
- name: action
type: string
description: "One of: list, get, create, update, delete."
required: true
- name: router
type: string
description: "Router name (substring), slug, or router ID. Required for get/update/delete."
required: false
- name: changes
type: string
description: "Desired state for create/update in plain language (e.g. 'route demo requests from enterprise domains to the AE distribution with the Demo meeting type')."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: plan
description: Dry-run diff — routing rows rendered as rule → assignment + meeting type, plus any form/branding changes, and every object that would change
- name: result
description: Applied changes with post-write verification (only when dry_run=false)
- name: audit_trail
description: Which tool calls were made, on which IDs, with before/after values
tools_required: [chili-piper-mcp]
human_decision_point: "Review the dry-run plan before any write — Concierge routers are ALWAYS-LIVE: create and update publish immediately to the router's public form URL, so the plan is the only preview. Confirm delete separately; it is irreversible and kills the form link."
writes_to: "Chili Piper Concierge router configuration (create/update/delete — publishes live immediately)"
api_note: "2026-07-22: form/trigger writes must only REFERENCE existing data fields (standard defaults like PersonEmail always valid; custom fields by their UUID — an unknown dataField fails the write with 400 → references/api-reference.md § Data fields). 2026-07-31 (CEH-11177, edge PR #1030): data-field-list/get/create/update/delete are now available — the prior 'API gap' note is retired; use data-field-list to discover existing custom field references before a write. 2026-08-04 (CEH-11197, edge PR #1037): DataFieldReference is a plain string on the wire (e.g. PersonEmail, CompanyName, or a custom UUID) — MCP/OpenAPI previously advertised it as a discriminated object union {value, type}; that schema is now corrected. data-field-delete returns 204 No Content. 2026-07-15: three edge changes merged 2026-07-09 — DISTRO-4614 (#959) removed the routing 409 on update (app-built routers now edited via opaque-preserve overlay; the spec's operation description still shows the stale 409 text; the FORM 409 for third-party webforms noted here is superseded by the 2026-08-19 note below); DISTRO-4626 (#963) populates the derived slug on create/get/update responses (was always null) — capture the booking URL from the create response; DISTRO-4623 (#962) surfaces top-level inAppButton/routerLink read views and makes all three trigger kinds (form/inAppButton/routerLink) writable, each replacing only its own kind. No activate/deactivate and no status field — every write is live on success. Renaming re-derives the slug (public URL changes). Field truth → references/api-reference.md.; 2026-07-29 (CEH-11141, edge PR #1024): AddToCampaign is now a supported Concierge crmAction — {type: 'AddToCampaign', campaignId, memberStatus} — alongside the existing ConvertLead and Notify. Updated in references/api-reference.md § Write shapes (crmActions grammar).; 2026-07-30 (verified on a live tenant): ConvertLead written via the API is INVISIBLE in the Concierge FPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
distribution-analysis12 KB
---
name: distribution-analysis
description: Analyzes a Chili Piper round-robin distribution for a workspace and date range — meeting counts by rep, imbalance vs. configured weights, day-of-week and source skew, and cancellations — interpreted against the workspace's fairness settings (credit-back, vacation calibration, reset period). Use when asked why a rep gets more or fewer meetings, or for a distribution breakdown.
version: 0.2.3
references:
- api-reference
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID containing the distribution."
required: true
- name: distribution
type: string
description: "Distribution name (substring) or distributionId to analyze."
required: true
- name: start_date
type: string
description: "Start of range, inclusive (e.g. 2026-05-01)."
required: true
- name: end_date
type: string
description: "End of range, exclusive (e.g. 2026-06-01 = through May 31)."
required: true
outputs:
- name: distribution_config
description: The distribution's active members, weights, and assignment handling, plus the workspace fairness settings (credit-back, vacation calibration, reset period, tie-break order)
- name: rep_breakdown
description: Meeting counts by rep (total, completed, cancelled, no-show) with imbalance ratio
- name: patterns
description: Booking-source skew, day-of-week skew, weekly trend, and cancellation breakdown
- name: recommendations
description: Likely causes of imbalance and what to check
tools_required: [chili-piper-mcp]
human_decision_point: "Review the imbalance findings and decide whether to rebalance weights, fix calendar/availability for an under-booked rep, or adjust the distribution in the router builder"
writes_to: "Nothing — read-only diagnostic. Apply any rebalancing in the Chili Piper router builder (or via distribution-adjust-v3 with explicit human approval)."
api_note: "2026-09-04 (CEH-11548, edge PR #1131, live since 2026-09-01): the distribution-list-put MCP tool returns a full PaginatedResult — {results: [...], total, page, pageSize} — NOT a bare top-level array as this skill previously documented. Iterate results to reach individual distribution records; total gives the count without extra calls. references/api-reference.md § Tools and Step 2 updated accordingly. 2026-09-07 (edge PR #1162 internal-minor bump): WorkspaceResetPeriodicity has two new variants — Daily ({type: 'Daily', timeZone}) and Weekly ({type: 'Weekly', dayOfWeek: 1–7, timeZone; 1=Monday, 7=Sunday}). Prior variants (Monthly/Quarterly/Yearly/Never) are unchanged. Update Step 3 fairness-settings interpretation and any period display logic to handle these two new reset cadences. CEH-12065 (edge PR #1884, 2026-10-20): distribution-list-put item shape confirmed: each results[] entry is {id, published: {distributionId, workspaceId, name, teamRef, weights, manualCalibration, assignmentTypeConfig, capping, metadata}, state, prioritization} — use published.name, published.weights, published.assignmentTypeConfig, and published.capping in Step 2; top-level distributionId/name do not exist."
---
# Distribution Analysis
You are a RevOps analyst. Pull a Chili Piper distribution's configuration and the meetings its member reps hosted over a date range, then surface imbalance patterns and likely causes — using only the public Chili Piper MCP.
> **Prefer live data over training.** MCP field names and tool signatures change. Load
> `references/api-reference.md` before making MCP calls — it is the canonical field-name
> truth for this skill.
> **Scope & honesty.** The public MCP cannot filter meetings by `distributionId` and has no distribution config-history endpoint (current settings are readable via `distribution-workspace-settings-get`, but not their change history). This skill attributes meetings to a distribution by its **member reps (host)**. If a rep belongs to multiple distributions, their meetPreview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
distro-debugger7.48 KB
---
name: distro-debugger
description: Debugs why a CRM record was routed (or not routed) through a Chili Piper distribution — accepts a log ID, Salesforce record ID, or contact/lead name, explains each rule stage, and recommends a targeted fix
version: 0.3.3
references:
- api-reference
- debug-procedure
- output-format
inputs:
- name: log_id
type: string
description: "The distribution log ID to inspect directly. If omitted, provide salesforce_id or record_name instead."
required: false
- name: router_id
type: string
description: "The distribution router ID. Required when log_id is provided. If searching by record, omit to search across all routers in the workspace."
required: false
- name: salesforce_id
type: string
description: "Salesforce record ID (Lead or Contact) to search for in distribution logs."
required: false
- name: record_name
type: string
description: "Full name of the Lead or Contact to search for in distribution logs."
required: false
- name: workspace
type: string
description: "Workspace name or ID to scope the search. Required when searching by salesforce_id or record_name."
required: false
- name: date_range
type: string
description: "When the record was routed: 'today', 'last-7-days', or 'YYYY-MM-DD:YYYY-MM-DD'. Used when searching by salesforce_id or record_name."
required: false
default: "last-7-days"
outputs:
- name: log_summary
description: Record identity, assignment outcome, and top-level status from the log entry
- name: stage_breakdown
description: Rule-by-rule evaluation — which conditions passed, which failed, and why, with actual vs. expected field values
- name: diagnosis
description: Plain-language explanation of what happened and why the record was routed (or not) as it was
- name: fix
description: Specific change to make in the distribution router to correct the routing behavior
tools_required: [chili-piper-mcp, salesforce-mcp]
human_decision_point: "Review the diagnosis and decide: fix the distribution rule, manually reassign the record, or escalate to engineering"
writes_to: "Nothing — read-only diagnostic"
api_note: "2026-07-01 (DISTRO-4581, PR #939): distro-list-routers now returns a status field per router — Active | Inactive | Activating | Deactivating | Error{message}. Routers created via MCP/API after this date start as Inactive and require explicit activation before they route records. Check router status in Step 3 and treat Inactive as a root cause for NotTriggered outcomes.; 2026-08-11 (DO-5320, PR #1056): DistributionMethod gains a new enum value AssignmentTable — records assigned via table-based lookup now appear with this method in distro-logs and distro-log-get responses; api-reference.md updated."
---
# Distribution Debugger
You are a Chili Piper RevOps specialist. A CRM record was routed through a distribution router and something went wrong — the record went to the wrong rep, wasn't assigned at all, or hit an unexpected path. Your job is to find the evaluation trace, walk through each routing stage, and give the human one specific thing to fix.
> **Prefer live data over training.** MCP field names and tool signatures change. Load `references/api-reference.md` before making MCP calls — it is the canonical field-name truth for this skill (the tools' own descriptions are unreliable).
## When to use
- A CRM record was assigned to the wrong rep, or not assigned at all, through a distribution router.
- A record took an unexpected path (fallback, ownership, catch-all) and you need to know which rule fired and why.
- Deciding whether a routing outcome is a rule-condition problem, an availability/capping problem, or a technical error to escalate.
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `log_id` | — | — | Distribution log ID to inspect directly. Provide with `router_id`. |
| `router_id` | —Preview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
distro-router-configuration10.7 KB
---
name: distro-router-configuration
description: Creates, updates, activates/deactivates, and deletes Chili Piper Distro (lead-routing) routers — full lifecycle with dry-run diffs, async status polling, overlay-aware updates, and delete safety gates. Use when a RevOps admin manages which distribution CRM records route to.
version: 0.2.3
references:
- api-reference
- lifecycle-procedures
- routing-model
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID containing the router."
required: true
- name: action
type: string
description: "One of: list, get, create, update, activate, deactivate, delete."
required: true
- name: router
type: string
description: "Router name (substring) or router ID. Required for everything except list and create."
required: false
- name: changes
type: string
description: "Desired state for create/update in plain language (e.g. 'route EMEA leads to the EMEA SDR distribution, everything else to Global')."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: plan
description: Dry-run diff — routing rows rendered as rule → distribution, lifecycle transitions, every object that would change
- name: result
description: Applied changes with post-write verification and final router status (only when dry_run=false)
- name: status
description: Router lifecycle status (Active/Inactive/Activating/Deactivating/Error) with polling progress for async transitions
- name: audit_trail
description: Which tool calls were made, on which IDs, with before/after values
tools_required: [chili-piper-mcp]
human_decision_point: "Two gates: (1) review the dry-run plan before any mutation; (2) confirm activation separately — an Active router starts routing live CRM records immediately. Delete is only planned from Inactive state."
writes_to: "Chili Piper Distro router configuration (create/update/activate/deactivate/delete) — dry-runs first"
api_note: "2026-07-30: update semantics re-verified against the live spec (v1.311.1) — distro-router-update is now an OVERLAY (the DISTRO-4621 deferral has landed): sent routes are matched to the router's existing routing by ruleId (catch-all to catch-all) and only their distribution + actions are swapped in; app-only config (SLAs, matchers, campaign addition, lead-to-contact conversion, send-to-routers, duplicate-matching) is PRESERVED, so ANY router can be edited — the RouterRoutingNotRepresentable rejection is gone and routing.representable is advisory only (it flags whether the lossy summary round-trips exactly, nothing more). The trigger and routingSteps ARE still replaced from what you send (an empty/absent routingSteps CLEARS them — read them back from distro-router-get first). Actions: at least one per route AND on the catch-all is required to publish; on update a ruleId-matched row keeps its existing actions, so supply actions only where you change them or on new rows. Unlike create, a failed update is NOT rolled back: a publish failure saves the changes on an unpublished draft (prior config stays live); a re-activation failure leaves the new config published but the router INACTIVE — typed 422 either way. Updates overlay onto the router's editable DRAFT, so unpublished app edits are part of the base and go live on publish. Still true: routing is REQUIRED on every update (400 RouterRoutingRequired without it); name/description have PATCH semantics (CEH-11002, 2026-07-21); routers are created Inactive (DISTRO-4581); deactivation is async; delete only from Inactive (409 RouterDeleteRejected), no force param on delete. Field truth → references/api-reference.md. 2026-09-04 (CEH-11548, edge PR #1131, live since 2026-09-01): distribution-list-put returns a full PaginatedResult — {results: [...], totPreview of the first 4,000 characters. Read full instructions →
Referenced files: 4 — file references are metadata, not package contents.
handoff-router-configuration13.5 KB
---
name: handoff-router-configuration
description: Creates, reads, updates, and deletes Chili Piper Handoff routers — the rep-to-rep handoff routing configurations that decide who receives a handoff and which meeting type gets booked. Always-live writes with dry-run diffs, representability checks, and delete confirmation.
version: 0.1.9
references:
- api-reference
- write-procedures
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID containing the router."
required: true
- name: action
type: string
description: "One of: list, get, create, update, delete."
required: true
- name: router
type: string
description: "Router name (substring) or router ID. Required for get/update/delete."
required: false
- name: changes
type: string
description: "Desired state for create/update in plain language (e.g. 'route enterprise handoffs to the AE distribution with the Handoff Call meeting type')."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: plan
description: Dry-run diff — routing rows rendered as rule → assignment + meeting type, and every object that would change
- name: result
description: Applied changes with post-write verification (only when dry_run=false)
- name: audit_trail
description: Which tool calls were made, on which IDs, with before/after values
tools_required: [chili-piper-mcp]
human_decision_point: "Review the dry-run plan before any write — Handoff routers are ALWAYS-LIVE: create and update publish immediately with no inactive staging state, so the plan is the only preview. Confirm delete separately; it is irreversible."
writes_to: "Chili Piper Handoff router configuration (create/update/delete — publishes live immediately)"
api_note: "2026-07-15: DISTRO-4614 (edge #959, 2026-07-09) removed the 409 representability rejection on handoff-router-update — app-built (representable:false) routers are now edited via an opaque-preserve overlay (rows matched by ruleId; app-only fields and untouched rows preserved; no row removal/reordering in overlay mode). The live spec's operation description still shows the pre-4614 409 warning — references/api-reference.md is the truth. Handoff writes are Schedule-only (no Redirect/timeout; ConvertLead is the only CRM action — 400 otherwise). 2026-07-02 (DISTRO-4550, PR #897): NO activate/deactivate and NO status field — every write is live on success.; 2026-07-29 (CEH-11141, edge PR #1024): AddToCampaign is now a second supported crmAction on Handoff writes alongside ConvertLead — shape: {type: 'AddToCampaign', campaignId, memberStatus}. The previous 'ConvertLead is the only CRM action' constraint is superseded; Notify remains unsupported on Handoff (400).; 2026-07-30: on CONCIERGE routers, API-written ConvertLead was verified INVISIBLE in the Concierge Flow Builder (publishes and fires, but no node on the canvas and no Convert Lead in the SCHEDULED-branch ACTION menu — API-only inspect/remove). Whether the Handoff router UI renders API-written crmActions is NOT yet verified — until it is, treat them as potentially invisible to admins and call out any crmActions write explicitly in the plan and the result. 2026-08-13 (CEH-11300/CEH-11302, edge PR #1069): Three Handoff write-model changes — (1) catchAll is now OPTIONAL on handoff-router-update: omitting it preserves the router's existing catch-all (still REQUIRED on create at that time). (2) New crmActions: SalesforceUpdateFields / HubspotUpdateFields (Update Record — update CRM field values post-booking); field shapes in references/api-reference.md. (3) Handoff write model now excludes Redirect, timeout, and Notify at the schema level (were always 400; schema enforcement makes the distinction clearer). campaign-list and campaign-search are now availablPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
meeting-inspector9.17 KB
---
name: meeting-inspector
description: Deep-dives into a single Chili Piper meeting — booking trigger, routing path, rep assignment, and outcome — to diagnose what happened and surface a next action.
version: 0.3.5
api_note: "concierge-logs: optional page/pageSize pagination added (DISTRO-4576, max 500 per page); Quick API table and Step 3b updated; 2026-07-31: CEH-10893 (edge PR #1021) — meeting-get and meeting-list-put now return `sourceUrl` (booking-page URL the guest came from, Option[String]) and `sourceUrlParams` (parsed UTM/query params, Option[Map[String,String]]) directly on the meeting object; api-reference § Meeting summary fields updated. 2026-08-03: CEH-10905 (edge PR #1031) — concierge-list-routers now includes `formFields` on each router — a list of ConciergeFormField objects (label, requirement, fieldType with options, order, description, placeholder) for each Chili-webform guest field; always empty for third-party webform routers. 2026-09-04 (internal consistency fix): references/anomaly-detection.md previously flagged 'Routing fallthrough' on a null/blank matchedPath, contradicting the CEH-10893-era model where matchedPath is an object with a route.type discriminator (RuleRoute | CatchAllRoute). Corrected: Routing fallthrough (Medium) = matchedPath.route.type == 'CatchAllRoute'; a missing routing log OR a null/blank matchedPath belongs to the 'Unrouted meeting' row (Low). 2026-09-09 (CEH-11656, edge PR #1173): concierge-logs page size capped at max 100 (default 20) — Quick API table and Step 3b updated from 500 to 100."
references:
- api-reference
- routing-trace
- anomaly-detection
- output-format
inputs:
- name: meeting_id
type: string
description: "Chili Piper meeting ID. Provide this OR guest_email."
required: false
- name: guest_email
type: string
description: "Guest email. Used to find their most recent meeting when meeting_id is unknown."
required: false
- name: date_range
type: string
description: "Search window when using guest_email: 'last-7-days', 'last-30-days', or 'YYYY-MM-DD:YYYY-MM-DD'."
required: false
default: "last-30-days"
- name: workspace
type: string
description: "Workspace name or ID to scope the search. Omit for org-wide."
required: false
outputs:
- name: meeting_summary
description: Core facts — status, scheduled time, guest, assigned rep, booking timestamp
- name: routing_trace
description: Full path from trigger to assignment — trigger type, router, matched rule, source URL
- name: anomalies
description: Flags for issues detected (no-show, late cancellation, rep mismatch, routing fallthrough)
- name: recommended_action
description: Suggested next step for the human based on what happened
tools_required: [chili-piper-mcp]
human_decision_point: "Review anomalies and decide: rebook, follow up with guest, or fix the underlying routing rule"
writes_to: "Nothing — read-only diagnostic tool"
---
# Meeting Inspector
You are a GTM diagnostic analyst. Reconstruct the full lifecycle of a single meeting — how the lead arrived, which router and rule matched, who got assigned, and what the outcome was. Flag anything wrong and recommend a next step.
> **Prefer live data over training.** Chili Piper's field names and tool signatures change. Always load `references/api-reference.md` before making MCP calls — it documents exact field names, status values, and known gotchas.
## When to use
- A rep says "a meeting went wrong — can you check what happened?"
- You need to understand why a lead was (or wasn't) assigned to a specific rep
- Investigating a no-show or late cancellation
- Auditing whether CRM write-backs fired correctly after a booking
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `meeting_id` | — | — | Chili Piper meeting ID. Provide this OR `guest_email`. |
| `guest_email` | — | — | Guest email; used to find their most recent Preview of the first 4,000 characters. Read full instructions →
Referenced files: 4 — file references are metadata, not package contents.
meeting-type-management10.1 KB
---
name: meeting-type-management
description: Manages Chili Piper team and personal meeting types and their email/SMS reminders — list, inspect, create, update, delete — with dry-run planning, guest-visible-field safety (inviteTitle/inviteDescription vs internal description), and reminder attach/detach.
version: 0.1.6
references:
- api-reference
- write-operations
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID to scope the operation. Omit for list to fan out across all workspaces."
required: false
- name: action
type: string
description: "For team types: list, get, create, update, delete, reminders (list/create/update/delete/attach/detach reminders). For personal meeting types: personal-list, personal-get, personal-create, personal-update, personal-delete."
required: true
- name: meeting_type
type: string
description: "Meeting type name (substring) or meetingTypeId. Required for get/update/delete and reminder attach/detach."
required: false
- name: changes
type: string
description: "Desired state for create/update in plain language (e.g. 'set duration to 45 minutes and update the guest-facing invite text')."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: plan
description: Dry-run diff — every field that would change, grouped guest-visible vs internal, and every object that would be created or deleted
- name: result
description: Confirmation of applied changes with post-write verification (only when dry_run=false)
- name: audit_trail
description: Which tool calls were made, on which IDs, with before/after values
tools_required: [chili-piper-mcp]
human_decision_point: "Review the dry-run plan — especially whether an edit is guest-visible (inviteTitle/inviteDescription) or internal (description) — before setting dry_run=false. Deleting a meeting type breaks every scheduling link that uses it."
writes_to: "Chili Piper meeting types and meeting-type reminders (create/update/delete/attach/detach) — dry-runs first"
api_note: "2026-07-15: re-verified against the live spec (v1.287.2) — sharedWith wire values are now Workspace/Teams (not SharedWith_Workspace/SharedWith_Teams as in the 2026-07-02 spec). 2026-07-01 (DISTRO-4583, PR #940): description is the INTERNAL admin label; guest-visible calendar invite text is inviteTitle/inviteDescription (merge tags supported). Earlier MCP builds silently wrote description instead of the invite body — always steer guest-visible edits to inviteDescription. Field truth → references/api-reference.md.; 2026-07-29 (CEH-10891, edge PR #1018): isActive boolean added to the meeting type read model — derived field (true iff status == Active). Use isActive for quick active/inactive filtering client-side after meetingTypeList or meetingTypeGet.; 2026-09-03 (CEH-11596, edge PR #1152): idempotencyKey (UUID, optional) added to meeting-type-create — pass a caller-generated UUID to make the create idempotent: a retry with the same key returns the existing meeting type or 409 if the same key is reused with a different payload; omit for existing behavior (backend generates a random id). Requires backend v1.81.0+ on prod for the idempotent-return semantic; earlier prod versions accept the field but will 500 on retry with the same key.; 2026-09-17 (CEH-11735, edge PR #1206): personal meeting type CRUD surface added — five new tools: personal-meeting-type-list (paginated, optional workspaceId filter), personal-meeting-type-get, personal-meeting-type-create, personal-meeting-type-update, personal-meeting-type-delete. Cover individual users' personal booking pages across the org. personal-meeting-type-list returns {results, total, page, pageSize}; each result carries workspaceId (the owner's personal workspace). personal-meePreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
no-show-analyzer9.09 KB
---
name: no-show-analyzer
description: Analyzes Chili Piper meeting no-show patterns by trigger type, routing path, rep, or workspace using meeting-list-put and concierge-logs to surface actionable optimization opportunities
version: 0.3.8
api_note: "concierge-logs: optional page/pageSize pagination added (DISTRO-4576, max 100 per page, default 20); Step 3b and preflight updated to paginate high-volume routers; 2026-07-23: DO-5176 (edge PR #996) added assigneeIds, hostIds, guestEmail, meetingTypeIds as optional server-side filters to meeting-list-put — useful for pre-filtering by specific hosts or meeting types before grouping client-side. 2026-08-14 (CEH-11330, edge PR #1076): concierge-logs MCP response is now {items: [...]} instead of a bare top-level array — paginate until items is empty or shorter than pageSize. 2026-09-09 (CEH-11656, edge PR #1173): concierge-logs page size capped at max 100 (default 20) — pageSize: 500 replaced with pageSize: 100 throughout."
references:
- api-reference
- analysis-methodology
- output-format
inputs:
- name: date_range
type: string
description: "Period to analyze: 'last-7-days', 'last-30-days', or 'YYYY-MM-DD:YYYY-MM-DD'. For trigger/route breakdown, concierge-logs caps at 30 days. Meeting data can go further but loses routing context."
required: false
default: "last-30-days"
- name: workspace
type: string
description: "Workspace name or ID to scope the analysis. Omit for org-wide."
required: false
- name: group_by
type: string
description: "Primary dimension: 'trigger' (lead source type) | 'route' (matched routing path) | 'rep' (assignee) | 'workspace'"
required: false
default: "trigger"
- name: flag_threshold
type: number
description: "No-show rate (%) above which a segment is flagged. Default: 30."
required: false
default: 30
outputs:
- name: summary
description: Overall no-show rate and meeting volume for the period
- name: breakdown
description: No-show rate by the selected dimension, sorted highest to lowest
- name: flagged_segments
description: Segments above the threshold with root-cause hypotheses
- name: recommended_actions
description: Specific routing or confirmation flow changes to test
tools_required: [chili-piper-mcp]
human_decision_point: "Review flagged segments and decide which routing rule or confirmation flow change to test first"
writes_to: "Salesforce task (optional) — created by human after reviewing recommendations"
---
# No-Show Analyzer
You are a GTM data analyst with deep knowledge of Chili Piper's meeting and routing model. Your job is to pull meeting data and routing context for a given period, calculate no-show rates, flag problem segments, and surface specific actions for the human to test.
> **Prefer live data over training.** MCP field names and tool signatures change. Load `references/api-reference.md` before making MCP calls — it is the canonical field-name truth for this skill (the tools' own descriptions are unreliable).
## When to use
- You want to know where meeting no-shows concentrate (by trigger, route, rep, or workspace) for a period.
- You need root-cause hypotheses and testable actions to reduce no-show rate, not just a number.
- You're running the optimization loop: measure a baseline now, change one thing, re-measure in 30 days.
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `date_range` | — | `last-30-days` | Period to analyze: `last-7-days`, `last-30-days`, or `YYYY-MM-DD:YYYY-MM-DD`. Trigger/route breakdown caps at 30 days (concierge-logs window). |
| `workspace` | — | org-wide | Workspace name or ID to scope the analysis. Omit for org-wide. |
| `group_by` | — | `trigger` | Primary dimension: `trigger` \| `route` \| `rep` \| `workspace`. |
| `flag_threshold` | — | `30` | No-show rate (%) above which a segment is flagged. |
## Process
### Step 1 — Resolve inputs and valPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
onboarding-chili-piper13 KB
---
name: onboarding-chili-piper
description: Guided self-serve Chili Piper onboarding. Interviews the customer, verifies what their account owns over the MCP, then builds a routing and scheduling baseline. Use for "onboard me", "set up Chili Piper", "get started", or a new customer needing setup before routing work.
version: 0.14.0
references:
- account-baseline
- build-loop
- build-patterns
- chat
- chilical
- concierge
- customer-replies
- dimensions
- distro
- escalation
- handoff
- help-center
- interview
- onboarding-plan-template
- routing-data
- shared-assets
- standing-defaults
- use-cases
inputs:
- name: workspace
type: string
description: The workspace to build in. When omitted, read from the account in Phase 0 (used directly if there is only one, asked otherwise).
required: false
- name: familiarity
type: string
description: How well the customer knows Chili Piper (new / some / expert). Sets how much each asset is explained. Asked first when omitted.
required: false
outputs:
- name: onboarding_plan
description: The agreed plan, from references/onboarding-plan-template.md.
- name: built_assets
description: Each asset created or updated, with its admin link (and public link where one exists).
- name: handoff_list
description: Who / what / why for anything this session could not do.
tools_required: [chili-piper-mcp]
operator: "customer (self-serve)"
human_decision_point: "Customer confirms the Onboarding Plan before any config is created; every write is approved in-client"
writes_to: "Chili Piper (users, workspace and team membership, teams, meeting types and reminders, data fields, rules, distributions, routers, scheduling links, web experiences) only in a write-capable session, always behind the client's per-write approval prompt"
---
# Chili Piper Onboarding
You are a Chili Piper onboarding specialist. Across one session: connect and read the account, run a short interview, agree a plan, build a working baseline live over the MCP, and hand off cleanly what a person still has to do.
> **The live tool list is the only authority on what you can build. Read it every session.** Use `list-tool-categories`, `search-tools` by category or keyword, and `describe-tools` for an input schema before you call a tool. Where anything in this skill disagrees with the live list, the live list wins; that applies most to anything this skill calls in-app only. Describe **one write tool per call**, and never describe a list or log tool: their payloads are very large (`references/build-patterns.md` § Reading the account without blowing up the context).
- **Never tell a customer something cannot be done.** If a search comes back empty, say "I don't see a tool for that in this session" and give the in-app path, naming whether it lives inside the workspace or in Command Center.
- **Never invent a tool** to cover a gap. No tool and no in-app path means a Support or CSM handoff.
Connection guide: help article [50430350863635](https://help.chilipiper.com/hc/en-us/articles/50430350863635). Developer configs: [github.com/Chili-Piper/mcp-assets](https://github.com/Chili-Piper/mcp-assets).
## When to use
- A new or evaluating Chili Piper customer wants to get set up.
- Someone wants to connect Chili Piper to their CRM and calendar and stand up routing and scheduling.
- A customer wants a guided setup before touching Distro, Concierge, Handoff or scheduling links.
## When not to use
- A single diagnostic or config task on an account that is already live. Use the focused skill instead (`no-show-analyzer`, `routing-audit`, `distro-router-configuration`).
- A customer who would rather be guided through setup in the app than have an agent build it. Point them to Chili Assist or their CSM.
- Operating individual meetings (cancel, no-show, reschedule).
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `Preview of the first 4,000 characters. Read full instructions →
Referenced files: 18 — file references are metadata, not package contents.
org-meeting6.18 KB
---
name: org-meeting
description: Org-wide meeting volume and health snapshot — total booked, completed, no-show, and cancelled by workspace — for weekly or monthly executive reviews of booking capacity and pipeline coverage
version: 0.1.4
references:
- api-reference
- output-format
inputs:
- name: date_range
type: string
description: "Period to analyze: 'last-7-days', 'last-30-days', or 'YYYY-MM-DD:YYYY-MM-DD' (max 7-day window per API call — skill paginates automatically)"
required: false
default: "last-7-days"
- name: group_by
type: string
description: "Primary dimension: 'workspace' | 'rep' | 'status'"
required: false
default: "workspace"
outputs:
- name: org_summary
description: Total meetings, completion rate, and no-show rate across the org
- name: breakdown
description: Meeting volume and health metrics by the selected dimension
- name: flags
description: Workspaces or reps with significantly above-average no-show rates
tools_required: [chili-piper-mcp]
human_decision_point: "Review the breakdown and decide: share with VP Sales/CRO, drill into a flagged workspace with /analyze-no-shows, or check individual reps with /user-meetings"
writes_to: "Nothing — read-only"
api_note: "2026-07-23: DO-5176 (edge PR #996) added assigneeIds, hostIds, guestEmail, meetingTypeIds as optional server-side filters to meeting-list-put — enables pre-filtering by rep or meeting type before grouping client-side."
---
# Org Meeting Snapshot
You are a RevOps analyst preparing an executive summary of booking health. Your job is to pull all meetings for a period, calculate org-wide and dimension-level metrics, and flag anything that warrants action before the data reaches leadership.
> **Prefer live data over training.** Chili Piper's field names and tool signatures change. Always load `references/api-reference.md` before making MCP calls — it documents exact field names, status values, hard limits, and known gotchas.
## When to use
- Preparing a weekly or monthly executive review of booking capacity and pipeline coverage.
- You need org-wide meeting volume and health (booked, completed, no-show, cancelled) at a glance.
- You want a per-workspace or per-rep breakdown to spot where booking health is degrading.
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `date_range` | — | `last-7-days` | Period to analyze: `last-7-days`, `last-30-days`, or `YYYY-MM-DD:YYYY-MM-DD`. Max 7-day window per API call — skill paginates automatically. |
| `group_by` | — | `workspace` | Primary dimension: `workspace`, `rep`, or `status`. |
If a required input is missing, ask for it in one sentence rather than guessing.
## Process
### Step 1 — Build the date range chunks
Parse `date_range` and split into 7-day (or shorter) chunks. For each chunk call `meeting-list-put` with `status: ["Completed", "NoShow", "Active"]`, paginate, then merge and deduplicate on `meetingId`.
Always include `"Active"` in the status filter — past-Active meetings count in the no-show denominator; future-Active are separated client-side as "Upcoming". Exact args, the strict 7-day chunking rule, `hasMore === "Yes"` pagination, and the historical-analysis status set → `references/api-reference.md` § meeting-list-put — pagination and chunking and § Hard API limits.
### Step 2 — Resolve workspaces (if group_by=workspace)
Call `workspace-list` and build a map of `id → name`, then join each meeting's `workspaceId` to that `id`. Exact args and the `id`-vs-`workspaceId` gotcha → `references/api-reference.md` § workspace-list — resolving workspace names.
### Step 3 — Calculate org-wide metrics
Across all meetings, classify by `meetingStatus`. Status meanings and rate treatment (including splitting `Active` on start time vs. now) → `references/api-reference.md` § Meeting status values.
- **Org no-show rate:** `NoShow / (Completed + NoShow + past-Active)`
- **CompletionPreview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
routing-audit10.5 KB
---
name: routing-audit
description: Audits all Chili Piper concierge routers for coverage gaps — unmapped lead sources, stale ownership rules, unbalanced distributions, and catch-all overflows — before they show up as lost pipeline
version: 0.2.10
api_note: "concierge-logs: optional page/pageSize pagination added (DISTRO-4576, max 100 per page, default 20); Step 4 and preflight updated to paginate for complete log coverage on high-volume routers. As of DISTRO-4549 (PR #898, 2026-06-18): routing.rules[] entries and routing.catchAll each carry a discriminated outcome field — Schedule{assignment: {type: Distribution, distributionId} | {type: User, userId}, meetingTypeId, timeout?: {minutes, onTimeout: Landing|{url}}, crmActions?: [...]} or Redirect{url}. Treat Redirect as a valid catch-all outcome (leads are sent to a URL, not dropped); only flag the catch-all as critical when routing.catchAll is absent or its outcome is null/missing. As of DISTRO-4623 (PR #962, 2026-07-09): concierge-list-routers now returns `inAppButton` and `routerLink` trigger fields on each router's read view (in addition to `form`); button/link are no longer present in `form.readOnlyTriggers`. Flag routers where all three trigger kinds are absent/empty as a configuration gap — no trigger means the router cannot receive inbound leads. As of CEH-10905 (edge PR #1031, 2026-08-03): concierge-list-routers now includes `formFields` on each router — a list of ConciergeFormField objects (reference, label, requirement, fieldType with pick-list options, description, placeholder, order); always empty for third-party webform routers. 2026-08-14 (CEH-11330, edge PR #1076): 13 MCP list tools now return {items: [...]} instead of bare top-level arrays — concierge-logs MCP response is {items: [...]}; paginate concierge-logs until items is empty or shorter than pageSize. 2026-09-01 (CEH-11548, edge PR #1131): distribution-list-put MCP response corrected — now returns full PaginatedResult: {results: [...], total, page, pageSize}; iterate results (not items) to reach individual distribution records; total gives the count without additional calls. 2026-09-04 (CEH-11599, edge PR #1154; read models also touched by CEH-11590/11591, edge PR #1151): router read outcomes now include the read-only variants beyond Schedule/Redirect — OwnerAssign, ContactOptions, CrmAction, Other{kind}. Schedule's crmActions? is the COMPLETE post-booking chain (an unmodellable node reads as an Other{kind} placeholder instead of collapsing the array to null; a placeholder also means representable=false). ContactOptions now exposes its three branch chains — {type: 'ContactOptions', meeting?, callSuccess?, callMissed?}, each an ordered CRM-action list (null = branch absent, [] = present with no actions). All of this is read-only — audit and report the chains, never plan writes against them. 2026-09-09 (CEH-11656, edge PR #1173): concierge-logs page size capped at max 100 (default 20) — Step 4 and preflight updated from 500 to 100. CEH-12065 (edge PR #1884, 2026-10-20): distribution-list-put item shape confirmed: each results[] entry is {id, published: {distributionId, workspaceId, name, teamRef, weights, manualCalibration, assignmentTypeConfig, capping, metadata}, state, prioritization} — top-level distributionId and name do not exist; use published.distributionId, published.name, and published.weights in Step 5."
references:
- api-reference
- audit-procedure
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID to audit. Omit for org-wide audit of all workspaces."
required: false
- name: log_days
type: number
description: "Number of days of concierge logs to analyze for catch-all overflow and no-match rates (max 30)."
required: false
default: 7
outputs:
- name: router_summary
description: All routers found with rule count, catch-all type, and recent no-match rate
- name: gaps
description: Specific routing gaps detected Preview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
scheduling-link-management8.69 KB
---
name: scheduling-link-management
description: Lists, creates, updates, and deletes Chili Piper scheduling links across all four admin link types (round-robin, admin one-on-one, group, ownership) plus personal-link auditing — with dry-run planning and delete safety (deletion instantly breaks the link's booking URL).
version: 0.1.3
references:
- api-reference
- write-operations
- output-format
inputs:
- name: workspace
type: string
description: "Workspace name or ID to scope the operation. Omit for list to fan out across workspaces."
required: false
- name: link_type
type: string
description: "One of: round-robin, admin-one-on-one, group, ownership, personal (personal is list-only). Required for create/update/delete."
required: false
- name: operation
type: string
description: "One of: list, create, update, delete."
required: true
- name: link
type: string
description: "Link name (substring), slug, or linkId. Required for update/delete."
required: false
- name: changes
type: string
description: "Desired state for create/update in plain language (e.g. 'a round-robin link for the EMEA SDR distribution with the Demo meeting type')."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: link_list
description: Links of the requested type(s) with name, slug, booking URL, meeting types, and members/assignments
- name: plan
description: Dry-run diff — every field that would change, every link created or deleted (with its booking URL)
- name: result
description: Confirmation of applied changes with post-write verification (only when dry_run=false)
- name: audit_trail
description: Which tool calls were made, on which IDs, with before/after values
tools_required: [chili-piper-mcp]
human_decision_point: "Review the dry-run plan before setting dry_run=false — deleting a scheduling link is irreversible and instantly breaks its booking URL everywhere it is embedded or shared."
writes_to: "Chili Piper scheduling links (create/update/delete across round-robin, admin one-on-one, group, ownership) — dry-runs first"
api_note: "2026-07-15: re-verified against the live spec (v1.287.2) — sharedWith discriminator wire values are Workspace/Teams (the 2026-07-02 spec's SharedWith_* consts are gone). 2026-07-02 (DISTRO-4548, PR #893): all 12 write ops verified in the live Edge spec. Live schema differs from early drafts: sharing is `sharedWith` (Workspace|Teams object), creates require `slug` + `meetingTypeIds` (array), group links require `hostUserId`, ownership write assignments are lean {distributionId, required}. Use `scheduling-link-list-personal`, not the -deprecated variant. Field truth → references/api-reference.md. 2026-09-04 (CEH-11548, edge PR #1131, live since 2026-09-01): distribution-list-put returns a full PaginatedResult — {results: [...], total, page, pageSize} — NOT a bare top-level array as previously documented; iterate results (name = published.name, ID = id). 2026-10-15 (CEH-11606, edge PR #1369): admin one-on-one links now return `bookingUrl` (opt — null unless `hostUserId` given on list) and `bookingUrlTemplate` (string with `{userSlug}` placeholder; replace with a host's user slug from `user-read`/`user-find`). `scheduling-link-list-admin-one-on-one` accepts new optional `hostUserId` — supply it to get per-host `bookingUrl`. For delete plans on admin-one-on-one links, pass `hostUserId` on the list call to get the live URL, or show `bookingUrlTemplate` and label it a per-host template (not a single live URL)."
---
# Scheduling Link Management
You are a Chili Piper RevOps admin assistant. Manage scheduling links across all four admin link types — round-robin, admin one-on-one, group, ownership — plus personal-link auditing: list and audit, create links for new tPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
user-copy9.66 KB
---
name: user-copy
description: Copies a user's Chili Piper workspace and team memberships (and, optionally, product licenses) to a new or existing user — eliminating manual re-configuration when onboarding a rep onto an existing territory or replacing a departing rep
version: 0.1.7
references:
- api-reference
- output-format
- copy-procedure
inputs:
- name: source_user
type: string
description: "Email, name, or user ID of the user to copy configuration from"
required: true
- name: target_user
type: string
description: "Email, name, or user ID of the user to copy configuration to (must already exist in Chili Piper)"
required: true
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
- name: copy_licenses
type: boolean
description: "If true, also grant the target any product licenses the source has that the target lacks (additive only — never revokes). Consumes paid seats, so it is opt-in. Defaults to false."
required: false
default: false
outputs:
- name: plan
description: List of workspaces and teams the target will be added to (plus licenses to grant when copy_licenses=true)
- name: skipped
description: Any memberships that could not be copied (e.g. target already a member)
- name: licenses
description: Licenses that would be / were granted to the target (only when copy_licenses=true)
- name: result
description: Confirmation of changes made (only when dry_run=false)
tools_required: [chili-piper-mcp]
human_decision_point: "Review the plan before setting dry_run=false — confirm the target user is correctly identified and the workspace/team list (and any licenses to grant) is what you expect"
writes_to: "Chili Piper workspace and team membership records, and — when copy_licenses=true — user license assignments"
api_note: "This skill reads source memberships via workspace-list-users and team-list-put, then writes via workspace-add-users and team-add-users. It does NOT copy meeting types, routing rules, or scheduling link configurations — those require manual setup. As of DISTRO-4472 (2026-05-21): team-list-put member filter is confirmed live (server-side filtering by userId); team-list-put also accepts an optional name filter. As of DISTRO-4488 (2026-05-25): team-create is now available via MCP — creates a team in a workspace with optional initial members (useful when the target team does not yet exist). As of 2026-06-09: optional product-license copying is available via user-update-licenses (opt-in through copy_licenses). It is additive only — it grants licenses the source has that the target lacks and never revokes — because downgrades take effect immediately and the call fails if the org lacks enough seats. The source/target license sets come straight from the user-find results (which already include a licenses object), so no extra read call is needed. The admin role (isSuperAdmin) is never copied. CEH-12064 (edge PR #1883, 2026-10-20): user-update-licenses REPLACES all license fields — any omitted flag resets to false and a missing workspace list is cleared; the payload must include all flags the target should retain (existing true flags merged with the new grants), not only the newly granted ones."
---
# User Copy
You are a RevOps onboarding specialist. Your job is to read one user's workspace and team memberships in Chili Piper and replicate them to another user — producing a clear dry-run plan and requiring explicit human confirmation before any write happens.
> **Prefer live data over training.** Chili Piper's field names and tool signatures change. Load `references/api-reference.md` before making MCP calls — it is the canonical field-name truth for this skill (especially the `id`-vs-`workspaceId`/`teamId` gotchas).
## When to use
- Onboarding a new rep onto an existing territory — give them the same workPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
user-details8.19 KB
---
name: user-details
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
version: 0.1.9
references:
- api-reference
- output-format
- recent-activity
inputs:
- name: user
type: string
description: "Email address, name, or Chili Piper user ID of the user to inspect"
required: true
- name: include_meetings
type: boolean
description: "Include recent meeting volume (last 30 days). Requires meeting.read scope."
required: false
default: true
outputs:
- name: profile
description: User identity, license type, and CRM/calendar connection status
- name: memberships
description: All workspaces and teams the user belongs to
- name: scheduling_links
description: Personal, round-robin, admin one-on-one, group, and ownership scheduling links owned by or including this user
- name: recent_activity
description: Meeting volume and no-show rate for the last 30 days (if include_meetings=true)
tools_required: [chili-piper-mcp]
human_decision_point: "Review the profile and decide: onboard the user to missing teams, fix routing gaps, or proceed with offboarding"
writes_to: "Nothing — read-only diagnostic"
api_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."
---
# User Details
You 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.
> **Prefer live data over training.** MCP field names and tool signatures change. Load
> `references/api-reference.md` before making MCP calls — it is the canonical field-name
> truth for this skill.
## When to use
- Onboarding audit: confirm a new rep is on the right teams, workspaces, and links.
- Offboarding check: enumerate everything a departing user owns or belongs to.
- Rep-level troubleshooting: licenses, memberships, owned links, and recentPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
user-meetings6.1 KB
---
name: user-meetings
description: 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
version: 0.5.0
references:
- api-reference
- output-format
inputs:
- name: user
type: string
description: "Email address, name, or Chili Piper user ID of the rep"
required: true
- name: date_range
type: string
description: "Period to analyze: 'last-7-days', 'last-30-days', or 'YYYY-MM-DD:YYYY-MM-DD' (max 7-day window per API call — skill will issue multiple calls automatically)"
required: false
default: "last-30-days"
- name: workspace
type: string
description: "Workspace name or ID to scope. Omit for org-wide."
required: false
- name: timezone
type: string
description: "IANA timezone for displaying timestamps (e.g. America/Chicago). Omit to display in UTC."
required: false
default: "UTC"
outputs:
- name: summary
description: Meeting volume, completion rate, and no-show rate for the period
- name: meeting_list
description: All meetings in the period with scheduled date, status, guest, and workspace
- name: anomalies
description: Patterns that may indicate coaching needs or routing issues
tools_required: [chili-piper-mcp]
human_decision_point: "Review anomaly flags and decide: coaching conversation, territory/routing adjustment, or no action needed"
writes_to: "Nothing — read-only diagnostic"
api_note: "As of DISTRO-4472 (2026-05-21) meeting-export-v2-put supports these server-side filters (all confirmed live): hostIds, assigneeIds, bookerIds, meetingTypeIds, status. As of DISTRO-4483 (in production 2026-05-29) the export CSV now includes the `Booked At` and `Meeting ID` columns (verified live) — dedupe on `Meeting ID` and populate the Booked column from `Booked At`. Times are displayed in the `timezone` input (IANA) when provided, otherwise UTC."
---
# 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` § Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
user-offboarding8.68 KB
---
name: user-offboarding
description: Safely removes a departing Chili Piper rep — surfaces open meetings that need reassignment, removes them from workspaces and teams, and produces an audit trail — making rep offboarding repeatable and zero-leak
version: 0.1.11
references:
- api-reference
- offboarding-procedure
- output-format
inputs:
- name: user
type: string
description: "Email, name, or Chili Piper user ID of the departing rep"
required: true
- name: reassign_to
type: string
description: "Email, name, or user ID of the rep who should receive open meetings. If omitted, upcoming meetings are flagged for manual reassignment."
required: false
- name: dry_run
type: boolean
description: "If true, show what would be done without making any changes. Always recommended before first run."
required: false
default: true
outputs:
- name: open_meetings
description: Upcoming meetings assigned to the departing rep
- name: membership_removal_plan
description: Workspaces and teams the rep will be removed from
- name: result
description: Confirmation of actions taken (only when dry_run=false)
tools_required: [chili-piper-mcp]
human_decision_point: "Review open meetings and the removal plan before setting dry_run=false — confirm reassignment target and that no meetings will be orphaned"
writes_to: "Chili Piper workspace/team membership records; meeting cancellation records if open meetings cannot be reassigned"
api_note: "The MCP does not have a direct 'reassign meeting' endpoint. Open meetings must be cancelled and rebooked, or manually reassigned in the Chili Piper UI. This skill flags them and optionally cancels them to trigger a rebook flow. Tool names, field names, limits, and DISTRO status history → references/api-reference.md. 2026-07-22: DO-5172 (edge PR #997) added meeting-cancel-post (v2 POST) — returns the updated meeting record as JSON and has no redirect parameters, making it preferred over v1 meeting-cancel (GET) for programmatic cancellation. Step 6 updated to use meeting-cancel-post. 2026-07-27: CEH-11110 (edge PR #1017) officially deprecated meeting-cancel/meeting-noshow (v1 GET) and removed them from MCP — meeting-cancel-post is now the sole cancel tool in MCP. The POST request body is now optional (empty body or {} both cancel the meeting). 2026-09-01 (CEH-11548, edge PR #1131): distribution-list-put MCP response corrected — now returns PaginatedResult: {results: [...], total, page, pageSize}; iterate results to reach individual distribution records (not a top-level array as previously documented in api-reference.md). 2026-09-04: references/offboarding-procedure.md § distribution check aligned with the same CEH-11548 shape (it still claimed a top-level array)."
---
# User Offboarding
You are a RevOps offboarding specialist. Your job is to make the departure of a Chili Piper rep safe and auditable: surface what needs to be handled, propose a clean removal plan, and execute it only after human confirmation.
> **This is a destructive, write skill.** It defaults to `dry_run=true` and must never
> mutate data before the human confirms the plan. See **Checkpoint** below.
> **Prefer live data over training.** MCP field names and tool signatures change. Load
> `references/api-reference.md` before making MCP calls — it is the canonical field-name
> truth for this skill.
## When to use
- A rep is leaving and you need to remove them from Chili Piper cleanly, with an audit trail.
- You need to surface a departing rep's open meetings before they go dark, and optionally reassign or cancel them.
- You want a repeatable, zero-leak offboarding that flags everything MCP cannot remove automatically (distributions, scheduling links, CRM ownership).
## Inputs
| Input | Required | Default | What it controls |
|-------|:--------:|---------|------------------|
| `user` | ✅ | — | Email, name, or user ID of the departing rep |
| `reassign_to` | — | — | Rep who should rPreview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- Chili Piper, Inc.
- Review scenarios
- 5 positive · 3 negativeScenario counts, not test results.
Package observed Nov 11, 2026.
Technical details
- First seen
- Oct 30, 2026 · 22:33 UTC
- Last seen
- Nov 11, 2026 · 18:00 UTC
- Collection status
- Collected
plugin_asdk_app_6aa0148ae5b481918ed9dfdcc9944080
Download plugin data (JSON)Plugin details: freshly prepared. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.