Use this skill when working with KnowBe4 training campaigns - creating and managing training assignments, tracking enrollment and completion, browsing training modules and content library, managing store purchases, and monitoring compliance deadlines. Covers training campaign lifecycle, enrollment workflows, completion tracking, and content management for security awareness programs.
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.
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 | Key Parameters |
|---|---|---|
knowbe4_training_list_campaigns | List training campaigns | status, page, per_page |
knowbe4_training_get_campaign | Get campaign details | campaign_id |
knowbe4_training_list_enrollments | List enrollments for a campaign | campaign_id, status, page |
knowbe4_training_get_enrollment | Get enrollment details | enrollment_id |
knowbe4_training_list_modules | List available training modules | type, page, per_page |
knowbe4_training_get_module | Get module details | module_id |
knowbe4_training_list_store_purchases | List store purchases | page, per_page |
knowbe4_training_get_store_purchase | Get purchase details | store_purchase_id |
knowbe4_training_list_modulesknowbe4_training_list_campaigns| 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) |
| 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 |