account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
KnowBe4 training campaign management: campaign lifecycle, enrollment workflows, completion tracking, training module and content library browsing, store purchases, and compliance deadline monitoring.
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill training --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill training -a windsurf -y
name: "KnowBe4 Training" description: > KnowBe4 training campaign management: campaign lifecycle, enrollment workflows, completion tracking, training module and content library browsing, store purchases, and compliance deadline monitoring. when_to_use: >- When creating or managing KnowBe4 training campaigns, enrollments, or content. Use when: knowbe4 training, training campaign, security awareness training, training enrollment, training completion, training module, knowbe4 course, training assignment, training status, compliance training, training content, store purchase, or training deadline.
KnowBe4 training campaigns deliver security awareness content to users through structured enrollment workflows. Training can be assigned manually, triggered automatically after phishing test failures, or scheduled on a recurring basis. Each campaign tracks enrollment status, completion rates, and compliance deadlines. The training content library includes interactive modules, videos, games, assessments, and policy documents.
separate ID spaces and near-identical lifecycles. If the subject is a simulated phishing test, its templates, or who clicked, it is `knowbe4-phishing`; this skill covers only training campaigns and enrollments.
trigger is configured here, but the failure data itself is `knowbe4-phishing`.
skill reads individual campaigns and enrollments; aggregates and compliance dashboards are `knowbe4-reporting`.
CREATED ──> SCHEDULED ──> ACTIVE ──> CLOSED
│ │
└──── CANCELLED └──> ARCHIVED| Status | Description | Business Meaning | |--------|-------------|------------------| | **Not Started** | User enrolled but has not begun | Needs reminder | | **In Progress** | User has started but not completed | Actively working | | **Completed** | User finished all required content | Compliant | | **Past Due** | Deadline passed without completion | Non-compliant |
| Type | Description | Typical Duration | |------|-------------|-----------------| | **Training Module** | Interactive course with slides and quizzes | 15-45 minutes | | **Video** | Pre-recorded security awareness video | 5-15 minutes | | **Game** | Gamified security training | 10-20 minutes | | **Assessment** | Knowledge check quiz | 5-10 minutes | | **Policy** | Policy document requiring acknowledgment | 2-5 minutes | | **Newsletter** | Security awareness newsletter | 3-5 minutes | | **Poster** | Downloadable awareness poster | N/A |
Training can be triggered automatically based on:
| Trigger | Description | |---------|-------------| | **Phishing Failure** | User clicked/failed a phishing test | | **New Hire** | User added to the system | | **Group Membership** | User added to a specific group | | **Scheduled** | Recurring enrollment (monthly, quarterly, annually) | | **Manager Request** | Manual enrollment by manager/admin |
| Field | Type | Description | |-------|------|-------------| | `campaign_id` | int | Unique campaign identifier | | `name` | string | Campaign name | | `status` | string | Current status | | `content` | array | List of training modules/content assigned | | `groups` | array | Target groups | | `duration_type` | string | How long users have to complete | | `start_date` | datetime | When enrollment begins | | `end_date` | datetime | Completion deadline | | `relative_duration` | string | Days from enrollment to complete | | `auto_enroll` | boolean | Whether new group members are auto-enrolled | | `allow_multiple_enrollments` | boolean | Can users retake the training | | `completion_percentage` | float | Percentage of enrollees who completed |
| Field | Type | Description | |-------|------|-------------| | `enrollment_id` | int | Unique enrollment identifier | | `content_type` | string | Type of content assigned | | `module_name` | string | Name of the training module | | `user` | object | Enrolled user details | | `campaign_id` | int | Parent campaign | | `enrollment_date` | datetime | When user was enrolled | | `start_date` | datetime | When user began training | | `completion_date` | datetime | When user completed training | | `status` | string | not_started, in_progress, completed, past_due | | `time_spent` | int | Seconds spent on training | | `current_module` | string | Module user is currently on | | `policy_acknowledged` | boolean | Whether policy was acknowledged |
| Field | Type | Description | |-------|------|-------------| | `store_purchase_id` | int | Unique purchase identifier | | `content_id` | int | Purchased content item | | `content_type` | string | Type of content | | `content_name` | string | Name of content item | | `purchase_date` | datetime | When purchased | | `expiration_date` | datetime | License expiration |
| Tool | Description | Parameters (required in **bold**) | |------|-------------|----------------| | `knowbe4_training_campaigns_list` | List training campaigns | `page`, `per_page` | | `knowbe4_training_campaigns_get` | Get campaign details, including its modules, enrollments and completion stats | **`campaign_id`** | | `kn
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
1Password MCP fundamentals through Conduit: the region plus two independent credential halves (Events Reporting token, Users API…
How to review a departing or departed user's 1Password footprint with the read-only tools: confirm the seat is suspended, find…
Triage of 1Password sign-in attempts for one client account: pulling the sign-in feed over a window, grouping failures by user,…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.