Source profileQuality 96/100

WYRE-AI/msp-claude-plugins/msp-claude-plugins/email-security/knowbe4/skills/phishing/SKILL.md

KnowBe4 Phishing

KnowBe4 phishing simulations: campaign creation and lifecycle, security test management, recipient interaction tracking (sent, opened, clicked, reported), phish-prone percentage calculation, template selection, landing pages, and click tracking.

Source repository stars
42
Declared platforms
0
Static risk flags
0
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

KnowBe4 phishing simulations: campaign creation and lifecycle, security test management, recipient interaction tracking (sent, opened, clicked, reported), phish-prone percentage calculation, template selection, landing pages, and click tracking.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/email-security/knowbe4/skills/phishing"
    Safe inspection promptEditorial

    Inspect the Agent Skill "KnowBe4 Phishing" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/email-security/knowbe4/skills/phishing/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Review Campaign Results

      1. List campaigns to find the target campaign 2. Get campaign details for overview metrics 3. List security tests within the campaign 4. Get security test results for detailed interaction counts 5. List recipients to identify who clicked/failed 6. Calculate PPP from the results

      List campaigns to find the target campaignGet campaign details for overview metricsList security tests within the campaign
    2. 02

      Anti-triggers

      A real phishing email that reached a user — every campaign,

      A real phishing email that reached a user — every campaign,Finding, releasing, or pulling a message out of a mailbox —"Phish Alert Button" reports as a threat-intake queue — this
    3. 03

      Key Concepts

      Each recipient in a campaign progresses through trackable states:

      Created: Campaign configured but not yet scheduledScheduled: Campaign queued for delivery at a specific date/timeIn Progress: Emails are being sent and interactions tracked
    4. 04

      Campaign Lifecycle

      Created: Campaign configured but not yet scheduled

      Created: Campaign configured but not yet scheduledScheduled: Campaign queued for delivery at a specific date/timeIn Progress: Emails are being sent and interactions tracked
    5. 05

      Security Test Types

      Review the “Security Test Types” section in the pinned source before continuing.

      Review and apply the “Security Test Types” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score96/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars42SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    WYRE-AI/msp-claude-plugins
    Skill path
    msp-claude-plugins/email-security/knowbe4/skills/phishing/SKILL.md
    Commit
    5005f73ba2f52cd299f58aa6bb79f4e70ae87103
    License
    Apache-2.0
    Collected
    2026-08-28
    Default branch
    main
    View the original SKILL.md

    KnowBe4 Phishing Simulation Management

    Overview

    KnowBe4 phishing simulations are the core mechanism for testing and improving an organization's resilience to social engineering attacks. Campaigns deliver simulated phishing emails to users and track their interactions -- whether they opened the email, clicked the link, submitted data on the landing page, reported it via the Phish Alert Button, or took no action. The phish-prone percentage is the key metric derived from these campaigns.

    Anti-triggers

    • A real phishing email that reached a user — every campaign, click, and "failure" here is a simulation the MSP sent on purpose. Genuine inbound phishing is detected by the mail-security vendor: proofpoint-tap, avanan-threats, or abnormal-security-threats.
    • Finding, releasing, or pulling a message out of a mailbox — KnowBe4 never touches production mail flow. Use proofpoint-quarantine or avanan-quarantine to release, and proofpoint-forensics to remove delivered mail.
    • "Phish Alert Button" reports as a threat-intake queue — this skill counts PAB reports as a pass/fail signal on a simulation; the real user-reported phishing triage queue is ironscales-incidents.
    • Enrolling the users who failed into remedial training — the enrollment side is knowbe4-training.
    • Organization-wide phish-prone percentage or department breakdowns — per-campaign results are here; rolled-up metrics and benchmarks are knowbe4-reporting.

    Key Concepts

    Campaign Lifecycle

    CREATED ──> SCHEDULED ──> IN_PROGRESS ──> COMPLETED
                    │                              │
                    └──── CANCELLED                └──> ARCHIVED
    
    • Created: Campaign configured but not yet scheduled
    • Scheduled: Campaign queued for delivery at a specific date/time
    • In Progress: Emails are being sent and interactions tracked
    • Completed: Campaign delivery finished, final results available
    • Cancelled: Campaign aborted before completion
    • Archived: Completed campaign moved to archive

    Security Test Types

    TypeDescriptionUse Case
    PhishingStandard email with link to landing pageMost common, baseline testing
    VishingVoice-based social engineering simulationPhone-based attack awareness
    SmishingSMS-based phishing simulationMobile threat awareness
    USBPhysical USB drop testPhysical security awareness
    QR CodeQR code-based phishingEmerging threat vector

    Recipient Interaction States

    Each recipient in a campaign progresses through trackable states:

    StateDescriptionIndicates
    DeliveredEmail successfully deliveredBaseline count
    OpenedRecipient opened the emailCuriosity/engagement
    ClickedRecipient clicked the phishing linkFailed the test
    RepliedRecipient replied to the emailFailed the test (data leakage risk)
    Attachment OpenedRecipient opened an attachmentFailed the test
    Macro EnabledRecipient enabled macros in attachmentCritical failure
    Data EnteredRecipient submitted data on landing pageCritical failure
    ReportedRecipient reported via Phish Alert ButtonPassed the test
    No ActionNo interaction recordedNeutral (may not have seen it)

    Phish-Prone Percentage Calculation

    The phish-prone percentage (PPP) is the primary metric for organizational risk:

    function calculatePhishPronePercentage(campaign) {
      const totalDelivered = campaign.recipients.filter(r => r.delivered).length;
      const totalFailed = campaign.recipients.filter(r =>
        r.clicked || r.replied || r.attachmentOpened || r.macroEnabled || r.dataEntered
      ).length;
    
      if (totalDelivered === 0) return 0;
      return ((totalFailed / totalDelivered) * 100).toFixed(1);
    }
    

    Industry Benchmarks:

    PPP RangeRatingContext
    0-5%ExcellentWell-trained organization
    5-15%GoodRegular training in place
    15-30%AverageIndustry baseline for new programs
    30-50%PoorNeeds immediate attention
    50%+CriticalHigh-risk organization

    Field Reference

    Campaign Fields

    FieldTypeDescription
    campaign_idintUnique campaign identifier
    namestringCampaign name
    statusstringCurrent status (created, scheduled, in_progress, completed)
    create_datedatetimeWhen campaign was created
    start_datedatetimeScheduled start date
    end_datedatetimeCampaign end date
    duration_typestringHow long the campaign runs (e.g., one_week, two_weeks)
    send_durationstringEmail delivery spread period
    track_durationstringHow long to track interactions after delivery
    frequency_typestringOne-time, weekly, bi-weekly, monthly
    phishing_template_idintTemplate used for the phishing email
    landing_page_idintLanding page shown after click
    groupsarrayTarget groups for the campaign

    Phishing Security Test (PST) Fields

    FieldTypeDescription
    pst_idintUnique security test identifier
    statusstringTest status
    started_atdatetimeWhen the test began
    categoryobjectTemplate category info
    templateobjectEmail template details
    landing_pageobjectLanding page details
    scheduled_countintRecipients scheduled to receive
    delivered_countintEmails successfully delivered
    opened_countintEmails opened
    clicked_countintLinks clicked
    replied_countintReplies sent
    attachment_open_countintAttachments opened
    macro_enabled_countintMacros enabled
    data_entered_countintData entered on landing page
    reported_countintReported via PAB
    bounced_countintEmails bounced

    Recipient Fields

    FieldTypeDescription
    recipient_idintUnique recipient identifier
    pst_idintParent security test
    userobjectUser details (name, email, department)
    scheduled_atdatetimeWhen email is scheduled
    delivered_atdatetimeWhen email was delivered
    opened_atdatetimeWhen email was opened
    clicked_atdatetimeWhen link was clicked
    replied_atdatetimeWhen reply was sent
    attachment_opened_atdatetimeWhen attachment was opened
    macro_enabled_atdatetimeWhen macro was enabled
    data_entered_atdatetimeWhen data was entered
    reported_atdatetimeWhen it was reported
    bounced_atdatetimeWhen email bounced
    ipstringIP address of interaction
    browserstringBrowser used for click

    MCP Tools

    ToolDescriptionParameters (required in bold)
    knowbe4_phishing_campaigns_listList all phishing campaignspage, per_page
    knowbe4_phishing_campaigns_getGet campaign details, including its associated security testscampaign_id
    knowbe4_phishing_campaign_testsList the Phishing Security Tests belonging to one campaigncampaign_id, page, per_page
    knowbe4_phishing_security_tests_listList Phishing Security Tests across all campaignspage, per_page
    knowbe4_phishing_security_test_getGet detailed results for one PST — PPP, clicked/opened/reported countspst_id
    knowbe4_phishing_security_test_recipientsRecipient-level results for one PST: who clicked, opened, reportedpst_id, page, per_page
    knowbe4_phishing_security_test_recipientOne recipient's result within one PSTpst_id, recipient_id

    There is no campaign-level recipient tool. Recipients hang off a Phishing Security Test, never off a campaign, so "who clicked in this campaign" is two steps: knowbe4_phishing_campaign_tests to get the campaign's PSTs, then knowbe4_phishing_security_test_recipients per PST. A recipient ID is only meaningful alongside the pst_id it came from — knowbe4_phishing_security_test_recipient requires both.

    There is no phishing-template tool. Nothing in this plugin lists the template library or reads a single template's content, and no page/ per_page sweep will find one. Template selection is console work. Campaign and PST records name the template that was used, which is enough to compare how templates performed after the fact, but not to browse what is available before a send.

    None of the list tools filter by status or date. Narrowing to "completed campaigns since March" means paginating and filtering client-side.

    Common Workflows

    Review Campaign Results

    1. List campaigns to find the target campaign
    2. Get campaign details for overview metrics
    3. List security tests within the campaign
    4. Get security test results for detailed interaction counts
    5. List recipients to identify who clicked/failed
    6. Calculate PPP from the results

    Identify High-Risk Users

    1. List completed campaigns from a date range
    2. Get recipients who clicked or entered data across campaigns
    3. Cross-reference with user profiles for repeat offenders
    4. Generate report of users who failed multiple tests

    Compare Campaign Performance Over Time

    1. List all campaigns sorted by date
    2. Get PPP for each campaign
    3. Track trend -- PPP should decrease over time with training
    4. Identify anomalies -- sudden PPP increase may indicate new attack vector or template difficulty

    Post-Campaign Remediation

    1. Get failed recipients from completed campaign
    2. Enroll failed users in remedial training
    3. Schedule follow-up test targeting the same users
    4. Compare results to measure improvement

    Error Handling

    Common API Errors

    CodeMessageResolution
    400Invalid campaign parametersCheck date formats and required fields
    401Invalid API tokenVerify KNOWBE4_API_KEY
    403Insufficient permissionsAPI token needs Reporting permissions
    404Campaign not foundVerify campaign_id exists
    429Rate limit exceededImplement backoff (see api-patterns)

    Data Considerations

    IssueCauseResolution
    Zero delivered countCampaign just startedWait for delivery to complete
    High bounce rateInvalid email addressesClean user list before next campaign
    No reported countPAB not deployedInstall Phish Alert Button
    Opened count higher than deliveredEmail previews/security scannersFilter by user agent if available

    Best Practices

    1. Vary templates -- Use different phishing scenarios to avoid pattern recognition
    2. Spread delivery -- Send over days/weeks, not all at once, to avoid "water cooler effect"
    3. Track trends, not individual tests -- Single campaigns can be noisy; look at 3-6 month trends
    4. Combine with training -- Auto-enroll failed users in relevant training modules
    5. Use realistic scenarios -- Match templates to actual threats your clients face
    6. Baseline first -- Run an initial campaign before training to establish baseline PPP
    7. Report to leadership -- Share PPP trends with management to justify security awareness investment
    8. Test all levels -- Include executives and IT staff, not just general users
    9. Respect local regulations -- Some regions have restrictions on simulated phishing
    10. Set proper tracking duration -- Allow 72 hours minimum for accurate click data

    Related Skills

    Frequently asked questions

    What to verify before installation and use

    What does the KnowBe4 Phishing source document cover?

    KnowBe4 phishing simulations: campaign creation and lifecycle, security test management, recipient interaction tracking (sent, opened, clicked, reported), phish-prone percentage calculation, template selection, landing pages, and click tracking.

    How do I install KnowBe4 Phishing?

    The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/email-security/knowbe4/skills/phishing". Inspect the command and pinned source before running it.

    Alternatives

    Compare before choosing

    Computed 10025,136

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 9925

    indranilbanerjee/contentforge

    cf-variants

    Generate 3-10 scored A/B test variations of a single content element — headline, hook, CTA, intro, or conclusion — each rated across 6 quality dimensions and ranked by your optimization goal (clicks, engagement, conversions, or readability), with top-3 recommendations and A/B test setup guidance (sample size, duration, success metric). Triggers on "/contentforge:cf-variants", "give me headline alternatives", "A/B test options for this CTA", "which hook is stronger", "write 5 versions of this int

    Computed 9714

    adaptico/adaptico-os

    gtm-position

    Positioning analysis for /gtm position <target>. Derives positioning as a chain - real competitive alternatives, then unique attributes, then value with proof, then the customer who cares most, then the market frame - instead of filling in a positioning-statement template; scores the current position on a falsifiability-first rubric, generates 3 sharper-vertical variants pressure-tested against live rivals via web search, and ends with a messaging house (pillars, proof, and every key surface wri

    Computed 966,897

    trailofbits/skills

    harness-writing

    Designs and improves fuzzing harnesses for C/C++ and Rust. Covers mapping raw bytes onto a target API, generating structured inputs, avoiding non-determinism and false crashes, and deciding what to fuzz together. Use when writing a first LLVMFuzzerTestOneInput or fuzz_target! harness, when a campaign finds nothing or reports crashes that will not reproduce, or when the target API needs structured rather than raw input.