Resource Lab · Advanced Pattern

Troubleshooting Decision Path

A guided troubleshooting pattern for learning moments where people need to diagnose a problem, narrow the likely cause, and choose the next useful action. It is built for operational support, workflow clarity, and real-world decision-making, not fake quiz energy in a trench coat.

Purpose

Move learners from confusion to next action.

This pattern helps learners work through a problem step by step. Each choice narrows the path and produces practical guidance based on the symptoms they identify.

Best for

  • Operational troubleshooting
  • Support workflows
  • App or tool guidance
  • Safety checks
  • Manager decision support
  • First-day or first-route readiness

Learning philosophy

The point is not to make the learner guess the perfect answer. The point is to teach a repeatable thinking pattern: observe the signal, rule out the obvious, decide whether to act, retry, document, or escalate.

Live preview

Follow the path and get adaptive guidance.

This demo uses a simple three-step troubleshooting flow. In Storyline, each step could live on one slide, one layer, or one dynamic panel controlled by variables.

1 Signal
2 Check
3 Action

Step 01 · Identify the signal

A learner says the app instructions do not match what they see in the field.

What is the first thing you need to understand?

Storyline build notes

Suggested variables

Use Storyline variables to store each step. JavaScript can evaluate the full path and return scores, feedback, and next-step guidance.

signalChoice
checkChoice
actionChoice
troubleshootingPath
diagnosisScore
efficiencyScore
supportFitScore
feedbackTitle
feedbackBody
feedbackTone
recommendedAction

Interaction model

How the pattern works

01

Identify the signal

The learner names the type of problem before choosing a solution.

02

Rule out obvious causes

The flow reinforces a useful troubleshooting habit: check before acting.

03

Choose the next action

The learner picks whether to support, retry, document, or escalate.

04

Coach the path

Feedback responds to the whole decision path, not just the final click.

Starter logic

Storyline JavaScript starter block

Use this after the learner completes the final step. Customize the path combinations, scores, and feedback language for your own workflow.

// Troubleshooting Decision Path starter logic for Articulate Storyline
// Suggested trigger: Execute JavaScript after learner completes the final step

const player = GetPlayer();

const signalChoice = player.GetVar("signalChoice");
const checkChoice = player.GetVar("checkChoice");
const actionChoice = player.GetVar("actionChoice");

const pathKey = `${signalChoice}_${checkChoice}_${actionChoice}`;

const pathProfiles = {
  "field_mismatch_compare_context_decision_aid": {
    diagnosis: 96,
    efficiency: 92,
    support: 95,
    tone: "Exactly",
    title: "Strong troubleshooting path",
    body: "This path identifies the real-world mismatch, checks where the documented flow breaks down, and gives the learner a practical decision aid. It supports action without ignoring the system issue.",
    recommendedAction: "Provide the decision aid and document the mismatch for content or product review."
  },
  "field_mismatch_compare_context_escalate_with_context": {
    diagnosis: 94,
    efficiency: 78,
    support: 88,
    tone: "Strong",
    title: "Good escalation with useful context",
    body: "This path works well when the mismatch may affect other learners or indicates that the documented flow is outdated. The escalation is stronger because it includes the exact point of failure.",
    recommendedAction: "Escalate with screenshots, learner language, and the step where the flow diverged."
  },
  "unclear_instruction_repeat_module_full_restart": {
    diagnosis: 58,
    efficiency: 30,
    support: 42,
    tone: "Not exactly",
    title: "This may be too heavy",
    body: "Restarting the full experience may create frustration if the learner only needs one unclear instruction clarified. A lighter support moment would likely be more useful.",
    recommendedAction: "Clarify the confusing instruction and provide a short example."
  },
  "tech_failure_skip_check_escalate_with_context": {
    diagnosis: 82,
    efficiency: 76,
    support: 84,
    tone: "Cautious",
    title: "Escalation may be appropriate",
    body: "If this is truly a technical failure, escalation can be the right move. The key is to include enough context so the next team can act instead of restarting the investigation.",
    recommendedAction: "Capture device, screen, step, error language, and what the learner already tried."
  }
};

const fallbackProfiles = {
  decision_aid: {
    diagnosis: 78,
    efficiency: 84,
    support: 88,
    tone: "Useful",
    title: "Useful support path",
    body: "A decision aid can help the learner continue without overloading the moment. Make sure the aid is tied to the actual signal, not just a generic reminder.",
    recommendedAction: "Create a short field-ready guide for the specific condition."
  },
  escalate_with_context: {
    diagnosis: 74,
    efficiency: 66,
    support: 78,
    tone: "Cautious",
    title: "Escalation needs context",
    body: "Escalation can be useful, but only if the learner or support team captures the right details. Without context, escalation just moves confusion to another team.",
    recommendedAction: "Document the exact mismatch before escalating."
  },
  full_restart: {
    diagnosis: 46,
    efficiency: 28,
    support: 36,
    tone: "Redirect",
    title: "Avoid restarting by default",
    body: "Sending someone back through a full experience can feel like punishment if they only need targeted help. Use full restart only when the foundation is clearly missing.",
    recommendedAction: "Use targeted support before assigning a full restart."
  }
};

const profile = pathProfiles[pathKey] || fallbackProfiles[actionChoice] || fallbackProfiles.decision_aid;

player.SetVar("troubleshootingPath", pathKey);
player.SetVar("diagnosisScore", profile.diagnosis);
player.SetVar("efficiencyScore", profile.efficiency);
player.SetVar("supportFitScore", profile.support);
player.SetVar("feedbackTone", profile.tone);
player.SetVar("feedbackTitle", profile.title);
player.SetVar("feedbackBody", profile.body);
player.SetVar("recommendedAction", profile.recommendedAction);

Design notes

Keep it operational.

Troubleshooting patterns are most useful when they feel like support in the flow of work. Use practical language, short steps, and clear decision points. Do not make learners read a novel before they can act.

Customization ideas

  • Add screenshots or visual examples at each step.
  • Use learner confidence as an additional input.
  • Branch to different support aids based on the final path.
  • Let learners compare their path to an expert path.
  • Use the pattern as a lightweight alternative to a static SOP.

Resource Lab

Build support that helps people move forward.

Use this pattern when the learning moment is really a performance support moment: learners need to diagnose, decide, and act with more clarity.

Back to Resource Lab