> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Technician

> The technician's course for Thread: a six-lesson path to working tickets in Inbox with Super Magic — plus a starter kit, ritual, and 30-day ramp.

export const ByRoleProgress = () => {
  useEffect(() => {
    const KEY = "thread-onboarding-completed";
    const TEAL = "#00B398";
    const BASE = "/start-here/roles/";
    const DONE_ICON = '<svg class="thread-rc-doneicon size-4" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#00B398" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">' + '<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/>' + '<polyline points="22 4 12 14.01 9 11.01"/></svg>';
    const COURSES = [{
      slug: "technician",
      steps: ["why-thread", "get-around-inbox", "day-one-setup", "daily-workflows", "ai-toolkit", "notifications-and-customers"]
    }, {
      slug: "dispatcher",
      steps: ["why-dispatch-in-thread", "read-the-board", "assign-and-schedule", "ai-for-dispatch"]
    }, {
      slug: "service-ops-manager",
      steps: ["set-up-the-desk", "sla-and-dispatch", "analytics-and-qa", "roll-out-and-adopt"]
    }, {
      slug: "csm-account-manager",
      steps: ["client-intelligence-and-health", "qbrs-and-reporting", "retention-and-expansion"]
    }, {
      slug: "security-compliance-owner",
      steps: ["security-work-in-thread", "data-and-compliance", "security-runbooks"]
    }, {
      slug: "sales-business-development",
      steps: ["the-ai-service-pitch", "quote-and-handoff"]
    }, {
      slug: "msp-owner-leadership",
      steps: ["the-rollout", "outcomes-and-analytics", "scale-ai-service"]
    }, {
      slug: "automation-engineer",
      steps: ["flows-and-intents", "thread-mcp-and-api", "build-with-super-magic"]
    }];
    const COURSE_SLUGS = new Set(COURSES.map(c => c.slug));
    const readLocal = () => {
      try {
        return JSON.parse(localStorage.getItem(KEY) || "[]");
      } catch (e) {
        return [];
      }
    };
    const isDone = (done, id) => done.includes(id);
    const decorate = () => {
      const done = readLocal();
      const scope = document.getElementById("sidebar-content") || document;
      const links = [...scope.querySelectorAll('a[href*="' + BASE + '"]')].filter(a => !a.closest("main"));
      links.forEach(a => {
        const m = (a.getAttribute("href") || "").match(/\/start-here\/roles\/([^/?#]+)\/([^/?#]+)/);
        if (!m) return;
        if (!COURSE_SLUGS.has(m[1])) return;
        const id = m[1] + "/" + m[2];
        const d = isDone(done, id);
        const has = a.querySelector(".thread-rc-check");
        if (d && !has) {
          const s = document.createElement("span");
          s.className = "thread-rc-check";
          s.textContent = "✓ ";
          s.style.color = TEAL;
          s.style.fontWeight = "700";
          a.insertBefore(s, a.firstChild);
        } else if (!d && has) {
          has.remove();
        }
      });
      COURSES.forEach(course => {
        const li = scope.querySelector('li[id="' + BASE + course.slug + '"]');
        if (!li) return;
        const row = li.querySelector(":scope > button") || li.querySelector(":scope > a") || li.firstElementChild;
        if (!row) return;
        const nameSpan = [...row.querySelectorAll("span")].find(s => s.textContent.trim() && !s.classList.contains("thread-rc-coursecheck"));
        if (!nameSpan) return;
        const allDone = course.steps.length > 0 && course.steps.every(s => isDone(done, course.slug + "/" + s));
        const has = nameSpan.querySelector(".thread-rc-coursecheck");
        if (allDone && !has) {
          const s = document.createElement("span");
          s.className = "thread-rc-coursecheck";
          s.setAttribute("aria-hidden", "true");
          s.style.display = "inline-flex";
          s.style.alignItems = "center";
          s.style.verticalAlign = "-0.2em";
          s.style.marginRight = "0.35em";
          s.innerHTML = DONE_ICON;
          nameSpan.insertBefore(s, nameSpan.firstChild);
        } else if (!allDone && has) {
          has.remove();
        }
      });
    };
    decorate();
    const iv = setInterval(decorate, 600);
    window.addEventListener("thread-onboarding-updated", decorate);
    window.addEventListener("storage", decorate);
    return () => {
      clearInterval(iv);
      window.removeEventListener("thread-onboarding-updated", decorate);
      window.removeEventListener("storage", decorate);
    };
  }, []);
  return null;
};

<ByRoleProgress />

You work the queue. Thread's job is to get you to resolution faster — less typing, less context-switching, more fixing. This is your course: six short lessons that take you from your first reply to chained AI workflows, plus the skills and rituals built for your day.

## The course

Work these in order — each ends with a link to the next. Fifteen minutes total gets you productive; the AI lesson is where the day gets faster.

<Steps>
  <Step title="Why Thread — and what changes for you">
    A thread is a ticket, everything syncs to your PSA, and work arrives pre-scoped. [Start here →](/start-here/roles/technician/why-thread)
  </Step>

  <Step title="Get around Inbox">
    The Viewer, the Thread, the Control Panel, Views, and Beast Mode. [Read →](/start-here/roles/technician/get-around-inbox)
  </Step>

  <Step title="Day-one setup">
    Preferences, notifications, and Snippets that pay off daily. [Read →](/start-here/roles/technician/day-one-setup)
  </Step>

  <Step title="Your daily workflows">
    Reply vs. note, slash commands, Time Pad, Planner, approvals. [Read →](/start-here/roles/technician/daily-workflows)
  </Step>

  <Step title="Your AI toolkit">
    Triage Agent, Magic AI, Intelligence, and Super Magic. [Read →](/start-here/roles/technician/ai-toolkit)
  </Step>

  <Step title="Notifications & what customers see">
    Tune your alerts and understand the customer's side. [Read →](/start-here/roles/technician/notifications-and-customers)
  </Step>
</Steps>

## Your starter kit

The [Skill Library](/skill-library/overview) has hundreds of technician skills. Start with these — then press **`⌘K`** and search for any task ("reset password", "vpn", "printer") to find the rest.

<CardGroup cols={2}>
  <Card title="Client Reply" icon="reply" href="/skill-library/communication/client-reply">
    Draft the client reply in your house voice.
  </Card>

  <Card title="Ticket Research Co-pilot" icon="magnifying-glass" href="/skill-library/troubleshooting-playbooks/ticket-research-copilot">
    Cited, evidence-based research before you touch the ticket.
  </Card>

  <Card title="Ticket Summary & Closure Note" icon="file-lines" href="/skill-library/documentation/ticket-summary-and-closure-note">
    A clean closure note, every time.
  </Card>

  <Card title="Custom Time-Entry Writer" icon="stopwatch" href="/skill-library/documentation/custom-time-entry-writer">
    Time entries written your way.
  </Card>

  <Card title="Daily Digest" icon="newspaper" href="/skill-library/personal-productivity/daily-digest">
    Your open tickets, skimmable in under a minute.
  </Card>

  <Card title="Escalation Prep" icon="arrow-up-right-dots" href="/skill-library/escalation/escalation-prep">
    Hand off a ticket cold-ready, every time.
  </Card>
</CardGroup>

## Your daily ritual

<CardGroup cols={2}>
  <Card title="Morning ritual" icon="sun" href="/skill-library/role-rituals/tech-morning-ritual">
    Start oriented — what's mine, what's urgent, what's next.
  </Card>

  <Card title="End-of-day ritual" icon="moon" href="/skill-library/role-rituals/tech-eod-ritual">
    Close out clean — time logged, notes done, nothing dropped.
  </Card>
</CardGroup>

Make Inbox your first tab of the morning and your last at night. Check **My Inbox**, then **@ Mentions**, then your team **Views** — in that order.

## Your first 30 days: the adoption ramp

| Week       | Focus                                                                                                                 | You've got it when…                                                        |
| ---------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **Week 1** | Live in Inbox. Replies vs. notes, Time Pad on every ticket, preferences and notifications tuned.                      | You haven't opened the PSA to work a ticket all week.                      |
| **Week 2** | Speed layer: Snippets with variables, slash commands, Views + Beast Mode, Planner for your schedule.                  | Your average reply takes half the clicks it used to.                       |
| **Week 3** | AI layer: Super Magic for lookups daily, Magic Recap on every handoff, Contact Intelligence before every first reply. | "Let me ask Super Magic" is your reflex before "let me dig."               |
| **Week 4** | Power moves: chained Super Magic workflows, approvals from the composer, refining knowledge articles you used.        | You're closing tickets in single sentences — and teaching someone else to. |

<Note>
  Thread gets smarter the more your team uses it. Every ticket resolved in Inbox feeds Contact Intelligence, builds knowledge articles, and sharpens the Triage Agent. Your adoption compounds for the whole desk.
</Note>

## Pro tips & FAQ

<AccordionGroup>
  <Accordion title="Speed moves experienced techs swear by">
    * **Beast Mode** shortcuts: **`⌘K`**/**`⌘J`** next/previous conversation, **`⌘A`** toggle Active/Done, **`Ctrl+N`** new thread, **`⌘⇧L`** Link Threads (full list in the account menu).
    * Slash commands beat mousing — `/status`, `/assign`, `/snip`, `/time` cover 90% of ticket admin.
    * Turn on the **Aa** editor so **`Ctrl+Enter`** sends, then write multi-line replies fearlessly.
    * Recap before every handoff; check **Recent Threads** and **Contact Intelligence** before every first reply.
    * Dictate long Super Magic requests instead of typing them.
    * Use an **internal note** when you need a Flow to re-evaluate a thread — notes reliably trigger the PSA webhook update that Flows listen for.
  </Accordion>

  <Accordion title="I'm missing contacts, boards, or statuses from my PSA">
    Run the thread-level **PSA Sync** first. If it's workspace-wide, an admin can run a manual sync from **Admin → Integrations → PSA → PSA Sync**. Syncs can take up to an hour.
  </Accordion>

  <Accordion title="I'm new and I can't see any Views">
    Newly synced members must be added to existing Views manually — ask your admin or team lead to add you.
  </Accordion>

  <Accordion title="I changed something but the Flow/automation didn't fire">
    Flows evaluate when a thread is *updated* (reply, note, status change, board change) after the flow exists. Add an internal note to nudge a thread through. Webhooks are near-real-time but not 100% guaranteed.
  </Accordion>

  <Accordion title="Who do I ask when I'm stuck?">
    Your team's Thread admin first, then these docs. Your company's Thread Customer Success Manager is also working with your admins throughout onboarding.
  </Accordion>
</AccordionGroup>


## Related topics

- [Technician Availability Check](/skill-library/scheduling-and-dispatch/technician-availability-check.md)
- [Voice AI FAQ](/ai-agents/voice-ai-faq.md)
- [Roll out & drive adoption](/start-here/roles/service-ops-manager/roll-out-and-adopt.md)
