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

# Roll out & drive adoption

> How a service manager drives Thread adoption across the desk: change management with your CSM, technician enablement, and daily and weekly rituals.

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

A configured desk isn't an adopted one. The tools only pay off when the whole team lives in Inbox by reflex — and that's a change-management job, which is squarely yours. This lesson covers the three levers: a **change-management plan**, **enablement** that gets techs productive, and the **rituals** that make new habits stick.

## Run the change, don't just flip the switch

Rolling out Thread changes how every technician works, and change fails when it's announced instead of managed. Your Thread Customer Success Manager brings a structured playbook for exactly this — the [partner change-management guide](/get-started/thread-partner-change-management-guide) — and your job is to run it on the desk.

The moves that separate a rollout that sticks from one that stalls:

* **Name the why.** Techs adopt faster when they know the tool makes *their* day easier — fewer clicks, less swivel-chair — not just that leadership bought it.
* **Pick your champions.** Get one or two respected techs fluent first; peer proof beats a manager's memo every time.
* **Set the golden rule and hold it.** Live in Inbox, not the PSA. Everything syncs back automatically, so there's no reason to work both — and every reason not to.
* **Make it visible.** Share early wins — a queue that's cleaner, an XLA line trending up, an AI deflection number — so the team sees the payoff, not just the change.

<Tip>
  The single highest-leverage message you can repeat: **work in Inbox, and let it sync to the PSA.** A team that half-lives in the old system gets none of the speed and none of the data. Adoption is mostly this one habit, reinforced until it's automatic.
</Tip>

## Enable your technicians

Adoption runs on competence — a tech who can't find a View or doesn't know Super Magic exists will drift back to the PSA. Point the team at the enablement built for their seat and make the first week deliberate.

<CardGroup cols={2}>
  <Card title="Technician course" icon="graduation-cap" href="/start-here/roles/technician">
    The full technician path — Inbox, daily workflows, the AI toolkit. Hand every new hire this on day one.
  </Card>

  <Card title="Why Thread" icon="lightbulb" href="/start-here/roles/technician/why-thread">
    The three-minute case for a technician: a thread is a ticket, everything syncs, work arrives pre-scoped.
  </Card>

  <Card title="The AI toolkit" icon="wand-magic-sparkles" href="/start-here/roles/technician/ai-toolkit">
    Triage Agent, Magic AI, Intelligence, and Super Magic — where a tech's day actually gets faster.
  </Card>

  <Card title="Skill Library" icon="books" href="/skill-library/overview">
    Hundreds of ready prompts. Teach the team to press `⌘K` and search before they do a task by hand.
  </Card>
</CardGroup>

A pattern that works: assign the technician course in week one, pair each new tech with a champion, and check in at the end of the week that they're opening Inbox — not the PSA — to work a ticket. The [Skill Library](/skill-library/overview) is your ongoing enablement bench; make searching it a norm, not a novelty.

## Make it stick with rituals

Habits, not one-time training, are what carry adoption past the launch buzz. Put a small number of rituals on the desk's calendar and run them consistently.

| Cadence           | Ritual                                                                        | What it reinforces                                                                 |
| ----------------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| **Daily (you)**   | [Lead daily ritual](/skill-library/role-rituals/lead-daily-ritual)            | You start the day in Thread's analytics and Views, modeling the behavior you want. |
| **Daily (techs)** | [Tech morning ritual](/skill-library/role-rituals/tech-morning-ritual)        | Every technician opens Inbox first and orients around their own work.              |
| **Weekly (you)**  | [Weekly Ops Report](/skill-library/reporting-and-analytics/weekly-ops-report) | The desk's performance gets reviewed on a schedule, so drift gets caught early.    |

<Steps>
  <Step title="Model it yourself">
    Run your own lead daily ritual visibly. Adoption is a leadership behavior before it's a team one — if the manager lives in the PSA, so will the desk.
  </Step>

  <Step title="Make the tech rituals the norm">
    Encourage every technician to start the day with the [morning ritual](/skill-library/role-rituals/tech-morning-ritual). Consistency beats intensity — a small daily habit outlasts a big kickoff.
  </Step>

  <Step title="Review on a cadence">
    Close each week with the [Weekly Ops Report](/skill-library/reporting-and-analytics/weekly-ops-report) and one QA pass. A standing review keeps adoption from quietly sliding back.
  </Step>
</Steps>

<Note>
  Adoption compounds. Every ticket worked in Inbox feeds Contact and Client Intelligence, trains the Triage Agent, and sharpens the analytics you manage from — so the more the desk adopts, the more the desk gets back. Your job is to protect the habit long enough for the flywheel to spin.
</Note>

## You've run the course

You've structured the desk, put XLAs and dispatch on top of it, made performance visible, and driven the adoption that makes it all compound. From here, the [Skill Library](/skill-library/overview) is your ongoing toolkit and your CSM is your partner in optimization.

<Card title="Back to your course hub" icon="compass" href="/start-here/roles/service-ops-manager">
  The full service-manager course, your starter kit, and the adoption ramp.
</Card>

<MarkComplete id="service-ops-manager/roll-out-and-adopt" />


## Related topics

- [Analytics & QA](/start-here/roles/service-ops-manager/analytics-and-qa.md)
- [Service & Ops Manager](/start-here/roles/service-ops-manager.md)
- [Roll Thread out across your business](/start-here/roles/msp-owner-leadership/the-rollout.md)
