KnowBe4 Training
SkillMonitoring & opsKnowBe4 training campaign management: campaign lifecycle, enrollment workflows, completion tracking, training module and content library browsing, store purchases, and compliance deadline monitoring.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the KnowBe4 Training skill
What this skill tells your AI
The instructions your AI receives, as published by wyre-ai/msp-claude-plugins in msp-claude-plugins/email-security/knowbe4/skills/training/SKILL.md and read by ahel’s review.
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
- 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. - Select target groups -- choose which user groups need training
- Set completion deadline -- allow adequate time (2-4 weeks typical)
- Launch campaign -- schedule or start immediately
- Monitor enrollment status -- check completion rates weekly
- Send reminders to users with "not_started" or "in_progress" status
- Review final completion after deadline
Track Compliance Status
- List campaigns with
knowbe4_training_campaigns_list, then filter to the active ones yourself — there is nostatusargument - Read enrollments with
knowbe4_training_enrollments_list(account-wide; match them back to campaigns on the enrollment record) - Filter by status to find incomplete/past_due enrollments
- Identify non-compliant users -- group by department or manager
- Escalate users who are past due on required training
Post-Phishing Remediation Training
- Identify failed users from phishing campaign results
- Find appropriate remedial module matching the phishing scenario
- Create targeted campaign for failed users only
- Set short deadline (1 week for remediation)
- Track completion and re-test with follow-up phishing simulation
Quarterly Security Awareness Review
- Pull all completed campaigns for the quarter
- Calculate overall completion rate across all campaigns
- Identify departments with lowest completion rates
- Review training content -- are modules current and relevant?
- Plan next quarter based on gaps identified
New Hire Onboarding
- Create onboarding training campaign with essential modules
- Enable auto-enrollment for the "New Hires" group
- Set relative deadline (e.g., 14 days from enrollment)
- Include baseline phishing test after training completion
- 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
- Set realistic deadlines -- Allow 2-4 weeks for standard training, 1 week for remediation
- Send reminders -- Notify at 50% and 75% of deadline elapsed
- Keep content fresh -- Rotate training modules quarterly
- Match training to threats -- Use phishing failure data to select relevant modules
- Track completion trends -- Completion rates should improve over time
- Segment by audience -- Executives, IT, finance, and general staff need different content
- Combine with phishing -- Always follow training with a phishing simulation to validate
- Use gamification -- Games and competitions increase engagement
- Report to stakeholders -- Share completion rates with department managers
- Automate remediation -- Auto-enroll phishing test failures in relevant training
Related Skills
- KnowBe4 Phishing - Phishing simulation campaigns
- KnowBe4 Users - User management and groups
- KnowBe4 Reporting - Training completion metrics
- KnowBe4 API Patterns - Authentication, pagination, and rate limits
Signals
- GitHub stars
- 45
- Forks
- 24
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
knowbe4-training- Source
- github.com/wyre-ai/msp-claude-plugins