KnowBe4 training campaign management: campaign lifecycle, enrollment workflows, completion tracking, training module and content library browsing, store purchases, and compliance deadline monitoring.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add WYRE-AI/msp-claude-plugins --skill training --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Training?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wyre-ai-training)More formats (shields.io, HTML) on the badges page.
---
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 Campaign Management
## Overview
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.
## Anti-triggers
- **A bare "campaign" question** — KnowBe4 has two campaign types with
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.
- **The phishing failure that triggered an auto-enrollment** — the
trigger is configured here, but the failure data itself is
`knowbe4-phishing`.
- **Completion rates rolled up across campaigns or departments** — this
skill reads individual campaigns and enrollments; aggregates and
compliance dashboards are `knowbe4-reporting`.
## Key Concepts
### Training Campaign Lifecycle
```
CREATED ──> SCHEDULED ──> ACTIVE ──> CLOSED
│ │
└──── CANCELLED └──> ARCHIVED
```
- **Created**: Campaign configured with content and target groups
- **Scheduled**: Queued to begin enrollment at a future date
- **Active**: Users enrolled and training in progress
- **Closed**: Campaign deadline passed, final completion recorded
- **Cancelled**: Campaign aborted
- **Archived**: Closed campaign moved to archive
### Enrollment Statuses
| 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 |
### Training Content Types
| 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 |
### Auto-Enrollment Triggers
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 Reference
### Training Campaign Fields
| 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 |
### Training Enrollment Fields
| 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 |
### Store Purchase Fields
| 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 |
## MCP Tools
| 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`** |
| `knowbe4_training_enrollments_list` | List training enrollments across the account | `page`, `per_page` |
| `knowbe4_training_enrollments_get` | Get enrollment details, including module progress and completion date | **`enrollment_id`** |
| `knowbe4_store_purchases_list` | List ModStore purchases — the training content this account owns | `page`, `per_page` |
| `knowbe4_store_purchases_get` | Get purchase details | **`purchase_id`** |
| `knowbe4_policies_list` | List security policies and their acknowledgment requirements | `page`, `per_page` |
| `knowbe4_policies_get` | Get one policy, including acknowledgment status | **`policy_id`** |
Two shape notes that change how these get used:
**`knowbe4_training_enrollments_list` is account-wide and takes no
filters.** There is no `campaign_id` and no `status` argument. "Overdue
enrollments for the HIPAA campaign" is a full paginated read filtered
client-side on the `campaign` and `status` fields of each record — not a
query. Budget the request count accordingly (see api-patterns), and pass
`per_page=500` rather than accepting the default of 100.
**There is no training-module catalog tool.** Nothing here lists the
modules available to assign or reads a single module by ID.
`knowbe4_store_purchases_list` is the nearest real capability and it
answers a different question — what content this account has *purchased*
from the ModStore, not what modules exist or what a campaign could use.
`knowbe4_training_campaigns_get` names the modules already attached to a
campaign. Choosing content for a new campaign is console work.
## Common Workflows
### Create and Monitor Training Campaign
1. **Review owned content** using `knowbe4_store_purchases_list` — this
shows what the account has bought, which constrains what a campaign
can assign. Browsing the full module catalog is console-only.
2. **Select target groups** -- choose which user groups need training
3. **Set completion deadline** -- allow adequate time (2-4 weeks typical)
4. **Launch campaign** -- schedule or start immediately
5. **Monitor enrollment status** -- check completion rates weekly
6. **Send reminders** to users with "not_started" or "in_progress" status
7. **Review final completion** after deadline
### Track Compliance Status
1. **List campaigns** with `knowbe4_training_campaigns_list`, then filter
to the active ones yourself — there is no `status` argument
2. **Read enrollments** with `knowbe4_training_enrollments_list` (account-wide;
match them back to campaigns on the enrollment record)
3. **Filter by status** to find incomplete/past_due enrollments
4. **Identify non-compliant users** -- group by department or manager
5. **Escalate** users who are past due on required training
### Post-Phishing Remediation Training
1. **Identify failed users** from phishing campaign results
2. **Find appropriate remedial module** matching the phishing scenario
3. **Create targeted campaign** for failed users only
4. **Set short deadline** (1 week for remediation)
5. **Track completion** and re-test with follow-up phishing simulation
### Quarterly Security Awareness Review
1. **Pull all completed campaigns** for the quarter
2. **Calculate overall completion rate** across all campaigns
3. **Identify departments** with lowest completion rates
4. **Review training content** -- are modules current and relevant?
5. **Plan next quarter** based on gaps identified
### New Hire Onboarding
1. **Create onboarding training campaign** with essential modules
2. **Enable auto-enrollment** for the "New Hires" group
3. **Set relative deadline** (e.g., 14 days from enrollment)
4. **Include baseline phishing test** after training completion
5. **Move to regular groups** after onboarding completion
## Error Handling
### Common API Errors
| Code | Message | Resolution |
|------|---------|------------|
| 400 | Invalid campaign configuration | Verify content IDs and group IDs exist |
| 401 | Invalid API token | Verify KNOWBE4_API_KEY |
| 403 | Insufficient permissions | API token needs Training permissions |
| 404 | Campaign not found | Verify campaign_id exists |
| 404 | Enrollment not found | Verify enrollment_id exists |
| 429 | Rate limit exceeded | Implement backoff (see api-patterns) |
### Data Considerations
| Issue | Cause | Resolution |
|-------|-------|------------|
| Zero completion rate | Campaign just started | Allow time for users to complete |
| User not enrolled | Not in target group | Check group membership |
| Completion not recording | Module requires assessment pass | User may need to retake quiz |
| Past due but completed | Completed after deadline | Marked past_due at deadline, then completed |
| Duplicate enrollments | Multiple campaigns with same content | Check `allow_multiple_enrollments` |
## Best Practices
1. **Set realistic deadlines** -- Allow 2-4 weeks for standard training, 1 week for remediation
2. **Send reminders** -- Notify at 50% and 75% of deadline elapsed
3. **Keep content fresh** -- Rotate training modules quarterly
4. **Match training to threats** -- Use phishing failure data to select relevant modules
5. **Track completion trends** -- Completion rates should improve over time
6. **Segment by audience** -- Executives, IT, finance, and general staff need different content
7. **Combine with phishing** -- Always follow training with a phishing simulation to validate
8. **Use gamification** -- Games and competitions increase engagement
9. **Report to stakeholders** -- Share completion rates with department managers
10. **Automate remediation** -- Auto-enroll phishing test failures in relevant training
## Related Skills
- [KnowBe4 Phishing](../phishing/SKILL.md) - Phishing simulation campaigns
- [KnowBe4 Users](../users/SKILL.md) - User management and groups
- [KnowBe4 Reporting](../reporting/SKILL.md) - Training completion metrics
- [KnowBe4 API Patterns](../api-patterns/SKILL.md) - Authentication, pagination, and rate limits
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!