> ## 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.

# Your AI toolkit

> The technician's guide to Thread AI: the Triage Agent, Magic AI (title, category, priority, sentiment, recap), Client Intelligence, and Super Magic.

export const MarkComplete = ({id, signalDone = false}) => {
  const KEY = "thread-onboarding-completed";
  const read = () => {
    try {
      return JSON.parse(localStorage.getItem(KEY) || "[]");
    } catch (e) {
      return [];
    }
  };
  const [localDone, setLocalDone] = useState(false);
  const done = signalDone || localDone;
  useEffect(() => {
    const sync = () => setLocalDone(read().includes(id));
    sync();
    window.addEventListener("thread-onboarding-updated", sync);
    return () => window.removeEventListener("thread-onboarding-updated", sync);
  }, [id]);
  const toggle = () => {
    if (signalDone) return;
    const list = read();
    const next = list.includes(id) ? list.filter(x => x !== id) : [...list, id];
    try {
      localStorage.setItem(KEY, JSON.stringify(next));
    } catch (e) {}
    setLocalDone(next.includes(id));
    window.dispatchEvent(new Event("thread-onboarding-updated"));
  };
  return <button onClick={toggle} style={{
    width: "100%",
    padding: "0.7rem 1rem",
    marginTop: "1.5rem",
    borderRadius: "8px",
    border: "1px solid " + (done ? "#00B398" : "rgba(128,128,128,0.35)"),
    background: done ? "rgba(0,179,152,0.12)" : "transparent",
    color: done ? "#00B398" : "inherit",
    fontWeight: 600,
    fontSize: "0.95rem",
    cursor: "pointer",
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    gap: "0.5rem"
  }}>
      <span aria-hidden="true">{done ? "✓" : "○"}</span>
      {done ? "Completed" : "Mark as complete"}
    </button>;
};

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 />

Thread's AI isn't bolted on the side — it's woven through the whole ticket lifecycle. Here's what each piece does for you, and how to put Super Magic to work today.

## Working quietly in the background

| Feature                                                                           | What you'll notice                                                                                                                                                                                                                               |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **[Triage Agent](/ai-agents/getting-started-with-triage-agent)**                  | New chat and email requests get an instant response, clarifying questions, and info-gathering 24/7 — routine ones can be resolved end-to-end and closed in your PSA before a tech touches them. What reaches you arrives scoped and prioritized. |
| **[Magic Title](/assistive-ai/setting-up-magic-title)**                           | Ticket summaries get rewritten into clean, consistent, scannable titles.                                                                                                                                                                         |
| **[Auto-Categorization](/assistive-ai/getting-started-with-auto-categorization)** | Type / subtype / item get set from the conversation automatically.                                                                                                                                                                               |
| **[Auto-Prioritization](/assistive-ai/how-to-set-up-auto-prioritization)**        | Priority is assessed from impact and urgency signals in the conversation.                                                                                                                                                                        |
| **[Magic Sentiment](/assistive-ai/configure-sentiment)**                          | Every thread gets a tone score (0–100), rolled up to a company average — with an **Ask Super Magic** explainer in your Control Panel.                                                                                                            |

## Memory and knowledge

* **[Contact Intelligence](/ai-agents/contact-intelligence)** — Thread's AI memory of each *person*. When a contact returns, a summary surfaces automatically: devices, past issues, prior resolutions. Review it before you respond — fewer repeat questions, faster fixes. No setup.
* **[Client Intelligence](/ai-agents/getting-started-with-knowledge)** — an automated research assistant that builds knowledge from your team's real resolutions: in-conversation article suggestions, auto-generated KB articles per client, plus company Notes and Applications so your fix matches their environment.

## Magic Recap

Instantly distills a whole conversation into a clear, actionable summary using templates your admins configure (escalation handoffs, incident summaries, CSAT reports). Run it anytime: `/copilot → Generate Recap`, or **Actions → Magic → Generate Recap**. Recaps can also fire automatically via [Flows](/inbox/flows). See [Magic Recap](/assistive-ai/magic-recap).

<Tip>
  Run a recap **before handing a thread to a teammate** so they never have to read 60 messages of scroll-back.
</Tip>

## Super Magic — your AI agent in Inbox

[Super Magic](/super-magic/meet-super-magic-your-ai-assistant-in-the-inbox) is an AI assistant built into Inbox. Ask it anything in plain language — about a ticket, a contact, a company, a device — and it finds the answer or does the work. Two rules it always follows:

* **It reads freely.** Searching and looking things up never changes anything. Ask away.
* **It acts only with your confirmation.** Before any change, a **Confirm action** card shows exactly what will happen, line by line. Nothing happens until you click **Confirm**; confirmed changes are recorded under your name.

Find it via the **Magic** button in navigation (full-page chat) or the launcher in the top-right of Inbox. It's thread-aware — open it while viewing a conversation and it already knows that ticket's context.

### Prompts to steal

<CodeGroup>
  ```text Everyday lookups theme={null}
  Show me open tickets for Acme on the Support board
  Who is John Smith at Acme — and what do we know about him?
  Search the KB for our VPN reset procedure
  Is John's laptop online? Any alerts?
  ```

  ```text Actions (you'll confirm each one) theme={null}
  Assign this ticket to Sarah and set it to In Progress
  Log 30 minutes and add an internal note: replaced the toner, monitoring
  Send the client an approval request for the server upgrade
  Schedule this ticket for me tomorrow 2–4pm
  ```

  ```text Chained workflows (one message) theme={null}
  Recap this ticket, recalculate the priority, post an escalation note listing
  what's been tried, move it to the Escalations board, and assign it to Diego.

  Log 45 minutes as the resolution with a summary of the fix, post an internal
  note with the troubleshooting steps, run a recap, send the client a thank-you,
  and set the status to closed.
  ```
</CodeGroup>

<Info>
  **Good to know.** Mass actions are bounded — roughly 30 steps per request, across the newest \~500 tickets; work huge batches in chunks. Dictation shines on long requests. Every chat has its own URL — if your admin enabled sharing, hand teammates a read-only link for handoffs.
</Info>

<Accordion title="Why is a tool missing from Super Magic?">
  Super Magic only offers tools you're allowed to use. Write actions are controlled by your admin; intents and flows are admin-only; integration tools (IT Glue, Hudu, TimeZest, Liongard, NinjaOne) appear only once connected; some tools (NinjaOne, and the Linear/Notion/Zapier connectors) need your own sign-in first; and merging tickets is ConnectWise-only. See the [Super Magic admin guide](/super-magic/super-magic-admin-guide-setup-access-safety).
</Accordion>

<MarkComplete id="technician/ai-toolkit" />

## Next

Last stop: making sure the right things reach you — and knowing what your customers see.

<Card title="Notifications & what customers see" icon="bell" href="/start-here/roles/technician/notifications-and-customers">
  Tune your alerts, work from Slack/Teams, and understand the customer's side.
</Card>


## Related topics

- [Your daily workflows](/start-here/roles/technician/daily-workflows.md)
- [Technician](/start-here/roles/technician.md)
- [Create your first Voice AI agent](/ai-agents/voice-ai-setup-phase-1-initial-configuration.md)
