Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Thread Docs","colors":{"primary":"#00B398","light":"#19D3AB","dark":"#008E78"},"logo":{"light":"https://mintcdn.com/thread/50guKpC0vegpyObR/logo/thread.svg?fit=max\u0026auto=format\u0026n=50guKpC0vegpyObR\u0026q=85\u0026s=86145b5e0fe1e4b555128fc8d8fd9815","dark":"https://mintcdn.com/thread/2AdmqP0mlnyoZLRc/logo/dark.svg?fit=max\u0026auto=format\u0026n=2AdmqP0mlnyoZLRc\u0026q=85\u0026s=be32bb55d8f9cb7540f7c741c3568f92"},"favicon":"https://mintcdn.com/thread/hgBTJ4Ailw9NcSXS/favicon.svg?fit=max\u0026auto=format\u0026n=hgBTJ4Ailw9NcSXS\u0026q=85\u0026s=e5c9cc06837f1f692d72495e146c976a","appearance":{"default":"dark"},"background":{"color":{"light":"#FAF9F6","dark":"#0A0A0B"}},"navbar":{"links":[{"href":"https://www.getthread.com/aisu-community","label":"Community"}],"primary":{"type":"button","label":"Thread Inbox","href":"https://inbox.getthread.com"}},"footer":{"socials":{"website":"https://www.getthread.com","linkedin":"https://www.linkedin.com/company/thread-service","youtube":"https://www.youtube.com/channel/UCAZ535tVfwF94lOE818tVmQ"},"links":[{"header":"Our mission","items":[{"label":"Death to the Ticket","href":"https://www.getthread.com/death-to-ticket"},{"label":"Intelligent Service Delivery","href":"https://www.getthread.com/intelligent-service-delivery-manifesto-the-future-of-msp-operations"}]},{"header":"Popular features","items":[{"label":"AI Agents","href":"https://www.getthread.com/automated-ticket-triage"},{"label":"Automated Triage","href":"https://www.getthread.com/automated-ticket-triage"},{"label":"Service Desk Chatbots","href":"https://www.getthread.com/live-managed-chat-support"},{"label":"Teams Chat Integration","href":"https://www.getthread.com/teams-to-teams"},{"label":"AI for Phone","href":"https://www.getthread.com/voice-ai"}]},{"header":"Company","items":[{"label":"About","href":"https://www.getthread.com/about-thread"},{"label":"Careers","href":"https://www.getthread.com/careers"}]},{"header":"Resources","items":[{"label":"AISU Community","href":"https://www.getthread.com/aisu-community"},{"label":"Thread Crew","href":"https://thread-crew.circle.so/join?invitation_token=8c546a98539fb84b4eb913b8b647a078bb353623-ea2d128e-eaae-42fd-af14-5949e71bf51b"},{"label":"AISU weekly webinar","href":"https://www.getthread.com/aisu-weekly-registration"},{"label":"Events","href":"/events-and-resources"},{"label":"Blog","href":"https://www.getthread.com/service-magic-blog"},{"label":"System Status","href":"https://status.getthread.com/"},{"label":"Feedback","href":"https://feedback.getthread.com/"},{"label":"Contact support","href":"https://help.getthread.com"},{"label":"Trust Center","href":"https://trust.getthread.com"},{"label":"Terms of Service","href":"https://www.getthread.com/terms-of-service"},{"label":"Privacy Policy","href":"https://www.getthread.com/privacy-policy"}]}]},"fonts":{"heading":{"family":"Inter","weight":600},"body":{"family":"Inter"}},"banner":{"content":"Join hundreds of MSPs on the **AI Service Unleashed** weekly call — product releases, beta access, and Super Magic tips. [Register](https://www.getthread.com/aisu-weekly-registration)","dismissible":true},"contextual":{"options":["copy","view","assistant","claude","chatgpt","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"thread","hasAudioNarration":false,"actualSubdomain":"thread","customDomains":["docs.getthread.com"],"gitSource":{"type":"github","owner":"thread-magic","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"agentFeedback":true,"thumbs":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af90a4174b4f0f02ee1e1ef","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Guides","count":213},{"language":"default","tag":"Super Magic \u0026 Thread MCP","count":34},{"language":"default","tag":"By role","count":28},{"language":"default","tag":"Choose your role","count":28},{"language":"default","tag":"Integrations","count":24},{"language":"default","tag":"Messenger","count":22},{"language":"default","tag":"Super Magic Tools","count":20},{"language":"default","tag":"Voice AI","count":19},{"language":"default","tag":"Thread Inbox","count":19},{"language":"default","tag":"Magic Agents","count":16}],"searchSettings":{"isFiltersEnabled":false}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"type":"email","email":"help@getthread.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/thread/7dad7b024a7096a6/style.css"}],"page":{"pagePath":"skill-library/triage-and-routing/overview","slug":"/skill-library/triage-and-routing/overview","pageMetadata":{"title":"Triage \u0026 Routing","description":"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.","keywords":["allocate","assign","autotask","brief","broken","computer","connectwise","dashboard","desktop","digest","down","email","error","failed","halopsa","how are we doing","issue","junk","laptop","machine","metrics","numbers","offline","pc","problem","threshold","unwanted mail","urgent","warning","workstation","Alert Client Resolver via Liongard","Alert Site to Client Mapping","Alert Storm Merge","Alert Title Normalization","Alert Title Standardizer","Auto Priority Classification","Billable Scope Router","Board Routing Rules Engine","Catchall Asset Cross-Reference","Catchall Noise Gate","Catchall Routing","Courtesy Reply Status Revert","Cross-Client Outage Detector","Default Contact Autofill","Dispatcher Intake","Duplicate Hunter","Intake Classification Tree","Monitoring Companion Merge","Multi-Issue Ticket Splitter","New Ticket First Touch","Noise Auto-Close","Prior Resolution","Priority Downgrade Guard","Queue Scoring Triage","RE/FW Reopen Detection","Reassign Contact Submitted On Behalf Of","Route, Assign and Document","Scheduling Intent Detector","Sentiment Score Explainer","Spam Sender Triage","Ticket Triage","Triage Category","Triage Priority","Triage Similar Tickets","Triage Ticket Type","Urgent Deadline Watch","VIP Priority Handling"],"href":"/skill-library/triage-and-routing/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const MagicLibrary=({src=``,lock=``})=>{const _components={a:`a`,..._provideComponents()};const createEngine=(records,dict,syn)=>{const K1=1.2,B=.6;const W_TITLE=3,W_DESC=1,W_PREVIEW=.5,W_CONN=1.5,W_CAT=.4;const W_WHEN=.6,W_KW=.4,W_FACET=.4;const SCORE_FLOOR=.28;const LOCALIZED_RE=/\\((Dutch|German|French|Spanish|Norwegian|Swedish|Danish|Italian|Portuguese|Finnish|Polish|Japanese)\\)/i;const STOP={};(`a an and or the to of for in on with is are be by from as at it its this that you your `+`we us our me my just get got gets also would should will was were been has every `+`have had do does did`).split(` `).forEach(w=>{STOP[w]=1});const SUFFIX=[[`ies`,`y`],[`sses`,`ss`],[`ing`,``],[`ions`,`ion`],[`ers`,`er`],[`es`,``],[`ed`,``],[`s`,``]];const stem=w=>{for(let i=0;i\u003cSUFFIX.length;i++){const suf=SUFFIX[i][0];if(w.length-suf.length>=3\u0026\u0026w.slice(-suf.length)===suf){return w.slice(0,w.length-suf.length)+SUFFIX[i][1]}}return w};const words=text=>String(text||``).toLowerCase().split(/[^a-z0-9]+/);const tokens=text=>{const out=[];words(text).forEach(w=>{if(w.length>1\u0026\u0026!STOP[w])out.push(stem(w))});return out};const expand=text=>{const raw=words(text),joined=raw.join(` `),present={},out=[];raw.forEach(w=>{if(w)present[w]=1});Object.keys(syn).forEach(key=>{let hit;if(key.indexOf(` `)>=0)hit=joined.indexOf(key)>=0;else if(key.length>=4)hit=raw.some(w=>w.length>=key.length\u0026\u0026w.slice(0,key.length)===key);else hit=!!present[key];if(hit)syn[key].forEach(alias=>tokens(alias).forEach(t=>out.push(t)))});return out};const corpus=records.map(r=>{const tf=Object.create(null);const strong=Object.create(null);const inTitle=Object.create(null);const inWhen=Object.create(null);tokens(r[0]).forEach(t=>{inTitle[t]=1});let weak=false;const add=(list,weight)=>{list.forEach(t=>{tf[t]=(tf[t]||0)+weight;if(!weak)strong[t]=1})};add(tokens(r[0]),W_TITLE);add(expand(r[0]),W_TITLE);add(tokens(r[2]),W_DESC);add(expand(r[2]),W_DESC);add(tokens(r[3]),W_PREVIEW);add(tokens(r[7].map(c=>dict.conn[c]).join(` `)),W_CONN);add(tokens((dict.cat[r[4]]||[])[1]),W_CAT);weak=true;const kw=dict.kw||[];if(r[12]){const wt=tokens(r[12].map(k=>kw[k]).join(` `));wt.forEach(t=>{inWhen[t]=1});add(wt,W_WHEN)}if(r[13])add(tokens(r[13].map(k=>kw[k]).join(` `)),W_KW);add(tokens(r[5].map(x=>dict.role[x]).join(` `)),W_FACET);add(tokens((r[6]||[]).map(x=>dict.out[x]).join(` `)),W_FACET);if(r[9]>=0)add(tokens(dict.act[r[9]]),W_FACET);let len=0;Object.keys(tf).forEach(t=>{len+=tf[t]});return{tf,strong,inTitle,inWhen,len,w:(LOCALIZED_RE.test(r[0])?.45:1)*(r[10]?1.1:1)}});const df=Object.create(null);corpus.forEach(d=>Object.keys(d.tf).forEach(t=>{df[t]=(df[t]||0)+1}));const vocab=Object.keys(df).sort();const avgLen=corpus.reduce((s,d)=>s+d.len,0)/(corpus.length||1);const prefixTerms=prefix=>{let lo=0,hi=vocab.length;while(lo\u003chi){const m=lo+hi>>1;if(vocab[m]\u003cprefix)lo=m+1;else hi=m}const out=[];for(let i=lo;i\u003cvocab.length\u0026\u0026vocab[i].slice(0,prefix.length)===prefix;i++)out.push(vocab[i]);return out};const ed1=w=>vocab.filter(v=>{if(Math.abs(v.length-w.length)>1)return false;let a=0,b=0,edits=0;while(a\u003cw.length\u0026\u0026b\u003cv.length){if(w[a]===v[b]){a++;b++;continue}if(++edits>1)return false;if(w.length>v.length)a++;else if(w.length\u003cv.length)b++;else{a++;b++}}return edits+(w.length-a)+(v.length-b)\u003c=1});const planQuery=q=>{const rawWords=words(q).filter(w=>w.length>1\u0026\u0026!STOP[w]);const raw=rawWords.map(stem),groups=[];raw.forEach((t,i)=>{let terms=df[t]?[t]:[];if(i===raw.length-1\u0026\u0026t.length>=3){const done=rawWords[i]!==t;prefixTerms(t).forEach(x=>{if(done\u0026\u0026x.length>t.length+3)return;if(terms.indexOf(x)\u003c0)terms.push(x)})}if(!terms.length\u0026\u0026t.length>=4)terms=ed1(t).sort((a,b)=>df[b]-df[a]);if(terms.length)groups.push(terms)});return groups};const scoreDoc=(i,groups)=>{const doc=corpus[i],n=corpus.length;let total=0,hits=0,credit=0;groups.forEach(terms=>{let best=0,own=false,title=false,when=false;terms.forEach(t=>{const f=doc.tf[t];if(!f)return;const d=df[t];const idf=Math.log(1+(n-d+.5)/(d+.5));const sc=idf*(f*(K1+1))/(f+K1*(1-B+B*doc.len/avgLen));if(sc>best)best=sc;if(doc.strong[t])own=true;if(doc.inTitle[t])title=true;if(doc.inWhen[t])when=true});if(best>0){hits++;credit+=title?1.5:own?1:when?.6:.25}total+=best});if(!hits)return 0;const cover=credit/groups.length;return total*cover*(1+.6*(hits-1)/groups.length)*doc.w};const search=q=>{const groups=planQuery(q);if(!groups.length)return{hits:[],terms:[]};const scored=[];for(let i=0;i\u003crecords.length;i++){const s=scoreDoc(i,groups);if(s>0)scored.push({i,score:s})}scored.sort((a,b)=>b.score-a.score||records[a.i][0].toLowerCase().localeCompare(records[b.i][0].toLowerCase()));const floor=scored.length?scored[0].score*SCORE_FLOOR:0;return{hits:scored.filter(x=>x.score>=floor),terms:[].concat(...groups)}};return{search,stem}};const PAGE=30;const F={title:0,path:1,desc:2,preview:3,cat:4,role:5,out:6,conn:7,tier:8,act:9,ver:10,feat:11};const slug=s=>String(s).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``);const ICONS={search:_jsxs(_Fragment,{children:[_jsx(`circle`,{cx:`11`,cy:`11`,r:`7`}),_jsx(`path`,{d:`m20 20-3.5-3.5`})]}),x:_jsx(`path`,{d:`M18 6 6 18M6 6l12 12`}),down:_jsx(`path`,{d:`m6 9 6 6 6-6`}),up:_jsx(`path`,{d:`m18 15-6-6-6 6`}),expand:_jsx(`path`,{d:`M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7`}),table:_jsx(`path`,{d:`M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18`}),check:_jsx(`path`,{d:`M20 6 9 17l-5-5`}),filter:_jsx(`path`,{d:`M22 3H2l8 9.46V19l4 2v-8.54L22 3z`}),verified:_jsxs(_Fragment,{children:[_jsx(`path`,{d:`M22 11.08V12a10 10 0 1 1-5.93-9.14`}),_jsx(`path`,{d:`M22 4 12 14.01l-3-3`})]}),star:_jsx(`path`,{d:`m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z`}),arrow:_jsx(`path`,{d:`M5 12h14M12 5l7 7-7 7`}),right:_jsx(`path`,{d:`m9 18 6-6-6-6`}),back:_jsx(`path`,{d:`m15 18-6-6 6-6`}),tier:_jsxs(_Fragment,{children:[_jsx(`circle`,{cx:`12`,cy:`12`,r:`10`}),_jsx(`path`,{d:`m10 8 6 4-6 4V8z`})]}),works:_jsxs(_Fragment,{children:[_jsx(`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`}),_jsx(`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`})]}),cat:_jsxs(_Fragment,{children:[_jsx(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}),_jsx(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`,rx:`1`}),_jsx(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`,rx:`1`}),_jsx(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`})]}),does:_jsx(`path`,{d:`M13 2 3 14h9l-1 8 10-12h-9l1-8z`}),role:_jsxs(_Fragment,{children:[_jsx(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),_jsx(`circle`,{cx:`12`,cy:`7`,r:`4`})]}),outcome:_jsxs(_Fragment,{children:[_jsx(`circle`,{cx:`12`,cy:`12`,r:`10`}),_jsx(`circle`,{cx:`12`,cy:`12`,r:`6`}),_jsx(`circle`,{cx:`12`,cy:`12`,r:`2`})]})};const Icon=({name,size=14})=>_jsx(`svg`,{className:`ml-icon`,width:size,height:size,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,\"aria-hidden\":`true`,children:ICONS[name]});const[data,setData]=useState(null);const[isMac,setIsMac]=useState(true);useEffect(()=>{try{setIsMac(/Mac|iPhone|iPad/i.test(navigator.platform||navigator.userAgent||``))}catch(e){}},[]);useEffect(()=>{if(!data||!window.location.hash||window.location.hash.length\u003c2)return;let target=null;try{target=document.getElementById(decodeURIComponent(window.location.hash.slice(1)))}catch(e){}if(!target||rootRef.current\u0026\u0026rootRef.current.contains(target))return;const t=setTimeout(()=>target.scrollIntoView({block:`start`}),60);return()=>clearTimeout(t)},[data]);const[failed,setFailed]=useState(false);const[q,setQ]=useState(``);const[dq,setDq]=useState(``);const[filters,setFilters]=useState([]);const[sort,setSort]=useState(``);const[pop,setPop]=useState(null);const[popSearch,setPopSearch]=useState(``);const[limit,setLimit]=useState(PAGE);const[sel,setSel]=useState(``);const shownRef=useRef([]);const panelRef=useRef(null);const MODAL_MAX=960;const MODAL_GUTTER=48;const MODAL_Y=32;const[panelTop,setPanelTop]=useState(0);const[panelLeft,setPanelLeft]=useState(16);const[panelW,setPanelW]=useState(0);const[panelH,setPanelH]=useState(0);useEffect(()=>{if(!sel)return;const measure=()=>{const nav=document.getElementById(`navbar`);const banner=document.getElementById(`banner`);const bottom=Math.max(nav?nav.getBoundingClientRect().bottom:0,banner?banner.getBoundingClientRect().bottom:0);let lo=Infinity,hi=0;if(nav)nav.querySelectorAll(`a, button`).forEach(x=>{if(x.closest(`#banner`))return;const r=x.getBoundingClientRect();if(!r.width||!r.height)return;if(r.left\u003clo)lo=r.left;if(r.right>hi)hi=r.right});const vh=window.innerHeight;const wantTop=Math.round(bottom+(document.documentElement.clientWidth\u003c=640?16:MODAL_Y));const vw=document.documentElement.clientWidth;const sheet=vw\u003c=640;const side=document.getElementById(`sidebar`);const sr=side?side.getBoundingClientRect():null;if(sr\u0026\u0026sr.width\u0026\u0026sr.right>0\u0026\u0026getComputedStyle(side).display!==`none`)lo=Math.max(lo,sr.right+16);let wantLeft=sheet||!hi?sheet?0:16:Math.round(lo);let wantW=sheet?vw:(hi?Math.round(hi):vw-16)-wantLeft;const cap=sheet?wantW:Math.min(MODAL_MAX,Math.max(480,wantW-2*MODAL_GUTTER));if(wantW>cap){wantLeft+=Math.round((wantW-cap)/2);wantW=cap}const wantH=Math.max(240,Math.round(vh-wantTop-(sheet?0:MODAL_Y)));setPanelH(h=>h===wantH?h:wantH);setPanelW(w=>w===wantW?w:wantW);const el=panelRef.current;if(!el)return;const r=el.getBoundingClientRect();const curTop=parseFloat(el.style.top)||0;const curLeft=parseFloat(el.style.left)||0;const nextTop=Math.round(curTop+(wantTop-r.top));const nextLeft=Math.round(curLeft+(wantLeft-r.left));if(Math.abs(nextTop-curTop)>=1)setPanelTop(nextTop);if(Math.abs(nextLeft-curLeft)>=1)setPanelLeft(nextLeft)};let raf=0;const tick=()=>{measure();raf=requestAnimationFrame(tick)};document.documentElement.classList.add(`ml-popup-open`);measure();raf=requestAnimationFrame(tick);window.addEventListener(`resize`,measure);window.addEventListener(`scroll`,measure,{passive:true});return()=>{cancelAnimationFrame(raf);document.documentElement.classList.remove(`ml-popup-open`);window.removeEventListener(`resize`,measure);window.removeEventListener(`scroll`,measure)}},[sel]);const[prompts,setPrompts]=useState({});const[copied,setCopied]=useState(``);const inputRef=useRef(null);const rootRef=useRef(null);const refreshHeadings=()=>{try{const h=document.querySelector(`#content h2[id], #content h3[id]`);if(!h)return;const key=Object.keys(h).find(k=>k.indexOf(`__reactFiber$`)===0);for(let f=key\u0026\u0026h[key],i=0;f\u0026\u0026i\u003c300;f=f.return,i++){const v=f.memoizedProps\u0026\u0026f.memoizedProps.value;if(Array.isArray(v)\u0026\u0026v.length===2\u0026\u0026v[0]\u0026\u0026Array.isArray(v[0].headings)\u0026\u0026typeof v[1]===`function`){v[1]({type:`set_state`,payload:{}});return}}}catch(e){}};useEffect(()=>{const el=rootRef.current;if(!el||typeof ResizeObserver===`undefined`)return;let raf=0,settle=0;const ro=new ResizeObserver(()=>{cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>window.dispatchEvent(new Event(`scroll`)));setTimeout(()=>window.dispatchEvent(new Event(`scroll`)),50);clearTimeout(settle);settle=setTimeout(refreshHeadings,120)});ro.observe(el);return()=>{cancelAnimationFrame(raf);clearTimeout(settle);ro.disconnect()}},[]);const triggerRef=useRef(null);const resultsRef=useRef(null);const restored=useRef(false);useEffect(()=>{let live=true;fetch(`${src}/skill-library/library-index.json`).then(r=>{if(!r.ok)throw new Error(String(r.status));return r.json()}).then(d=>{if(live){if(d\u0026\u0026d.records\u0026\u0026d.records.length)setData(d);else setFailed(true)}}).catch(()=>{if(live)setFailed(true)});return()=>{live=false}},[src]);const engine=useMemo(()=>data?createEngine(data.records,data.dict,data.syn||{}):null,[data]);const attrs=useMemo(()=>{if(!data)return[];const d=data.dict;const list=(arr,label=x=>x)=>arr.map((x,i)=>[i,label(x)]);const byLabel=vals=>vals.slice().sort((a,b)=>a[1].localeCompare(b[1]));return[{key:`tier`,label:`Runs as`,plural:`tiers`,values:list(d.tier),of:r=>[r[F.tier]],show:9},{key:`works`,label:`Works with`,plural:`connectors`,values:list(d.conn),of:r=>r[F.conn],show:6},{key:`cat`,label:`Category`,plural:`categories`,values:byLabel(list(d.cat,c=>c[1])),of:r=>[r[F.cat]],show:8},{key:`does`,label:`Does what`,plural:`actions`,values:list(d.act),of:r=>r[F.act]>=0?[r[F.act]]:[],show:12,extra:true},{key:`role`,label:`Role`,plural:`roles`,values:list(d.role),of:r=>r[F.role],show:9,extra:true},{key:`outcome`,label:`Outcome`,plural:`outcomes`,values:list(d.out),of:r=>r[F.out],show:9,extra:true},{key:`verified`,label:`Verified`,plural:``,values:[[0,`Verified only`]],of:r=>r[F.ver]?[0]:[],show:1,extra:true}]},[data]);const attrOf=key=>attrs.find(a=>a.key===key);const locked=useMemo(()=>{if(!data||!lock)return null;const[key,raw]=lock.split(`=`);const a=attrs.find(x=>x.key===key);if(!a)return null;const val=(id,text)=>key===`cat`?data.dict.cat[id][0]:key===`verified`?`1`:slug(text);const hit=a.values.find(([id,text])=>val(id,text)===raw);return hit?{key,op:`is`,values:[hit[0]],label:key===`verified`?`Verified`:hit[1]}:null},[data,attrs,lock]);const label=(a,id)=>(a.values.find(([v])=>v===id)||[0,``])[1];const urlVal=(a,id)=>a.key===`cat`?data.dict.cat[id][0]:a.key===`verified`?`1`:slug(label(a,id));useEffect(()=>{if(!data||restored.current)return;restored.current=true;const p=new URLSearchParams(window.location.search);const next=[];const add=(key,op,raw)=>{const a=attrOf(key);if(!a||!raw)return;const ids=raw.split(`,`).map(v=>(a.values.find(([id])=>urlVal(a,id)===v)||[-1])[0]).filter(i=>i>=0);if(!ids.length)return;const hit=next.find(f=>f.key===key\u0026\u0026f.op===op);if(hit)ids.forEach(i=>{if(hit.values.indexOf(i)\u003c0)hit.values.push(i)});else next.push({key,op,values:ids})};attrs.forEach(a=>{if(lock\u0026\u0026lock.split(`=`)[0]===a.key)return;add(a.key,`is`,p.get(a.key));add(a.key,`not`,p.get(`${a.key}_not`))});const legacy=p.get(`chip`);if(legacy\u0026\u0026legacy.indexOf(`role-`)===0)add(`role`,`is`,legacy.slice(5));else if(legacy\u0026\u0026legacy!==`all`)add(`does`,`is`,legacy);if(p.get(`category`))add(`cat`,`is`,p.get(`category`));const query=p.get(`q`)||``;setQ(query);setDq(query);const sk=p.get(`skill`);if(sk\u0026\u0026data.records.some(r=>r[1]===sk)){setSel(sk);loadPrompts(sk.split(`/`)[0])}setFilters(next);if([`featured`,`az`,`relevance`].indexOf(p.get(`sort`))>=0)setSort(p.get(`sort`))},[data,attrs]);useEffect(()=>{const t=setTimeout(()=>setDq(q.trim()),120);return()=>clearTimeout(t)},[q]);useEffect(()=>{if(!data||!restored.current)return;const p=new URLSearchParams;if(dq)p.set(`q`,dq);filters.forEach(f=>{const a=attrOf(f.key);if(!a||!f.values.length)return;p.set(f.op===`not`?`${f.key}_not`:f.key,f.values.map(id=>urlVal(a,id)).join(`,`))});if(sort)p.set(`sort`,sort);if(sel)p.set(`skill`,sel);const qs=p.toString().replace(/%2C/g,`,`).replace(/%2F/g,`/`);const url=window.location.pathname+(qs?`?${qs}`:``)+window.location.hash;if(url!==window.location.pathname+window.location.search+window.location.hash){window.history.replaceState(window.history.state,``,url)}},[data,dq,filters,sort,sel]);useEffect(()=>{const onKey=e=>{if(e.key===`Escape`\u0026\u0026pop){if(pop.kind===`filter`\u0026\u0026pop.attr\u0026\u0026!pop.direct){setPopSearch(``);setPop({kind:`filter`});return}closePop();return}if(pop\u0026\u0026(e.key===`ArrowDown`||e.key===`ArrowUp`)\u0026\u0026rootRef.current){const opts=[...rootRef.current.querySelectorAll(`.ml-pop [data-opt]`)];if(!opts.length)return;e.preventDefault();const i=opts.indexOf(document.activeElement);const next=e.key===`ArrowDown`?i\u003c0?0:Math.min(i+1,opts.length-1):i\u003c=0?-1:i-1;if(next\u003c0){const box=rootRef.current.querySelector(`.ml-pop [data-autofocus]`);if(box)box.focus()}else opts[next].focus();return}if(e.key===`/`\u0026\u0026(e.metaKey||e.ctrlKey)\u0026\u0026!e.altKey\u0026\u0026inputRef.current){e.preventDefault();inputRef.current.focus();inputRef.current.select();return}if(e.metaKey||e.ctrlKey||e.altKey)return;const t=e.target;if(t\u0026\u0026(t.isContentEditable||/^(input|textarea|select)$/i.test(t.tagName)))return;if(sel\u0026\u0026e.key===`Escape`){closePanel();return}if(sel\u0026\u0026[`ArrowDown`,`ArrowUp`,`j`,`k`].indexOf(e.key)>=0){const list=shownRef.current;const i=list.indexOf(sel);const next=list[e.key===`ArrowDown`||e.key===`j`?Math.min(i+1,list.length-1):Math.max(i-1,0)];if(next\u0026\u0026next!==sel){e.preventDefault();openSkill(next)}return}if(e.key===`/`\u0026\u0026inputRef.current){e.preventDefault();inputRef.current.focus()}if((e.key===`f`||e.key===`F`)\u0026\u0026rootRef.current){e.preventDefault();triggerRef.current=rootRef.current.querySelector(`.ml-filter-btn`);openPop({kind:`filter`})}};const onDown=e=>{if(!e.target.closest)return;if(pop\u0026\u0026!e.target.closest(`.ml-dd`))closePop();if(sel\u0026\u0026!e.target.closest(`.ml-panel`)){closePanel();const eat=ev=>{ev.preventDefault();ev.stopPropagation()};document.addEventListener(`click`,eat,{capture:true,once:true});setTimeout(()=>document.removeEventListener(`click`,eat,{capture:true}),600)}};document.addEventListener(`keydown`,onKey);document.addEventListener(`mousedown`,onDown);return()=>{document.removeEventListener(`keydown`,onKey);document.removeEventListener(`mousedown`,onDown)}},[pop,filters,sel]);useEffect(()=>{if(!pop||!rootRef.current)return;const el=rootRef.current.querySelector(`.ml-pop [data-autofocus]`)||rootRef.current.querySelector(`.ml-pop button, .ml-pop input`);if(el)el.focus()},[pop\u0026\u0026pop.kind,pop\u0026\u0026pop.attr]);useEffect(()=>{setLimit(PAGE)},[dq,filters,sort]);function openPop(next){setPopSearch(``);setPop(next)}function closePop(){setPop(null);if(triggerRef.current\u0026\u0026triggerRef.current.focus)triggerRef.current.focus()}if(failed||!data){return _jsx(`div`,{className:`ml`,ref:rootRef,\"aria-busy\":!failed,children:_jsxs(`div`,{className:`ml-search ml-search-idle`,children:[_jsx(Icon,{name:`search`,size:16}),_jsx(`span`,{children:failed?`Search isn't available right now. Browse the categories in the sidebar.`:`Loading the library…`})]})})}const recs=data.records;const dict=data.dict;const startN=data.start||6;const result=dq\u0026\u0026engine?engine.search(dq):null;const scoreOf={};if(result)result.hits.forEach(h=>{scoreOf[h.i]=h.score});const terms=result?result.terms:[];const userActive=filters.filter(f=>f.values.length\u0026\u0026(!locked||f.key!==locked.key));const active=locked?[locked,...userActive]:userActive;const browsing=!dq\u0026\u0026!userActive.length\u0026\u0026!locked;const inLock=r=>!locked||attrOf(locked.key).of(r).some(v=>locked.values.indexOf(v)>=0);const passes=(r,i,skipKey)=>{if(result\u0026\u0026scoreOf[i]===undefined)return false;for(let k=0;k\u003cactive.length;k++){const f=active[k];if(f.key===skipKey)continue;const hit=attrOf(f.key).of(r).some(v=>f.values.indexOf(v)>=0);if(f.op===`is`?!hit:hit)return false}return true};const shown=[];recs.forEach((r,i)=>{if(passes(r,i))shown.push(i)});const effSort=sort||(result?`relevance`:`featured`);const byTitle=(a,b)=>recs[a][F.title].toLowerCase().localeCompare(recs[b][F.title].toLowerCase());if(effSort===`relevance`\u0026\u0026result)shown.sort((a,b)=>scoreOf[b]-scoreOf[a]);else if(effSort===`az`)shown.sort(byTitle);else shown.sort((a,b)=>(recs[a][F.feat]||1e9)-(recs[b][F.feat]||1e9)||byTitle(a,b));shownRef.current=shown.map(i=>recs[i][F.path]);const countsFor=key=>{const a=attrOf(key),counts={};recs.forEach((r,i)=>{if(!passes(r,i,key))return;a.of(r).forEach(v=>{counts[v]=(counts[v]||0)+1})});return counts};const hl=text=>{if(!terms.length||!engine)return text;const out=[];const re=/[A-Za-z0-9]+/g;let last=0,m,k=0;while((m=re.exec(text))!==null){const st=engine.stem(m[0].toLowerCase());if(!terms.some(t=>t===st||st.slice(0,t.length)===t))continue;if(m.index>last)out.push(text.slice(last,m.index));out.push(_jsx(`mark`,{children:m[0]},k++));last=m.index+m[0].length}out.push(text.slice(last));return out};function loadPrompts(catDir){if(prompts[catDir])return;setPrompts(p=>({...p,[catDir]:`loading`}));fetch(`${src}/skill-library/prompts/${catDir}.json`).then(r=>{if(!r.ok)throw new Error(String(r.status));return r.json()}).then(d=>setPrompts(p=>({...p,[catDir]:d}))).catch(()=>setPrompts(p=>({...p,[catDir]:`error`})))}function openSkill(path){setSel(path);loadPrompts(path.split(`/`)[0]);setTimeout(()=>{const row=rootRef.current\u0026\u0026rootRef.current.querySelector(`[data-path=\"${path}\"]`);if(row)row.scrollIntoView({block:`nearest`});const el=panelRef.current;if(el){el.querySelectorAll(`.ml-panel-main, .ml-panel-side`).forEach(x=>{x.scrollTop=0});if(!el.contains(document.activeElement))el.focus({preventScroll:true})}},0)}function closePanel(){const was=sel;setSel(``);setTimeout(()=>{const b=rootRef.current\u0026\u0026rootRef.current.querySelector(`[data-path=\"${was}\"] button`);if(b)b.focus({preventScroll:true})},0)}const copy=(path,text,e)=>{const flash=msg=>{setCopied(`${path}|${msg}`);setTimeout(()=>setCopied(c=>c.indexOf(path)===0?``:c),2200)};const ta=document.createElement(`textarea`);ta.value=text;ta.setAttribute(`readonly`,``);ta.style.position=`fixed`;ta.style.opacity=`0`;document.body.appendChild(ta);ta.select();let ok=false;try{ok=document.execCommand(`copy`)}catch(err){}document.body.removeChild(ta);if(ok){flash(`Copied`);return}const selectIt=()=>{const pre=e\u0026\u0026e.currentTarget\u0026\u0026e.currentTarget.parentNode.querySelector(`.ml-prompt`);if(pre){const rg=document.createRange();rg.selectNodeContents(pre);const sel=window.getSelection();sel.removeAllRanges();sel.addRange(rg)}flash(`Press ⌘C`)};if(navigator.clipboard\u0026\u0026window.isSecureContext)navigator.clipboard.writeText(text).then(()=>flash(`Copied`),selectIt);else selectIt()};const isChecked=(key,id)=>filters.some(f=>f.key===key\u0026\u0026f.values.indexOf(id)>=0);const toggleValue=(key,id)=>setFilters(fs=>{const f=fs.find(x=>x.key===key);if(!f)return[...fs,{key,op:`is`,values:[id]}];const values=f.values.indexOf(id)>=0?f.values.filter(v=>v!==id):[...f.values,id];return values.length?fs.map(x=>x===f?{...f,values}:x):fs.filter(x=>x!==f)});const setOp=(key,op)=>{setFilters(fs=>fs.map(f=>f.key===key?{...f,op}:f));setPop(null)};const removeFilter=key=>{setFilters(fs=>fs.filter(f=>f.key!==key));setPop(null)};const clearAll=()=>{setQ(``);setDq(``);setFilters([]);setSort(``);setPop(null)};const valueText=f=>{const a=attrOf(f.key);if(f.values.length===1)return label(a,f.values[0]);return`${f.values.length} ${a.plural}`};const trig=e=>{triggerRef.current=e.currentTarget};const noun=n=>`${n} ${n===1?`skill`:`skills`}`;const pickable=attrs.filter(a=>!locked||a.key!==locked.key);const appliedHint=key=>{const f=filters.find(x=>x.key===key);return f?_jsxs(`span`,{className:`ml-opt-hint`,children:[f.op===`not`?`not `:``,valueText(f)]}):null};const valueRow=(a,id,text,counts)=>{const on=isChecked(a.key,id),n=counts[id]||0;return _jsxs(`button`,{type:`button`,\"data-opt\":true,role:`menuitemcheckbox`,\"aria-checked\":on,className:`ml-opt${!n\u0026\u0026!on?` is-empty`:``}`,onClick:()=>toggleValue(a.key,id),children:[_jsx(`span`,{className:`ml-box${on?` is-on`:``}`,\"aria-hidden\":`true`,children:on\u0026\u0026_jsx(Icon,{name:`check`,size:12})}),_jsx(`span`,{className:`ml-opt-label`,children:text}),_jsx(`span`,{className:`ml-opt-n`,children:n})]},`${a.key}-${id}`)};const filterPop=()=>{const ql=popSearch.trim().toLowerCase();const hit=t=>!ql||t.toLowerCase().indexOf(ql)>=0;const a=pop.attr?attrOf(pop.attr):null;let body;if(a){const counts=countsFor(a.key);const f=filters.find(x=>x.key===a.key);const chosen=f?f.values:[];const opts=a.values.filter(([,t])=>hit(t)).sort((x,y)=>(chosen.indexOf(y[0])>=0)-(chosen.indexOf(x[0])>=0));body=_jsxs(_Fragment,{children:[!pop.direct\u0026\u0026_jsxs(`button`,{type:`button`,\"data-opt\":true,className:`ml-pop-back`,onClick:()=>{setPopSearch(``);setPop({kind:`filter`})},children:[_jsx(Icon,{name:`back`,size:14}),a.label]}),opts.map(([id,t])=>valueRow(a,id,t,counts)),!opts.length\u0026\u0026_jsx(`div`,{className:`ml-opt-none`,children:`No matches`})]})}else if(!ql){body=pickable.map(x=>_jsxs(`button`,{type:`button`,\"data-opt\":true,className:`ml-opt`,onClick:()=>{setPopSearch(``);setPop({kind:`filter`,attr:x.key})},children:[_jsx(Icon,{name:x.key,size:16}),_jsx(`span`,{className:`ml-opt-label`,children:x.label}),appliedHint(x.key)]},x.key))}else{const attrHits=pickable.filter(x=>hit(x.label));const groups=pickable.map(x=>({x,vals:x.values.filter(([,t])=>hit(t)).slice(0,8)})).filter(g=>g.vals.length);body=_jsxs(_Fragment,{children:[attrHits.map(x=>_jsxs(`button`,{type:`button`,\"data-opt\":true,className:`ml-opt`,onClick:()=>{setPopSearch(``);setPop({kind:`filter`,attr:x.key})},children:[_jsx(Icon,{name:x.key,size:16}),_jsx(`span`,{className:`ml-opt-label`,children:x.label}),appliedHint(x.key)]},x.key)),groups.map(({x,vals})=>{const counts=countsFor(x.key);return _jsxs(`div`,{role:`group`,\"aria-label\":x.label,children:[_jsxs(`div`,{className:`ml-pop-section`,children:[_jsx(Icon,{name:x.key,size:12}),x.label]}),vals.map(([id,t])=>valueRow(x,id,t,counts))]},x.key)}),!attrHits.length\u0026\u0026!groups.length\u0026\u0026_jsxs(`div`,{className:`ml-opt-none`,children:[`No filters match “`,popSearch,`”`]})]})}return _jsxs(`div`,{className:`ml-pop ml-pop-filter`,role:`dialog`,\"aria-label\":a?`${a.label} values`:`Add a filter`,children:[_jsxs(`div`,{className:`ml-pop-search`,children:[_jsx(Icon,{name:`search`,size:16}),_jsx(`input`,{\"data-autofocus\":true,type:`text`,value:popSearch,onChange:e=>setPopSearch(e.target.value),placeholder:`Search`,\"aria-label\":a?`Search ${a.label.toLowerCase()}`:`Search filters`,onKeyDown:e=>{if(e.key===`Enter`){const first=rootRef.current.querySelector(`.ml-pop [data-opt]:not(.ml-pop-back)`);if(first){e.preventDefault();first.click()}}if(e.key===`Backspace`\u0026\u0026!popSearch\u0026\u0026a\u0026\u0026!pop.direct){setPop({kind:`filter`})}}})]}),_jsx(`div`,{className:`ml-pop-list`,children:body})]})};const menuPop=(items,current,pick,aria,right)=>_jsx(`div`,{className:`ml-pop ml-pop-sm${right?` ml-pop-right`:``}`,role:`dialog`,\"aria-label\":aria,children:_jsx(`div`,{className:`ml-pop-list`,children:items.map(([v,t])=>_jsxs(`button`,{type:`button`,\"data-autofocus\":current===v?true:undefined,className:`ml-opt${current===v?` is-on`:``}`,onClick:()=>pick(v),children:[_jsx(`span`,{className:`ml-opt-label`,children:t}),current===v\u0026\u0026_jsx(Icon,{name:`check`,size:16})]},v))})});const displayPop=()=>_jsxs(`div`,{className:`ml-pop ml-pop-right ml-pop-display`,role:`dialog`,\"aria-label\":`Display options`,children:[_jsx(`div`,{className:`ml-pop-section`,children:`Ordering`}),_jsx(`div`,{className:`ml-pop-list`,children:sortItems.map(([v,t])=>_jsxs(`button`,{type:`button`,\"data-opt\":true,\"data-autofocus\":effSort===v?true:undefined,className:`ml-opt${effSort===v?` is-on`:``}`,onClick:()=>{setSort(v);setPop(null)},children:[_jsx(`span`,{className:`ml-opt-label`,children:t}),effSort===v\u0026\u0026_jsx(Icon,{name:`check`,size:16})]},v))})]});const sortItems=[[`relevance`,`Relevance`],[`featured`,`Featured`],[`az`,`A to Z`]].filter(([v])=>v!==`relevance`||dq);const sortLabel=(sortItems.find(([v])=>v===effSort)||[``,`Featured`])[1];const row=i=>{const r=recs[i];const path=r[F.path];const isSel=sel===path;const agent=String(dict.tier[r[F.tier]])===`Agent`;const conns=r[F.conn].map(c=>dict.conn[c]);return _jsx(`div`,{className:`ml-row${isSel?` is-sel`:``}`,\"data-path\":path,children:_jsxs(`button`,{type:`button`,className:`ml-row-head`,\"aria-haspopup\":`dialog`,\"aria-expanded\":isSel,\"aria-controls\":`ml-panel`,onClick:e=>{if(e.metaKey||e.ctrlKey){window.open(`/skill-library/${path}`,`_blank`,`noopener`);return}isSel?closePanel():openSkill(path)},onAuxClick:e=>{if(e.button===1)window.open(`/skill-library/${path}`,`_blank`,`noopener`)},children:[_jsxs(`span`,{className:`ml-row-top`,children:[_jsx(`span`,{className:`ml-title`,children:hl(r[F.title])}),_jsxs(`span`,{className:`ml-tags`,children:[_jsx(`span`,{className:`ml-tag${agent?` ml-tag-accent`:``}`,children:agent?`Agent`:`Skill`}),r[F.ver]?_jsxs(`span`,{className:`ml-tag ml-tag-ok`,children:[_jsx(Icon,{name:`verified`,size:12}),`Verified`]}):null,conns.filter(c=>c!==`Thread`).slice(0,2).map(c=>_jsx(`span`,{className:`ml-tag`,children:c},c))]})]}),_jsx(`span`,{className:`ml-row-desc`,children:hl(r[F.desc])})]})},path)};const panel=()=>{const i=recs.findIndex(r=>r[F.path]===sel);if(i\u003c0)return null;const r=recs[i];const path=r[F.path];const[catDir,leaf]=path.split(`/`);const agent=String(dict.tier[r[F.tier]])===`Agent`;const chunk=prompts[catDir];const entry=chunk\u0026\u0026typeof chunk===`object`?chunk[leaf]:null;const prompt=entry?entry[0]:``;const when=entry?entry[1]:``;const conns=r[F.conn].map(c=>dict.conn[c]);const list=shownRef.current;const pos=list.indexOf(path);const step=d=>{const n=list[pos+d];if(n)openSkill(n)};const roles=r[F.role].map(x=>dict.role[x]);const outs=(r[F.out]||[]).map(x=>dict.out[x]);const does=r[F.act]>=0?dict.act[r[F.act]]:``;const thread=dict.conn.indexOf(`Thread`);const overlap=(a,b,skip)=>a.filter(x=>x!==skip\u0026\u0026b.indexOf(x)>=0).length;const related=recs.map((o,j)=>{if(j===i||o[F.title]===r[F.title])return null;const score=(o[F.cat]===r[F.cat]?3:0)+2*overlap(o[F.conn],r[F.conn],thread)+overlap(o[F.role],r[F.role])+overlap(o[F.out]||[],r[F.out]||[])+(r[F.act]>=0\u0026\u0026o[F.act]===r[F.act]?2:0)+(o[F.ver]?.5:0);return score>=4?[score,o]:null}).filter(Boolean).sort((a,b)=>b[0]-a[0]||(a[1][F.title]\u003cb[1][F.title]?-1:1)).slice(0,5).map(x=>x[1]);const cat=dict.cat[r[F.cat]][1];return _jsxs(`aside`,{id:`ml-panel`,className:`ml-panel`,ref:panelRef,role:`dialog`,\"aria-modal\":`true`,\"aria-labelledby\":`ml-panel-title`,tabIndex:-1,style:{top:`${panelTop}px`,left:`${panelLeft}px`,width:panelW?`${panelW}px`:undefined,height:panelH?`${panelH}px`:undefined},children:[_jsxs(`div`,{className:`ml-panel-bar`,children:[_jsx(`h2`,{id:`ml-panel-title`,className:`ml-panel-title`,children:r[F.title]}),_jsxs(`span`,{className:`ml-panel-nav`,children:[pos>=0\u0026\u0026_jsxs(`span`,{className:`ml-count`,children:[pos+1,` of `,list.length]}),_jsx(`button`,{type:`button`,className:`ml-icon-btn`,\"aria-label\":`Previous skill`,title:`Previous (↑)`,disabled:pos\u003c=0,onClick:()=>step(-1),children:_jsx(Icon,{name:`up`,size:16})}),_jsx(`button`,{type:`button`,className:`ml-icon-btn`,\"aria-label\":`Next skill`,title:`Next (↓)`,disabled:pos\u003c0||pos>=list.length-1,onClick:()=>step(1),children:_jsx(Icon,{name:`down`,size:16})}),_jsx(`span`,{className:`ml-panel-sep`,\"aria-hidden\":`true`}),_jsx(_components.a,{className:`ml-icon-btn`,href:`/skill-library/${path}`,\"aria-label\":`Open full page`,title:`Open full page`,children:_jsx(Icon,{name:`expand`,size:16})}),_jsx(`button`,{type:`button`,className:`ml-icon-btn`,\"aria-label\":`Close`,title:`Close (Esc)`,onClick:closePanel,children:_jsx(Icon,{name:`x`,size:16})})]})]}),_jsxs(`div`,{className:`ml-panel-cols`,children:[_jsxs(`div`,{className:`ml-panel-main`,children:[_jsx(`p`,{className:`ml-desc`,children:r[F.desc]}),when\u0026\u0026_jsxs(_Fragment,{children:[_jsx(`div`,{className:`ml-label`,children:`When to use`}),_jsx(`div`,{className:`ml-teaches`,children:when})]}),_jsx(`div`,{className:`ml-label`,children:`Prompt`}),_jsxs(`div`,{className:`ml-prompt-box`,children:[_jsx(`pre`,{className:`ml-prompt`,children:chunk===`error`?`Couldn't load the prompt. Open the full page instead.`:prompt||`Loading…`}),prompt\u0026\u0026_jsx(`button`,{type:`button`,className:`ml-copy`,onClick:e=>copy(path,prompt,e),children:copied.indexOf(`${path}|`)===0?copied.slice(path.length+1):`Copy`})]})]}),_jsxs(`div`,{className:`ml-panel-side`,children:[_jsx(`div`,{className:`ml-side-card`,children:_jsxs(`dl`,{className:`ml-side-props`,children:[_jsx(`dt`,{children:`Runs as`}),_jsxs(`dd`,{children:[_jsx(`span`,{className:`ml-tag${agent?` ml-tag-accent`:``}`,children:agent?`Agent`:`Skill`}),r[F.ver]?_jsxs(`span`,{className:`ml-tag ml-tag-ok`,children:[_jsx(Icon,{name:`verified`,size:12}),`Verified`]}):null]}),_jsx(`dt`,{children:`Category`}),_jsx(`dd`,{children:_jsx(_components.a,{href:`/skill-library/${catDir}/overview`,children:cat})}),conns.length>0\u0026\u0026_jsxs(_Fragment,{children:[_jsx(`dt`,{children:`Works with`}),_jsx(`dd`,{children:conns.map(c=>_jsx(`span`,{className:`ml-tag`,children:c},c))})]}),does\u0026\u0026_jsxs(_Fragment,{children:[_jsx(`dt`,{children:`Does`}),_jsx(`dd`,{children:does})]}),roles.length>0\u0026\u0026_jsxs(_Fragment,{children:[_jsx(`dt`,{children:`Role`}),_jsx(`dd`,{children:roles.join(`, `)})]}),outs.length>0\u0026\u0026_jsxs(_Fragment,{children:[_jsx(`dt`,{children:`Outcome`}),_jsx(`dd`,{children:outs.join(`, `)})]})]})}),_jsxs(`div`,{className:`ml-side-card ml-next`,children:[_jsx(`span`,{className:`ml-next-label`,children:agent?`Run it unattended`:`Make it yours`}),` `,agent?_jsxs(_Fragment,{children:[`Build it with `,_jsx(_components.a,{href:`/super-magic/build-a-super-magic-agent`,children:`Agent Builder`}),`: add the action to a Flow, choose Prompt the Agent, paste this in, and it runs on every matching ticket. Run it yourself in Super Magic first to prove it out.`]}):_jsxs(_Fragment,{children:[`Save it as a skill in `,_jsx(_components.a,{href:`/super-magic/meet-super-magic-your-ai-assistant-in-the-inbox`,children:`Super Magic`}),` and run it whenever the job comes up.`]})]}),related.length>0\u0026\u0026_jsxs(`div`,{className:`ml-side-card ml-related`,children:[_jsx(`div`,{className:`ml-side-head`,children:`Related`}),related.map(o=>{const oa=String(dict.tier[o[F.tier]])===`Agent`;return _jsxs(`button`,{type:`button`,className:`ml-related-row`,onClick:()=>openSkill(o[F.path]),children:[_jsx(`span`,{className:`ml-related-title`,children:o[F.title]}),_jsx(`span`,{className:`ml-tag${oa?` ml-tag-accent`:``}`,children:oa?`Agent`:`Skill`})]},o[F.path])})]})]})]})]})};const suggestions=[];if(!shown.length){userActive.forEach(f=>{const without=active.filter(x=>x!==f);const n=recs.filter((r,i)=>(!result||scoreOf[i]!==undefined)\u0026\u0026without.every(x=>{const hit=attrOf(x.key).of(r).some(v=>x.values.indexOf(v)>=0);return x.op===`is`?hit:!hit})).length;if(n)suggestions.push({label:`Remove “${attrOf(f.key).label}: ${valueText(f)}”`,n,apply:()=>removeFilter(f.key)})});if(dq\u0026\u0026userActive.length\u0026\u0026!suggestions.length){const n=recs.filter((r,i)=>(!result||scoreOf[i]!==undefined)\u0026\u0026inLock(r)).length;if(n)suggestions.push({label:`Search without filters for “${dq}”`,n,apply:()=>setFilters([])})}}const starters=recs.map((r,i)=>i).filter(i=>recs[i][F.feat]>0\u0026\u0026recs[i][F.feat]\u003c=startN).sort((a,b)=>recs[a][F.feat]-recs[b][F.feat]);return _jsxs(`div`,{className:`ml`,ref:rootRef,children:[browsing\u0026\u0026_jsxs(`section`,{className:`ml-shelf`,\"aria-label\":`Start here`,children:[_jsxs(`div`,{className:`ml-shelf-h`,children:[_jsx(Icon,{name:`star`,size:14}),_jsx(`span`,{children:`Start here`})]}),_jsx(`div`,{className:`ml-shelf-grid`,children:starters.map(i=>{const r=recs[i];const agent=String(dict.tier[r[F.tier]])===`Agent`;return _jsxs(`button`,{type:`button`,className:`ml-card`,onClick:()=>openSkill(r[F.path]),children:[_jsx(`span`,{className:`ml-card-title`,children:r[F.title]}),_jsx(`span`,{className:`ml-card-desc`,children:r[F.desc]}),_jsxs(`span`,{className:`ml-tags`,children:[_jsx(`span`,{className:`ml-tag${agent?` ml-tag-accent`:``}`,children:agent?`Agent`:`Skill`}),r[F.ver]?_jsxs(`span`,{className:`ml-tag ml-tag-ok`,children:[_jsx(Icon,{name:`verified`,size:12}),`Verified`]}):null]})]},r[F.path])})})]}),_jsxs(`section`,{className:`ml-module`,ref:resultsRef,children:[_jsx(`div`,{className:`ml-module-head`,children:_jsxs(`div`,{className:`ml-search`,role:`search`,children:[_jsx(Icon,{name:`search`,size:16}),_jsx(`input`,{ref:inputRef,type:`search`,value:q,onChange:e=>setQ(e.target.value),placeholder:locked?`Search ${recs.filter(inLock).length} ${locked.key===`verified`?`verified skills`:`skills in ${locked.label}`}`:`Search ${recs.length} skills and agents`,\"aria-label\":`Search the Magic Library`}),_jsx(`kbd`,{className:`ml-kbd`,\"aria-hidden\":`true`,children:isMac?`⌘/`:`Ctrl /`})]})}),_jsxs(`div`,{className:`ml-toolbar`,children:[_jsxs(`div`,{className:`ml-bar`,children:[userActive.map(f=>{const a=attrOf(f.key);const txt=`${a.label} ${f.op===`not`?`is not`:`is`} ${valueText(f)}`;return _jsxs(`div`,{className:`ml-dd`,children:[_jsxs(`span`,{className:`ml-chip`,role:`group`,\"aria-label\":txt,children:[_jsxs(`span`,{className:`ml-seg ml-seg-field`,children:[_jsx(Icon,{name:a.key,size:13}),a.label]}),f.key!==`verified`\u0026\u0026_jsx(`button`,{type:`button`,className:`ml-seg`,\"aria-label\":`Change operator for ${a.label}`,onClick:e=>{trig(e);openPop({kind:`op`,key:f.key})},children:f.op===`not`?`is not`:`is`}),f.key!==`verified`\u0026\u0026_jsx(`button`,{type:`button`,className:`ml-seg ml-seg-value`,\"aria-label\":`Change ${a.label} values`,onClick:e=>{trig(e);openPop({kind:`filter`,attr:f.key,direct:true,key:f.key})},children:valueText(f)}),_jsx(`button`,{type:`button`,className:`ml-seg ml-seg-x`,\"aria-label\":`Remove ${a.label} filter`,onClick:()=>removeFilter(f.key),children:_jsx(Icon,{name:`x`,size:13})})]}),pop\u0026\u0026pop.key===f.key\u0026\u0026pop.kind===`filter`\u0026\u0026filterPop(),pop\u0026\u0026pop.key===f.key\u0026\u0026pop.kind===`op`\u0026\u0026menuPop([[`is`,`is`],[`not`,`is not`]],f.op,v=>setOp(f.key,v),`Operator`)]},f.key)}),_jsxs(`div`,{className:`ml-dd`,children:[_jsxs(`button`,{type:`button`,className:`ml-btn ml-filter-btn`,\"aria-expanded\":!!pop\u0026\u0026pop.kind===`filter`\u0026\u0026!pop.key,\"aria-label\":`Filter (F)`,title:`Filters [F]`,onClick:e=>{trig(e);pop\u0026\u0026pop.kind===`filter`\u0026\u0026!pop.key?closePop():openPop({kind:`filter`})},children:[_jsx(Icon,{name:`filter`,size:16}),userActive.length?null:_jsx(`span`,{children:`Filter`})]}),pop\u0026\u0026pop.kind===`filter`\u0026\u0026!pop.key\u0026\u0026filterPop()]}),(userActive.length>0||dq)\u0026\u0026_jsx(`button`,{type:`button`,className:`ml-btn`,onClick:clearAll,children:`Clear`})]}),_jsxs(`div`,{className:`ml-dd ml-display`,children:[_jsxs(`button`,{type:`button`,className:`ml-btn`,\"aria-expanded\":!!pop\u0026\u0026pop.kind===`sort`,onClick:e=>{trig(e);pop\u0026\u0026pop.kind===`sort`?closePop():openPop({kind:`sort`})},children:[_jsx(Icon,{name:`table`,size:16}),_jsx(`span`,{children:`Display`})]}),pop\u0026\u0026pop.kind===`sort`\u0026\u0026displayPop()]})]}),_jsxs(`div`,{className:`ml-list-head`,children:[_jsx(`span`,{children:browsing?`All skills and agents`:!dq\u0026\u0026!userActive.length\u0026\u0026locked?locked.key===`verified`?`Verified skills`:`All ${locked.label}`:`Results`}),_jsx(`span`,{className:`ml-count`,\"aria-live\":`polite`,\"aria-atomic\":`true`,children:noun(shown.length)})]}),shown.length?_jsx(`div`,{className:`ml-list`,children:shown.slice(0,limit).map(row)}):_jsxs(`div`,{className:`ml-empty`,children:[_jsxs(`p`,{children:[`No skills match`,dq?_jsxs(_Fragment,{children:[` “`,_jsx(`strong`,{children:dq}),`”`]}):` these filters`,`.`]}),_jsxs(`div`,{className:`ml-empty-actions`,children:[suggestions.slice(0,3).map(s=>_jsxs(`button`,{type:`button`,className:`ml-btn ml-btn-outline`,onClick:s.apply,children:[s.label,` → `,noun(s.n)]},s.label)),_jsx(`button`,{type:`button`,className:`ml-btn`,onClick:clearAll,children:`Clear everything`})]})]}),sel\u0026\u0026panel()]}),shown.length>limit\u0026\u0026_jsxs(`button`,{type:`button`,className:`ml-more`,onClick:()=>setLimit(limit+PAGE),children:[`Show `,Math.min(PAGE,shown.length-limit),` more · `,shown.length-limit,` left`]})]})};function _createMdxContent(props){const{_MdxComponentBoundary}={..._provideComponents(),...props.components};if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsx(_MdxComponentBoundary,{name:`MagicLibrary`,children:_jsx(MagicLibrary,{lock:`cat=triage-and-routing`})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{MagicLibrary,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Triage \u0026 Routing","description":"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.","keywords":["allocate","assign","autotask","brief","broken","computer","connectwise","dashboard","desktop","digest","down","email","error","failed","halopsa","how are we doing","issue","junk","laptop","machine","metrics","numbers","offline","pc","problem","threshold","unwanted mail","urgent","warning","workstation","Alert Client Resolver via Liongard","Alert Site to Client Mapping","Alert Storm Merge","Alert Title Normalization","Alert Title Standardizer","Auto Priority Classification","Billable Scope Router","Board Routing Rules Engine","Catchall Asset Cross-Reference","Catchall Noise Gate","Catchall Routing","Courtesy Reply Status Revert","Cross-Client Outage Detector","Default Contact Autofill","Dispatcher Intake","Duplicate Hunter","Intake Classification Tree","Monitoring Companion Merge","Multi-Issue Ticket Splitter","New Ticket First Touch","Noise Auto-Close","Prior Resolution","Priority Downgrade Guard","Queue Scoring Triage","RE/FW Reopen Detection","Reassign Contact Submitted On Behalf Of","Route, Assign and Document","Scheduling Intent Detector","Sentiment Score Explainer","Spam Sender Triage","Ticket Triage","Triage Category","Triage Priority","Triage Similar Tickets","Triage Ticket Type","Urgent Deadline Watch","VIP Priority Handling"],"href":"/skill-library/triage-and-routing/overview"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[19,69,"jsx:_jsx}=arguments["],[148,38815,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/thread/e9e74bb66602d208/skill-nav-scroll.js"],"subdomain":"thread","siteName":"Thread Docs","title":"Triage \u0026 Routing - Thread Docs","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6abecb5f43594d92381b330d","deploymentId":"6920f01f9d8412afd5a0dff5","questionText":"How do I triage tickets?","status":"active","generatedBy":"contextual","path":"skill-library/triage-and-routing/overview","createdAt":"2026-10-01T21:06:39.190Z","updatedAt":"2026-10-01T21:06:39.190Z","__v":0},{"_id":"6abecb5f43594d92381b330f","deploymentId":"6920f01f9d8412afd5a0dff5","questionText":"How do I route tickets properly?","status":"active","generatedBy":"contextual","path":"skill-library/triage-and-routing/overview","createdAt":"2026-10-01T21:06:39.190Z","updatedAt":"2026-10-01T21:06:39.190Z","__v":0},{"_id":"6abecb5f43594d92381b330e","deploymentId":"6920f01f9d8412afd5a0dff5","questionText":"What makes a ticket urgent?","status":"active","generatedBy":"contextual","path":"skill-library/triage-and-routing/overview","createdAt":"2026-10-01T21:06:39.190Z","updatedAt":"2026-10-01T21:06:39.190Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T21:06:14.436Z","originalFileLocation":"skill-library/triage-and-routing/overview.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Thread Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Triage \u0026amp; Routing - Thread Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Thread Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getthread.com/skill-library/triage-and-routing/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://thread.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Triage+%26+Routing\u0026amp;description=Work+out+what+a+new+ticket+is%2C+how+urgent+it+is%2C+and+where+it+belongs+%E2%80%94+before+a+technician+opens+it.\u0026amp;theme=f724fa3ec041ff897ae11da2\u0026amp;signature=f64c3b7961ec507ae8627fb60c4548c0209b0ced85d6a871aa77e2ea8f60531b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Triage \u0026amp; Routing - Thread Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thread.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Triage+%26+Routing\u0026amp;description=Work+out+what+a+new+ticket+is%2C+how+urgent+it+is%2C+and+where+it+belongs+%E2%80%94+before+a+technician+opens+it.\u0026amp;theme=f724fa3ec041ff897ae11da2\u0026amp;signature=f64c3b7961ec507ae8627fb60c4548c0209b0ced85d6a871aa77e2ea8f60531b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/thread/FC7ab3_wzYydgHyM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Thread Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00B398\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getthread.com/skill-library/triage-and-routing/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/skill-library/triage-and-routing/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getthread.com/#organization\",\"name\":\"Thread Docs\",\"url\":\"https://docs.getthread.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/thread/50guKpC0vegpyObR/logo/thread.svg?fit=max\u0026auto=format\u0026n=50guKpC0vegpyObR\u0026q=85\u0026s=86145b5e0fe1e4b555128fc8d8fd9815\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getthread.com#website\",\"name\":\"Thread Docs\",\"url\":\"https://docs.getthread.com\",\"publisher\":{\"@id\":\"https://docs.getthread.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview#webpage\",\"url\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview\",\"name\":\"Triage \u0026 Routing\",\"description\":\"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\",\"dateModified\":\"2026-10-01T21:06:14.436Z\",\"isPartOf\":{\"@id\":\"https://docs.getthread.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Categories\",\"item\":\"https://docs.getthread.com/skill-library/account-management/budget-planning-brief\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Triage \u0026 Routing\",\"item\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview#article\",\"headline\":\"Triage \u0026 Routing\",\"name\":\"Triage \u0026 Routing\",\"description\":\"Work out what a new ticket is, how urgent it is, and where it belongs — before a technician opens it.\",\"url\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getthread.com/skill-library/triage-and-routing/overview#webpage\"},\"dateModified\":\"2026-10-01T21:06:14.436Z\",\"keywords\":\"allocate, assign, autotask, brief, broken, computer, connectwise, dashboard, desktop, digest, down, email, error, failed, halopsa, how are we doing, issue, junk, laptop, machine, metrics, numbers, offline, pc, problem, threshold, unwanted mail, urgent, warning, workstation, Alert Client Resolver via Liongard, Alert Site to Client Mapping, Alert Storm Merge, Alert Title Normalization, Alert Title Standardizer, Auto Priority Classification, Billable Scope Router, Board Routing Rules Engine, Catchall Asset Cross-Reference, Catchall Noise Gate, Catchall Routing, Courtesy Reply Status Revert, Cross-Client Outage Detector, Default Contact Autofill, Dispatcher Intake, Duplicate Hunter, Intake Classification Tree, Monitoring Companion Merge, Multi-Issue Ticket Splitter, New Ticket First Touch, Noise Auto-Close, Prior Resolution, Priority Downgrade Guard, Queue Scoring Triage, RE/FW Reopen Detection, Reassign Contact Submitted On Behalf Of, Route, Assign and Document, Scheduling Intent Detector, Sentiment Score Explainer, Spam Sender Triage, Ticket Triage, Triage Category, Triage Priority, Triage Similar Tickets, Triage Ticket Type, Urgent Deadline Watch, VIP Priority Handling\",\"publisher\":{\"@id\":\"https://docs.getthread.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getthread.com#website\"}}]}\u003c/script>","agentPointerHref":"/skill-library/triage-and-routing/overview.md","siteName":"Thread Docs","nav":{"global":null,"tabs":[{"tab":"Start here","icon":"compass","pages":[{"title":"Start here","href":""}]},{"tab":"Onboarding","icon":"graduation-cap","hidden":true,"pages":[{"title":"Onboarding","href":"/onboarding/overview"}]},{"tab":"By role","icon":"users","pages":[{"title":"By role","href":"/start-here/roles/overview"}]},{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/guides/overview"}]},{"tab":"Magic Library","icon":"https://mintlify.s3.us-west-1.amazonaws.com/thread/logo/stars.svg","groups":[{"group":"Overview","icon":"book-open","pages":[{"title":"Magic Library","sidebarTitle":"Find a skill","icon":"magnifying-glass","href":"/skill-library/overview"}]},{"group":"Categories","icon":"grid-2","pages":[{"group":"Account Management","icon":"address-card","root":{"title":"Account Management","href":"/skill-library/account-management/overview"},"expanded":false,"pages":[{"title":"Budget Planning Brief","href":"/skill-library/account-management/budget-planning-brief"},{"title":"Business Value Summary","href":"/skill-library/account-management/business-value-summary"},{"title":"Client Health Report","href":"/skill-library/account-management/client-health-report"},{"title":"Client Risk Scan","href":"/skill-library/account-management/client-risk-scan"},{"title":"Expansion Opportunity Scan","href":"/skill-library/account-management/expansion-opportunity-scan"},{"title":"Health Score Reconciliation","href":"/skill-library/account-management/health-score-reconciliation"},{"title":"IT Roadmap Builder","href":"/skill-library/account-management/it-roadmap-builder"},{"title":"Meeting Prep Brief","href":"/skill-library/account-management/meeting-prep-brief"},{"title":"New Client 30-Day Review","href":"/skill-library/account-management/new-client-30day-review"},{"title":"QBR \u0026 SBR Prep","href":"/skill-library/account-management/qbr-and-sbr-prep"},{"title":"Renewal Prep","href":"/skill-library/account-management/renewal-prep"},{"title":"Sentiment Decline Watch","href":"/skill-library/account-management/sentiment-decline-watch"},{"title":"Stakeholder Map","href":"/skill-library/account-management/stakeholder-map"},{"title":"vCIO Weekly Proactive","href":"/skill-library/account-management/vcio-weekly-proactive"},{"title":"VIP Open Ticket Overview","href":"/skill-library/account-management/vip-open-ticket-overview"}]},{"group":"Alert Runbooks","icon":"bell","root":{"title":"Alert Runbooks","href":"/skill-library/alert-runbooks/overview"},"expanded":false,"pages":[{"title":"Agent State Flap Bundler","href":"/skill-library/alert-runbooks/agent-state-flap-bundler"},{"title":"Alert Threshold Problem Ticket","href":"/skill-library/alert-runbooks/alert-threshold-problem-ticket"},{"title":"AV/EDR Agent Offline Alert","href":"/skill-library/alert-runbooks/av-edr-agent-offline"},{"title":"Backup Alert Bundler","href":"/skill-library/alert-runbooks/backup-alert-bundler"},{"title":"Backup Missed vs Failed Alert","href":"/skill-library/alert-runbooks/backup-missed-vs-failed"},{"title":"Certificate Expiry Alert","href":"/skill-library/alert-runbooks/certificate-expiry-alert"},{"title":"Disk Space Alert","href":"/skill-library/alert-runbooks/disk-space-alert"},{"title":"High CPU/Memory Alert","href":"/skill-library/alert-runbooks/high-cpu-memory-alert"},{"title":"Patch Failure Action Score","href":"/skill-library/alert-runbooks/patch-failure-action-score"},{"title":"Patch Failure Alert","href":"/skill-library/alert-runbooks/patch-failure-alert"},{"title":"RAID Degradation Alert","href":"/skill-library/alert-runbooks/raid-degradation-alert"}]},{"group":"Automation \u0026 Flows","icon":"bolt","root":{"title":"Automation \u0026 Flows","href":"/skill-library/automation-and-flows/overview"},"expanded":false,"pages":[{"title":"Access Request Intent Design","href":"/skill-library/automation-and-flows/intent-design-access-request"},{"title":"Approver Self-Skip","href":"/skill-library/automation-and-flows/approver-self-skip"},{"title":"Automation Completion Auto-Close","href":"/skill-library/automation-and-flows/automation-completion-auto-close"},{"title":"Automation Failure Watch","href":"/skill-library/automation-and-flows/automation-failure-watch"},{"title":"Automation Opportunity Finder","href":"/skill-library/automation-and-flows/automation-opportunity-finder"},{"title":"Change Approval Sender","href":"/skill-library/automation-and-flows/change-approval-sender"},{"title":"Closure Recategorization","href":"/skill-library/automation-and-flows/closure-recategorization"},{"title":"Connector Degradation","href":"/skill-library/automation-and-flows/connector-degradation"},{"title":"Flow Backup Export","href":"/skill-library/automation-and-flows/flow-backup-export"},{"title":"Flow Builder","href":"/skill-library/automation-and-flows/flow-builder"},{"title":"Flow Bulk Editor","href":"/skill-library/automation-and-flows/flow-bulk-editor"},{"title":"Flow Debugger","href":"/skill-library/automation-and-flows/flow-debugger"},{"title":"Flow Note Personalizer","href":"/skill-library/automation-and-flows/flow-note-personalizer"},{"title":"How-Do-I Self-Help Router Intent Design","href":"/skill-library/automation-and-flows/intent-design-how-do-i"},{"title":"Intake Skill Orchestrator","href":"/skill-library/automation-and-flows/intake-skill-orchestrator"},{"title":"Intent Builder","href":"/skill-library/automation-and-flows/intent-builder"},{"title":"Intent Bulk Variation Update","href":"/skill-library/automation-and-flows/intent-bulk-variation-update"},{"title":"Intent Mining","href":"/skill-library/automation-and-flows/intent-mining"},{"title":"Intent Setup Walkthrough","href":"/skill-library/automation-and-flows/intent-setup-walkthrough"},{"title":"JSON API Response Pattern","href":"/skill-library/automation-and-flows/json-api-response-pattern"},{"title":"New Hire Intent Design","href":"/skill-library/automation-and-flows/intent-design-new-hire"},{"title":"New Ticket Approval Gate","href":"/skill-library/automation-and-flows/new-ticket-approval-gate"},{"title":"Offboarding Intent Design","href":"/skill-library/automation-and-flows/intent-design-offboarding"},{"title":"Password Reset Intent Design","href":"/skill-library/automation-and-flows/intent-design-password-reset"},{"title":"Printer Issues Intent Design","href":"/skill-library/automation-and-flows/intent-design-printer-issues"},{"title":"Project Conversion Inbox Cleanup","href":"/skill-library/automation-and-flows/project-conversion-inbox-cleanup"},{"title":"PSA Note Discipline","href":"/skill-library/automation-and-flows/psa-note-discipline"},{"title":"Self-Learning Triage Orchestrator","href":"/skill-library/automation-and-flows/self-learning-triage-orchestrator"},{"title":"Site-Aware Approval Routing","href":"/skill-library/automation-and-flows/site-aware-approval-routing"},{"title":"Skill Authoring Coach","href":"/skill-library/automation-and-flows/skill-authoring-coach"},{"title":"Skill Director","href":"/skill-library/automation-and-flows/skill-director"},{"title":"Status Check Intent Design","href":"/skill-library/automation-and-flows/intent-design-status-check"},{"title":"Sweep Honesty","href":"/skill-library/automation-and-flows/sweep-honesty"},{"title":"Triage Agent Tuning","href":"/skill-library/automation-and-flows/triage-agent-tuning"},{"title":"Triage Learnings","href":"/skill-library/automation-and-flows/triage-learnings"},{"title":"Unattended Output Discipline","href":"/skill-library/automation-and-flows/unattended-output-discipline"},{"title":"Variation Author","href":"/skill-library/automation-and-flows/variation-author"},{"title":"View Builder","href":"/skill-library/automation-and-flows/view-builder"},{"title":"VPN Issues Intent Design","href":"/skill-library/automation-and-flows/intent-design-vpn-issues"},{"title":"Write Guardrails","href":"/skill-library/automation-and-flows/write-guardrails"}]},{"group":"Change \u0026 Problem Management","icon":"code-branch","root":{"title":"Change \u0026 Problem Management","href":"/skill-library/change-and-problem-management/overview"},"expanded":false,"pages":[{"title":"CAB Brief Builder","href":"/skill-library/change-and-problem-management/cab-brief-builder"},{"title":"Change Calendar Management","href":"/skill-library/change-and-problem-management/change-calendar-management"},{"title":"Change Request Intake","href":"/skill-library/change-and-problem-management/change-request-intake"},{"title":"Change Risk Assessment","href":"/skill-library/change-and-problem-management/change-risk-assessment"},{"title":"Emergency Change Handling","href":"/skill-library/change-and-problem-management/emergency-change-handling"},{"title":"Incident Commander Brief","href":"/skill-library/change-and-problem-management/incident-commander-brief"},{"title":"Incident Comms Cadence","href":"/skill-library/change-and-problem-management/incident-comms-cadence"},{"title":"Known Error Database","href":"/skill-library/change-and-problem-management/known-error-database"},{"title":"Maintenance Freeze Windows","href":"/skill-library/change-and-problem-management/maintenance-freeze-windows"},{"title":"Major Incident Declaration","href":"/skill-library/change-and-problem-management/major-incident-declaration"},{"title":"Post-Incident Action Tracking","href":"/skill-library/change-and-problem-management/post-incident-action-tracking"},{"title":"Problem Record Lifecycle","href":"/skill-library/change-and-problem-management/problem-record-lifecycle"},{"title":"Recurring Maintenance Tickets","href":"/skill-library/change-and-problem-management/recurring-maintenance-tickets"},{"title":"RFO Letter","href":"/skill-library/change-and-problem-management/rfo-letter"},{"title":"Workaround Documentation","href":"/skill-library/change-and-problem-management/workaround-documentation"}]},{"group":"Client Lifecycle","icon":"arrows-spin","root":{"title":"Client Lifecycle","href":"/skill-library/client-lifecycle/overview"},"expanded":false,"pages":[{"title":"Churn Save Deep Dive","href":"/skill-library/client-lifecycle/churn-save-deep-dive"},{"title":"Client Offboarding","href":"/skill-library/client-lifecycle/client-offboarding"},{"title":"Client Onboarding Runbook","href":"/skill-library/client-lifecycle/client-onboarding-runbook"},{"title":"Contract Renewal Routing","href":"/skill-library/client-lifecycle/contract-renewal-routing"},{"title":"MSA Change Management","href":"/skill-library/client-lifecycle/msa-change-management"},{"title":"Post-Churn Autopsy","href":"/skill-library/client-lifecycle/post-churn-autopsy"}]},{"group":"Communication","icon":"comments","root":{"title":"Communication","href":"/skill-library/communication/overview"},"expanded":false,"pages":[{"title":"Apology With Remedy","href":"/skill-library/communication/apology-with-remedy"},{"title":"Approval Request Email","href":"/skill-library/communication/approval-request-email"},{"title":"Bad Review Response Prep","href":"/skill-library/communication/bad-review-response-prep"},{"title":"Client RCA Summary","href":"/skill-library/communication/client-rca-summary"},{"title":"Client Reply","href":"/skill-library/communication/client-reply"},{"title":"De-escalation Reply","href":"/skill-library/communication/de-escalation-reply"},{"title":"Delay Apology","href":"/skill-library/communication/delay-apology"},{"title":"Difficult News Delivery","href":"/skill-library/communication/difficult-news-delivery"},{"title":"Email Baseline Standard","href":"/skill-library/communication/email-baseline-standard"},{"title":"EOL Product Notice","href":"/skill-library/communication/eol-product-notice"},{"title":"ESL Drafting Assistant","href":"/skill-library/communication/esl-drafting-assistant"},{"title":"Expectation-Setting Acknowledgment","href":"/skill-library/communication/expectation-setting-acknowledgment"},{"title":"Follow-up Chaser","href":"/skill-library/communication/followup-chaser"},{"title":"Maintenance Window Notice","href":"/skill-library/communication/maintenance-window-notice"},{"title":"Multilingual Reply","href":"/skill-library/communication/multilingual-reply"},{"title":"Outage Notification","href":"/skill-library/communication/outage-notification"},{"title":"Price Increase Letter","href":"/skill-library/communication/price-increase-letter"},{"title":"Resolution Closing Email","href":"/skill-library/communication/resolution-closing-email"},{"title":"Running Late Heads-Up","href":"/skill-library/communication/running-late-heads-up"},{"title":"Scope Pushback","href":"/skill-library/communication/scope-pushback"},{"title":"Screenshot OCR Translate","href":"/skill-library/communication/screenshot-ocr-translate"},{"title":"Security Advisory Broadcast","href":"/skill-library/communication/security-advisory-broadcast"},{"title":"Status Update Messenger","href":"/skill-library/communication/status-update-messenger"},{"title":"Technical to Plain English","href":"/skill-library/communication/technical-to-plain-english"},{"title":"Three Strikes Final Email","href":"/skill-library/communication/three-strikes-final-email"},{"title":"Tone Polish Rewrite","href":"/skill-library/communication/tone-polish-rewrite"}]},{"group":"Compliance \u0026 Audit","icon":"clipboard-check","root":{"title":"Compliance \u0026 Audit","href":"/skill-library/compliance-and-audit/overview"},"expanded":false,"pages":[{"title":"Audit Prep Review","href":"/skill-library/compliance-and-audit/audit-prep-review"},{"title":"Change Request Prerequisites","href":"/skill-library/compliance-and-audit/change-request-prerequisites"},{"title":"CMMC Readiness Brief","href":"/skill-library/compliance-and-audit/cmmc-readiness-brief"},{"title":"Compliance Questionnaire Assist","href":"/skill-library/compliance-and-audit/compliance-questionnaire-assist"},{"title":"Cyber Insurance Form Prep","href":"/skill-library/compliance-and-audit/cyber-insurance-form-prep"},{"title":"HIPAA Safeguards Checklist","href":"/skill-library/compliance-and-audit/hipaa-safeguards-checklist"},{"title":"NIST CSF Gap Brief","href":"/skill-library/compliance-and-audit/nist-csf-gap-brief"},{"title":"PCI DSS Scope Review","href":"/skill-library/compliance-and-audit/pci-dss-scope-review"},{"title":"Security Questionnaire Vendor DDQ","href":"/skill-library/compliance-and-audit/security-questionnaire-vendor-ddq"},{"title":"SOC2 Evidence Collection","href":"/skill-library/compliance-and-audit/soc2-evidence-collection"}]},{"group":"Connectors","icon":"plug","root":{"title":"Connectors","href":"/skill-library/connectors/overview"},"expanded":false,"pages":[{"title":"Linear Release Notes","href":"/skill-library/connectors/linear-release-notes"},{"title":"Linear Spec Lookup","href":"/skill-library/connectors/linear-spec-lookup"},{"title":"Notion Change Log","href":"/skill-library/connectors/notion-change-log"},{"title":"Notion Client Runbook Database","href":"/skill-library/connectors/notion-client-runbook-database"},{"title":"Notion Intake Forms","href":"/skill-library/connectors/notion-intake-forms"},{"title":"Notion Onboarding Tracker","href":"/skill-library/connectors/notion-onboarding-tracker"},{"title":"Notion QBR Page","href":"/skill-library/connectors/notion-qbr-page"},{"title":"Notion SOP Publishing","href":"/skill-library/connectors/notion-sop-publishing"},{"title":"Zapier Action Discovery","href":"/skill-library/connectors/zapier-action-discovery"},{"title":"Zapier DocuSign Authorization","href":"/skill-library/connectors/zapier-docusign-authorization"},{"title":"Zapier OneDrive User Files","href":"/skill-library/connectors/zapier-onedrive-user-files"},{"title":"Zapier Outlook Calendar Booking","href":"/skill-library/connectors/zapier-outlook-calendar-booking"},{"title":"Zapier Outlook Client Email","href":"/skill-library/connectors/zapier-outlook-client-email"},{"title":"Zapier PagerDuty On-Call","href":"/skill-library/connectors/zapier-pagerduty-oncall"},{"title":"Zapier QuickBooks Time \u0026 Billing","href":"/skill-library/connectors/zapier-quickbooks-time-billing"},{"title":"Zapier SharePoint Ticket Filing","href":"/skill-library/connectors/zapier-sharepoint-ticket-filing"},{"title":"Zapier Slack Approval Request","href":"/skill-library/connectors/zapier-slack-approval-request"},{"title":"Zapier Slack Escalation Ping","href":"/skill-library/connectors/zapier-slack-escalation-ping"},{"title":"Zapier Teams Approval Gate","href":"/skill-library/connectors/zapier-teams-approval-gate"},{"title":"Zapier Teams Ticket Notifications","href":"/skill-library/connectors/zapier-teams-ticket-notifications"},{"title":"Zapier Webhook Generic","href":"/skill-library/connectors/zapier-webhook-generic"},{"title":"Zapier Xero Billing","href":"/skill-library/connectors/zapier-xero-billing"}]},{"group":"Devices \u0026 Infrastructure","icon":"server","root":{"title":"Devices \u0026 Infrastructure","href":"/skill-library/devices-and-infrastructure/overview"},"expanded":false,"pages":[{"title":"Alert Reset With Note","href":"/skill-library/devices-and-infrastructure/alert-reset-with-note"},{"title":"Backup Failure Triage","href":"/skill-library/devices-and-infrastructure/backup-failure-triage"},{"title":"Certificate Inventory","href":"/skill-library/devices-and-infrastructure/certificate-inventory"},{"title":"Circuit Inventory","href":"/skill-library/devices-and-infrastructure/circuit-inventory"},{"title":"Client-Facing Device Report","href":"/skill-library/devices-and-infrastructure/client-facing-device-report"},{"title":"Conference Room AV","href":"/skill-library/devices-and-infrastructure/conference-room-av"},{"title":"Device Approval Review","href":"/skill-library/devices-and-infrastructure/device-approval-review"},{"title":"Device Health Check","href":"/skill-library/devices-and-infrastructure/device-health-check"},{"title":"Device Offline Runbook","href":"/skill-library/devices-and-infrastructure/device-offline-runbook"},{"title":"Device-to-User Mapping","href":"/skill-library/devices-and-infrastructure/device-to-user-mapping"},{"title":"Disk Space Remediation","href":"/skill-library/devices-and-infrastructure/disk-space-remediation"},{"title":"Endpoint Encryption Audit","href":"/skill-library/devices-and-infrastructure/endpoint-encryption-audit"},{"title":"Firewall Config Backup Audit","href":"/skill-library/devices-and-infrastructure/firewall-config-backup-audit"},{"title":"Firewall Rule Change Request","href":"/skill-library/devices-and-infrastructure/firewall-rule-change"},{"title":"Fleet Health Sweep","href":"/skill-library/devices-and-infrastructure/fleet-health-sweep"},{"title":"Hardware Refresh Forecast","href":"/skill-library/devices-and-infrastructure/hardware-refresh-forecast"},{"title":"Hypervisor Alert Triage","href":"/skill-library/devices-and-infrastructure/hypervisor-alerts"},{"title":"ImmyBot Environment Review","href":"/skill-library/devices-and-infrastructure/immybot-environment-review"},{"title":"Intune vs RMM Reconciliation","href":"/skill-library/devices-and-infrastructure/intune-rmm-reconciliation"},{"title":"ISP Outage Tracking","href":"/skill-library/devices-and-infrastructure/isp-outage-tracking"},{"title":"IT Glue Asset \u0026 Contact Lookup","href":"/skill-library/devices-and-infrastructure/itglue-asset-contact-lookup"},{"title":"Liongard Change Review","href":"/skill-library/devices-and-infrastructure/liongard-change-review"},{"title":"Mac Fleet Management","href":"/skill-library/devices-and-infrastructure/mac-fleet-management"},{"title":"Maintenance Mode Workflow","href":"/skill-library/devices-and-infrastructure/maintenance-mode-workflow"},{"title":"Mobile Fleet Review","href":"/skill-library/devices-and-infrastructure/mobile-fleet-review"},{"title":"NAS / File Share Provisioning","href":"/skill-library/devices-and-infrastructure/nas-share-provisioning"},{"title":"Network Device Inventory","href":"/skill-library/devices-and-infrastructure/network-device-inventory"},{"title":"Network Outage Triage","href":"/skill-library/devices-and-infrastructure/network-outage-triage"},{"title":"New Workstation Imaging Checklist","href":"/skill-library/devices-and-infrastructure/new-workstation-imaging-checklist"},{"title":"NinjaOne Device Lookup from a Ticket","href":"/skill-library/devices-and-infrastructure/ninjaone-device-lookup"},{"title":"Patch Compliance Review","href":"/skill-library/devices-and-infrastructure/patch-compliance-review"},{"title":"Print Server Management","href":"/skill-library/devices-and-infrastructure/print-server-management"},{"title":"Printer Fleet Review","href":"/skill-library/devices-and-infrastructure/printer-fleet-review"},{"title":"Reboot Request Workflow","href":"/skill-library/devices-and-infrastructure/reboot-request-workflow"},{"title":"RMM Cross-Tool Reconciliation","href":"/skill-library/devices-and-infrastructure/rmm-cross-tool-reconciliation"},{"title":"SD-WAN / Multi-Circuit Monitoring","href":"/skill-library/devices-and-infrastructure/sd-wan-circuit-monitoring"},{"title":"Server Decommission Runbook","href":"/skill-library/devices-and-infrastructure/server-decommission-runbook"},{"title":"Server Diagnostics","href":"/skill-library/devices-and-infrastructure/server-diagnostics"},{"title":"Server Patch Windows","href":"/skill-library/devices-and-infrastructure/server-patch-windows"},{"title":"Service Restart Runbook","href":"/skill-library/devices-and-infrastructure/service-restart-runbook"},{"title":"Storage Capacity Planning","href":"/skill-library/devices-and-infrastructure/storage-capacity-planning"},{"title":"Switch VLAN and Port Change","href":"/skill-library/devices-and-infrastructure/switch-vlan-change"},{"title":"UPS Replacement Likelihood","href":"/skill-library/devices-and-infrastructure/ups-replacement-likelihood"},{"title":"Warranty and EOL Report","href":"/skill-library/devices-and-infrastructure/warranty-eol-report"},{"title":"WiFi Heatmap / Site Survey Request","href":"/skill-library/devices-and-infrastructure/wifi-heatmap-request"},{"title":"WiFi Infrastructure Audit","href":"/skill-library/devices-and-infrastructure/wifi-infrastructure-audit"},{"title":"Windows 11 Readiness Assessment","href":"/skill-library/devices-and-infrastructure/win11-readiness-assessment"}]},{"group":"Documentation","icon":"book","root":{"title":"Documentation","href":"/skill-library/documentation/overview"},"expanded":false,"pages":[{"title":"Create KBA from Resolved Ticket","href":"/skill-library/documentation/kba-from-resolved-ticket"},{"title":"Custom Time Entry Writer","href":"/skill-library/documentation/custom-time-entry-writer"},{"title":"Deep Recap","href":"/skill-library/documentation/deep-recap"},{"title":"Doc Gap Detector","href":"/skill-library/documentation/doc-gap-detector"},{"title":"Environment Facts Updater","href":"/skill-library/documentation/environment-facts-updater"},{"title":"KB Article Draft","href":"/skill-library/documentation/kb-article-draft"},{"title":"Knowledge Base Taxonomy","href":"/skill-library/documentation/knowledge-base-taxonomy"},{"title":"Note Format Standard","href":"/skill-library/documentation/note-format-standard"},{"title":"Post-Mortem \u0026 RCA Author","href":"/skill-library/documentation/post-mortem-rca-author"},{"title":"Pre-Work Documentation Briefing","href":"/skill-library/documentation/pre-work-documentation-briefing"},{"title":"Runbook Recommender","href":"/skill-library/documentation/runbook-recommender"},{"title":"SOP Builder","href":"/skill-library/documentation/sop-builder"},{"title":"SOP Candidate Finder","href":"/skill-library/documentation/sop-candidate-finder"},{"title":"Stale Doc Hygiene","href":"/skill-library/documentation/stale-doc-hygiene"},{"title":"Ticket Export for LLM","href":"/skill-library/documentation/ticket-export-for-llm"},{"title":"Ticket Intake \u0026 Formatting","href":"/skill-library/documentation/ticket-intake-formatting"},{"title":"Ticket Summary \u0026 Closure Note","href":"/skill-library/documentation/ticket-summary-and-closure-note"},{"title":"Time Entry Cleanup","href":"/skill-library/documentation/time-entry-cleanup"}]},{"group":"End-User Guides","icon":"circle-question","root":{"title":"End-User Guides","href":"/skill-library/end-user-guides/overview"},"expanded":false,"pages":[{"title":"Large File Share Guide","href":"/skill-library/end-user-guides/large-file-share-guide"},{"title":"MFA New Phone Guide","href":"/skill-library/end-user-guides/mfa-new-phone-guide"},{"title":"MFA Setup Guide","href":"/skill-library/end-user-guides/mfa-setup-guide"},{"title":"Mobile Mail Setup Guide","href":"/skill-library/end-user-guides/mobile-mail-setup-guide"},{"title":"New Computer First Day Guide","href":"/skill-library/end-user-guides/new-computer-first-day-guide"},{"title":"OneDrive Restore Guide","href":"/skill-library/end-user-guides/onedrive-restore-guide"},{"title":"Out of Office Guide","href":"/skill-library/end-user-guides/out-of-office-guide"},{"title":"Outlook Profile Setup Guide","href":"/skill-library/end-user-guides/outlook-profile-setup-guide"},{"title":"Password Expiry Change Guide","href":"/skill-library/end-user-guides/password-expiry-change-guide"},{"title":"Printer Connect Guide","href":"/skill-library/end-user-guides/printer-connect-guide"},{"title":"Report Phishing Guide","href":"/skill-library/end-user-guides/report-phishing-guide"},{"title":"Safe File Sharing Guide","href":"/skill-library/end-user-guides/safe-file-sharing-guide"},{"title":"Screen Share Help Guide","href":"/skill-library/end-user-guides/screen-share-help-guide"},{"title":"Shared Mailbox Access Guide","href":"/skill-library/end-user-guides/shared-mailbox-access-guide"},{"title":"SSPR Password Reset Guide","href":"/skill-library/end-user-guides/sspr-password-reset-guide"},{"title":"Teams Meeting Guide","href":"/skill-library/end-user-guides/teams-meeting-guide"},{"title":"VPN Connect Guide","href":"/skill-library/end-user-guides/vpn-connect-guide"},{"title":"WiFi Connect Guide","href":"/skill-library/end-user-guides/wifi-connect-guide"},{"title":"Working From Home Checklist","href":"/skill-library/end-user-guides/working-from-home-checklist"}]},{"group":"Escalation","icon":"arrow-up-right-dots","root":{"title":"Escalation","href":"/skill-library/escalation/overview"},"expanded":false,"pages":[{"title":"Co-Managed Reference Exchange","href":"/skill-library/escalation/comanaged-reference-exchange"},{"title":"Engineering Escalation to Linear","href":"/skill-library/escalation/engineering-escalation-linear"},{"title":"Escalation Advisor","href":"/skill-library/escalation/escalation-advisor"},{"title":"Escalation Completeness Gate","href":"/skill-library/escalation/escalation-completeness-gate"},{"title":"Escalation Prep","href":"/skill-library/escalation/escalation-prep"},{"title":"Escalation Risk Radar","href":"/skill-library/escalation/escalation-risk-radar"},{"title":"Live Call Transfer Brief","href":"/skill-library/escalation/live-call-transfer-brief"},{"title":"Management Escalation Brief","href":"/skill-library/escalation/management-escalation-brief"},{"title":"Problem Ticket Creation","href":"/skill-library/escalation/problem-ticket-creation"},{"title":"Shift Handoff","href":"/skill-library/escalation/shift-handoff"},{"title":"Single Ticket Handoff Card","href":"/skill-library/escalation/single-ticket-handoff-card"},{"title":"Vendor Escalation Package","href":"/skill-library/escalation/vendor-escalation-package"}]},{"group":"Finance \u0026 Billing","icon":"file-invoice-dollar","root":{"title":"Finance \u0026 Billing","href":"/skill-library/finance-and-billing/overview"},"expanded":false,"pages":[{"title":"Agreement Profitability","href":"/skill-library/finance-and-billing/agreement-profitability"},{"title":"AI Work Time Capture","href":"/skill-library/finance-and-billing/ai-work-time-capture"},{"title":"Billable Analysis","href":"/skill-library/finance-and-billing/billable-analysis"},{"title":"Billing Forensics","href":"/skill-library/finance-and-billing/billing-forensics"},{"title":"Invoice Dispute Investigation","href":"/skill-library/finance-and-billing/invoice-dispute-investigation"},{"title":"License Billing Reconciliation","href":"/skill-library/finance-and-billing/license-billing-reconciliation"},{"title":"License Cost Optimization","href":"/skill-library/finance-and-billing/license-cost-optimization"},{"title":"Out-of-Scope Billing Flag","href":"/skill-library/finance-and-billing/out-of-scope-billing-flag"},{"title":"Procurement Quote Request","href":"/skill-library/finance-and-billing/procurement-quote-request"},{"title":"Project Profitability","href":"/skill-library/finance-and-billing/project-profitability"},{"title":"QuickBooks Invoice Draft","href":"/skill-library/finance-and-billing/quickbooks-invoice-draft"},{"title":"Seat Count True-Up","href":"/skill-library/finance-and-billing/seat-count-trueup"},{"title":"Stripe Payment Link","href":"/skill-library/finance-and-billing/stripe-payment-link"},{"title":"Tech Utilization Report","href":"/skill-library/finance-and-billing/tech-utilization-report"},{"title":"Time Entry Revenue Audit","href":"/skill-library/finance-and-billing/time-entry-revenue-audit"},{"title":"Warranty Claim Handling","href":"/skill-library/finance-and-billing/warranty-claim-handling"}]},{"group":"Industry Packs","icon":"briefcase","root":{"title":"Industry Packs","href":"/skill-library/industry-packs/overview"},"expanded":false,"pages":[{"title":"Industry Pack Frame","href":"/skill-library/industry-packs/industry-pack-frame"},{"title":"Supporting Accounting Firms","href":"/skill-library/industry-packs/accounting-firms"},{"title":"Supporting Architecture and Engineering Firms","href":"/skill-library/industry-packs/architecture-engineering"},{"title":"Supporting Auto Dealerships","href":"/skill-library/industry-packs/auto-dealerships"},{"title":"Supporting Construction and Field Services","href":"/skill-library/industry-packs/construction-field-services"},{"title":"Supporting Dental Practices","href":"/skill-library/industry-packs/dental-practices"},{"title":"Supporting Financial Services Clients","href":"/skill-library/industry-packs/financial-services"},{"title":"Supporting Insurance Agencies","href":"/skill-library/industry-packs/insurance-agencies"},{"title":"Supporting Legal Firms","href":"/skill-library/industry-packs/legal-firms"},{"title":"Supporting Logistics and Trucking Clients","href":"/skill-library/industry-packs/logistics-trucking"},{"title":"Supporting Manufacturing Clients","href":"/skill-library/industry-packs/manufacturing"},{"title":"Supporting Medical Clinics","href":"/skill-library/industry-packs/medical-clinics"},{"title":"Supporting Municipal Government","href":"/skill-library/industry-packs/municipal-government"},{"title":"Supporting Nonprofits","href":"/skill-library/industry-packs/nonprofits"},{"title":"Supporting Property Management Clients","href":"/skill-library/industry-packs/property-management"},{"title":"Supporting Real Estate Clients","href":"/skill-library/industry-packs/real-estate"},{"title":"Supporting Schools and Education","href":"/skill-library/industry-packs/education-schools"},{"title":"Supporting Senior Living Communities","href":"/skill-library/industry-packs/senior-living"}]},{"group":"Liongard Inspectors","icon":"magnifying-glass-chart","root":{"title":"Liongard Inspectors","href":"/skill-library/liongard-inspectors/overview"},"expanded":false,"pages":[{"title":"Inspector Read Discipline","href":"/skill-library/liongard-inspectors/inspector-read-discipline"},{"title":"Liongard Access Pattern","href":"/skill-library/liongard-inspectors/liongard-access-pattern"},{"title":"Liongard Active Directory Read","href":"/skill-library/liongard-inspectors/liongard-active-directory"},{"title":"Liongard AWS Read","href":"/skill-library/liongard-inspectors/liongard-aws"},{"title":"Liongard Azure Read","href":"/skill-library/liongard-inspectors/liongard-azure"},{"title":"Liongard Bitdefender Read","href":"/skill-library/liongard-inspectors/liongard-bitdefender"},{"title":"Liongard Cisco ASA Read","href":"/skill-library/liongard-inspectors/liongard-cisco-asa"},{"title":"Liongard Cisco Network Read","href":"/skill-library/liongard-inspectors/liongard-cisco-network"},{"title":"Liongard ConnectWise Automate Read","href":"/skill-library/liongard-inspectors/liongard-connectwise-automate"},{"title":"Liongard Cross-Client Census","href":"/skill-library/liongard-inspectors/liongard-cross-client-census"},{"title":"Liongard Datto RMM Read","href":"/skill-library/liongard-inspectors/liongard-datto-rmm"},{"title":"Liongard Duo Read","href":"/skill-library/liongard-inspectors/liongard-duo"},{"title":"Liongard Email Security Config Read","href":"/skill-library/liongard-inspectors/liongard-email-security-config"},{"title":"Liongard Exchange On-Prem Read","href":"/skill-library/liongard-inspectors/liongard-exchange-on-prem"},{"title":"Liongard FortiGate Read","href":"/skill-library/liongard-inspectors/liongard-fortigate"},{"title":"Liongard Google Workspace Read","href":"/skill-library/liongard-inspectors/liongard-google-workspace"},{"title":"Liongard Hyper-V Read","href":"/skill-library/liongard-inspectors/liongard-hyperv"},{"title":"Liongard Internet Domain \u0026 TLS Read","href":"/skill-library/liongard-inspectors/liongard-internet-domain"},{"title":"Liongard JumpCloud Read","href":"/skill-library/liongard-inspectors/liongard-jumpcloud"},{"title":"Liongard Kaseya VSA Read","href":"/skill-library/liongard-inspectors/liongard-kaseya-vsa"},{"title":"Liongard M365 Tenant Read","href":"/skill-library/liongard-inspectors/liongard-m365-tenant"},{"title":"Liongard Meraki Read","href":"/skill-library/liongard-inspectors/liongard-meraki"},{"title":"Liongard Mimecast Read","href":"/skill-library/liongard-inspectors/liongard-mimecast"},{"title":"Liongard N-central Read","href":"/skill-library/liongard-inspectors/liongard-ncentral"},{"title":"Liongard Network Documentation Sync","href":"/skill-library/liongard-inspectors/liongard-network-documentation-sync"},{"title":"Liongard Okta Read","href":"/skill-library/liongard-inspectors/liongard-okta"},{"title":"Liongard Palo Alto Read","href":"/skill-library/liongard-inspectors/liongard-palo-alto"},{"title":"Liongard pfSense Read","href":"/skill-library/liongard-inspectors/liongard-pfsense"},{"title":"Liongard Proofpoint Read","href":"/skill-library/liongard-inspectors/liongard-proofpoint"},{"title":"Liongard QBR Evidence Pack","href":"/skill-library/liongard-inspectors/liongard-qbr-evidence-pack"},{"title":"Liongard SentinelOne Read","href":"/skill-library/liongard-inspectors/liongard-sentinelone"},{"title":"Liongard SonicWall Read","href":"/skill-library/liongard-inspectors/liongard-sonicwall"},{"title":"Liongard Sophos Central Read","href":"/skill-library/liongard-inspectors/liongard-sophos-central"},{"title":"Liongard Sophos Firewall Read","href":"/skill-library/liongard-inspectors/liongard-sophos-firewall"},{"title":"Liongard UniFi Read","href":"/skill-library/liongard-inspectors/liongard-unifi"},{"title":"Liongard Veeam Posture Read","href":"/skill-library/liongard-inspectors/liongard-veeam-posture"},{"title":"Liongard VMware Read","href":"/skill-library/liongard-inspectors/liongard-vmware"},{"title":"Liongard WatchGuard Config Read","href":"/skill-library/liongard-inspectors/liongard-watchguard-config"},{"title":"Liongard Webroot Read","href":"/skill-library/liongard-inspectors/liongard-webroot"},{"title":"Liongard Windows Server Read","href":"/skill-library/liongard-inspectors/liongard-windows-server"}]},{"group":"Localized","icon":"language","root":{"title":"Localized","href":"/skill-library/localized/overview"},"expanded":false,"pages":[{"title":"Dagelijkse samenvatting (Dutch)","href":"/skill-library/localized/nl-daily-digest"},{"title":"Daglig oversikt (Norwegian)","href":"/skill-library/localized/no-daily-digest"},{"title":"Klantantwoord (Dutch)","href":"/skill-library/localized/nl-client-reply"},{"title":"Kundenantwort (German)","href":"/skill-library/localized/de-client-reply"},{"title":"Kundesvar (Norwegian)","href":"/skill-library/localized/no-client-reply"},{"title":"Phishing-Triage (German)","href":"/skill-library/localized/de-phishing-triage"},{"title":"Phishing-triage (Norwegian)","href":"/skill-library/localized/no-phishing-triage"},{"title":"Phishingtriage (Dutch)","href":"/skill-library/localized/nl-phishing-triage"},{"title":"Respuesta al cliente (Spanish)","href":"/skill-library/localized/es-client-reply"},{"title":"Resumen diario (Spanish)","href":"/skill-library/localized/es-daily-digest"},{"title":"Réponse client (French)","href":"/skill-library/localized/fr-client-reply"},{"title":"Synthèse quotidienne (French)","href":"/skill-library/localized/fr-daily-digest"},{"title":"Tagesübersicht (German)","href":"/skill-library/localized/de-daily-digest"},{"title":"Triage d'hameçonnage (French)","href":"/skill-library/localized/fr-phishing-triage"},{"title":"Triaje de phishing (Spanish)","href":"/skill-library/localized/es-phishing-triage"}]},{"group":"Microsoft 365 Administration","icon":"microsoft","root":{"title":"Microsoft 365 Administration","href":"/skill-library/m365-administration/overview"},"expanded":false,"pages":[{"title":"Anti-Spam Policy Tuning","href":"/skill-library/m365-administration/anti-spam-policy-tuning"},{"title":"App Protection Policies","href":"/skill-library/m365-administration/app-protection-policies"},{"title":"Archive Mailbox Enablement","href":"/skill-library/m365-administration/archive-mailbox-enablement"},{"title":"Autopilot Deployment","href":"/skill-library/m365-administration/autopilot-deployment"},{"title":"B2B Collaboration Setup","href":"/skill-library/m365-administration/b2b-collaboration-setup"},{"title":"BitLocker Key Retrieval","href":"/skill-library/m365-administration/bitlocker-key-retrieval"},{"title":"Break-Glass Account Audit","href":"/skill-library/m365-administration/break-glass-account-audit"},{"title":"Calendar Permissions","href":"/skill-library/m365-administration/calendar-permissions"},{"title":"Conditional Access Review","href":"/skill-library/m365-administration/conditional-access-review"},{"title":"Delegate Access Forensics","href":"/skill-library/m365-administration/delegate-access-forensics"},{"title":"Device Wipe Workflows","href":"/skill-library/m365-administration/device-wipe-workflows"},{"title":"Distribution vs M365 Groups","href":"/skill-library/m365-administration/distribution-vs-m365-groups"},{"title":"DKIM Enablement","href":"/skill-library/m365-administration/dkim-enablement"},{"title":"Email Connector Setup","href":"/skill-library/m365-administration/email-connector-setup"},{"title":"Enrollment Restrictions","href":"/skill-library/m365-administration/enrollment-restrictions"},{"title":"Entra PIM Requests","href":"/skill-library/m365-administration/entra-pim-requests"},{"title":"GDAP Relationship Review","href":"/skill-library/m365-administration/gdap-relationship-review"},{"title":"Guest Access Audit","href":"/skill-library/m365-administration/guest-access-audit"},{"title":"Intune App Deployment","href":"/skill-library/m365-administration/intune-app-deployment"},{"title":"Intune Compliance Policies","href":"/skill-library/m365-administration/intune-compliance-policies"},{"title":"Intune Enrollment Troubleshooting","href":"/skill-library/m365-administration/intune-enrollment-troubleshooting"},{"title":"Journaling \u0026 Compliance Mail","href":"/skill-library/m365-administration/journaling-compliance-mail"},{"title":"M365 Group Lifecycle","href":"/skill-library/m365-administration/m365-group-lifecycle"},{"title":"M365 License Optimization","href":"/skill-library/m365-administration/m365-license-optimization"},{"title":"M365 Tenant Health Report","href":"/skill-library/m365-administration/m365-tenant-health-report"},{"title":"Mail Flow Reports","href":"/skill-library/m365-administration/mail-flow-reports"},{"title":"Mail Forwarding Audit","href":"/skill-library/m365-administration/mail-forwarding-audit"},{"title":"Mail Trace Investigation","href":"/skill-library/m365-administration/mail-trace-investigation"},{"title":"Mailbox Migration Prep","href":"/skill-library/m365-administration/mailbox-migration-prep"},{"title":"Mailbox Permissions Audit","href":"/skill-library/m365-administration/mailbox-permissions-audit"},{"title":"Mailbox Quota Management","href":"/skill-library/m365-administration/mailbox-quota-management"},{"title":"MFA Methods Audit","href":"/skill-library/m365-administration/mfa-methods-audit"},{"title":"OneDrive Storage Governance","href":"/skill-library/m365-administration/onedrive-storage-governance"},{"title":"Out-of-Office on Behalf","href":"/skill-library/m365-administration/out-of-office-on-behalf"},{"title":"Plus Addressing \u0026 Aliases","href":"/skill-library/m365-administration/plus-addressing-and-aliases"},{"title":"Power Automate Governance","href":"/skill-library/m365-administration/power-automate-governance"},{"title":"Purview DLP Policy","href":"/skill-library/m365-administration/purview-dlp-policy"},{"title":"Resource Mailbox Setup","href":"/skill-library/m365-administration/resource-mailbox-setup"},{"title":"Retention Policy Requests","href":"/skill-library/m365-administration/retention-policy-requests"},{"title":"Safe Attachments and Links Policy","href":"/skill-library/m365-administration/safe-attachments-links-policy"},{"title":"Security Defaults vs Conditional Access","href":"/skill-library/m365-administration/security-defaults-vs-ca"},{"title":"Sensitivity Labels","href":"/skill-library/m365-administration/sensitivity-labels"},{"title":"Shared Mailbox Creation","href":"/skill-library/m365-administration/shared-mailbox-creation"},{"title":"SharePoint Site Provisioning","href":"/skill-library/m365-administration/sharepoint-site-provisioning"},{"title":"SSPR Rollout","href":"/skill-library/m365-administration/sspr-rollout"},{"title":"Stale Device Cleanup","href":"/skill-library/m365-administration/stale-device-cleanup"},{"title":"Teams Phone Admin","href":"/skill-library/m365-administration/teams-phone-admin"},{"title":"Tenant Onboarding Checklist","href":"/skill-library/m365-administration/tenant-onboarding-checklist"},{"title":"Transport Rule Management","href":"/skill-library/m365-administration/transport-rule-management"},{"title":"Windows Hello for Business","href":"/skill-library/m365-administration/windows-hello-business"}]},{"group":"MSP Business Operations","icon":"building","root":{"title":"MSP Business Operations","href":"/skill-library/msp-business-operations/overview"},"expanded":false,"pages":[{"title":"Internal IT Offboarding","href":"/skill-library/msp-business-operations/internal-it-offboarding"},{"title":"Internal IT Onboarding","href":"/skill-library/msp-business-operations/internal-it-onboarding"}]},{"group":"Onboarding \u0026 Access","icon":"user-plus","root":{"title":"Onboarding \u0026 Access","href":"/skill-library/onboarding-and-access/overview"},"expanded":false,"pages":[{"title":"Access Request Handling","href":"/skill-library/onboarding-and-access/access-request-handling"},{"title":"Bulk Onboarding Coordinator","href":"/skill-library/onboarding-and-access/bulk-onboarding-coordinator"},{"title":"Conditional Access Exception","href":"/skill-library/onboarding-and-access/conditional-access-exception"},{"title":"Distribution List Management","href":"/skill-library/onboarding-and-access/distribution-list-management"},{"title":"Employee Offboarding","href":"/skill-library/onboarding-and-access/employee-offboarding"},{"title":"Entra User Lifecycle (Zapier)","href":"/skill-library/onboarding-and-access/entra-user-lifecycle-zapier"},{"title":"Group Membership Request","href":"/skill-library/onboarding-and-access/group-membership-request"},{"title":"Laptop Return Logistics","href":"/skill-library/onboarding-and-access/laptop-return-logistics"},{"title":"License Lifecycle","href":"/skill-library/onboarding-and-access/license-lifecycle"},{"title":"Litigation Hold","href":"/skill-library/onboarding-and-access/litigation-hold"},{"title":"New Hire Onboarding","href":"/skill-library/onboarding-and-access/new-hire-onboarding"},{"title":"Offboarding Completeness Audit","href":"/skill-library/onboarding-and-access/offboarding-completeness-audit"},{"title":"Password \u0026 MFA Recovery","href":"/skill-library/onboarding-and-access/password-and-mfa-recovery"},{"title":"Rehire Reactivation","href":"/skill-library/onboarding-and-access/rehire-reactivation"},{"title":"Shared Mailbox Delegation","href":"/skill-library/onboarding-and-access/shared-mailbox-delegation"},{"title":"Travel Access Window","href":"/skill-library/onboarding-and-access/travel-access-window"}]},{"group":"Personal Productivity","icon":"list-check","root":{"title":"Personal Productivity","href":"/skill-library/personal-productivity/overview"},"expanded":false,"pages":[{"title":"Daily Digest","href":"/skill-library/personal-productivity/daily-digest"},{"title":"Day Planner","href":"/skill-library/personal-productivity/day-planner"},{"title":"Easy Win Finder","href":"/skill-library/personal-productivity/easy-win-finder"},{"title":"End-of-Day Wrap-Up","href":"/skill-library/personal-productivity/eod-wrapup"},{"title":"Field Work Ticket Capture","href":"/skill-library/personal-productivity/field-work-ticket-capture"},{"title":"One-Shot Ticket Workup","href":"/skill-library/personal-productivity/one-shot-ticket-workup"},{"title":"Vacation Handoff Pack","href":"/skill-library/personal-productivity/vacation-handoff-pack"}]},{"group":"PSA-Specific Workflows","icon":"diagram-project","root":{"title":"PSA-Specific Workflows","href":"/skill-library/psa-specific/overview"},"expanded":false,"pages":[{"title":"Atera Workflow","href":"/skill-library/psa-specific/atera-workflow"},{"title":"Autotask Contract Categories","href":"/skill-library/psa-specific/autotask-contract-categories"},{"title":"Autotask Contracts Blocks","href":"/skill-library/psa-specific/autotask-contracts-blocks"},{"title":"Autotask Merge Simulation","href":"/skill-library/psa-specific/autotask-merge-simulation"},{"title":"Autotask Queue Management","href":"/skill-library/psa-specific/autotask-queue-management"},{"title":"Autotask Service Call Scheduling","href":"/skill-library/psa-specific/autotask-service-call-scheduling"},{"title":"Autotask SLA Workflow","href":"/skill-library/psa-specific/autotask-sla-workflow"},{"title":"Autotask Ticket Categories","href":"/skill-library/psa-specific/autotask-ticket-categories"},{"title":"CW Agreement-Aware Triage","href":"/skill-library/psa-specific/cw-agreement-aware-triage"},{"title":"CW Configurations Assets","href":"/skill-library/psa-specific/cw-configurations-assets"},{"title":"CW Project Tickets","href":"/skill-library/psa-specific/cw-project-tickets"},{"title":"CW Service Board Conventions","href":"/skill-library/psa-specific/cw-service-board-conventions"},{"title":"CW Status Workflow Mapping","href":"/skill-library/psa-specific/cw-status-workflow-mapping"},{"title":"CW Sync Lag Audit","href":"/skill-library/psa-specific/cw-sync-lag-audit"},{"title":"CW Time Entry Conventions","href":"/skill-library/psa-specific/cw-time-entry-conventions"},{"title":"CW Type / Subtype / Item Classification","href":"/skill-library/psa-specific/cw-type-subtype-item"},{"title":"Halo Actions \u0026 Workflows","href":"/skill-library/psa-specific/halo-actions-workflows"},{"title":"Halo Agent Teams","href":"/skill-library/psa-specific/halo-agent-teams"},{"title":"Halo Recurring Tickets","href":"/skill-library/psa-specific/halo-recurring-tickets"},{"title":"Halo SLA and Priorities","href":"/skill-library/psa-specific/halo-sla-and-priorities"},{"title":"Halo Status Actions","href":"/skill-library/psa-specific/halo-status-actions"},{"title":"Halo Sync Audit","href":"/skill-library/psa-specific/halo-sync-audit"},{"title":"Kaseya BMS Workflow","href":"/skill-library/psa-specific/kaseya-bms-workflow"},{"title":"PSA Billing Cycle Prep","href":"/skill-library/psa-specific/psa-billing-cycle-prep"},{"title":"PSA Closed Status Taxonomy","href":"/skill-library/psa-specific/psa-closed-status-taxonomy"},{"title":"PSA Field Mapping Doc","href":"/skill-library/psa-specific/psa-field-mapping-doc"},{"title":"PSA Migration Hygiene","href":"/skill-library/psa-specific/psa-migration-hygiene"},{"title":"PSA New Board Setup","href":"/skill-library/psa-specific/psa-new-board-setup"},{"title":"PSA Note Visibility Rules","href":"/skill-library/psa-specific/psa-note-visibility-rules"},{"title":"PSA Taxonomy Cleanup","href":"/skill-library/psa-specific/psa-taxonomy-cleanup"},{"title":"PSA-Is-Master Reconciliation","href":"/skill-library/psa-specific/psa-is-master-reconciliation"},{"title":"Syncro Workflow","href":"/skill-library/psa-specific/syncro-workflow"}]},{"group":"QA \u0026 Closure","icon":"circle-check","root":{"title":"QA \u0026 Closure","href":"/skill-library/qa-and-closure/overview"},"expanded":false,"pages":[{"title":"Aging, SLA \u0026 Follow-Up","href":"/skill-library/qa-and-closure/aging-and-sla-cleanup"},{"title":"Bulk Ticket Operations","href":"/skill-library/qa-and-closure/bulk-ticket-operations"},{"title":"Closure Note Completeness","href":"/skill-library/qa-and-closure/closure-note-completeness"},{"title":"CSAT Follow-Up Loop","href":"/skill-library/qa-and-closure/csat-followup-loop"},{"title":"Deployment Compliance Grader","href":"/skill-library/qa-and-closure/deployment-compliance-grader"},{"title":"EOD Closed Ticket Audit","href":"/skill-library/qa-and-closure/eod-closed-ticket-audit"},{"title":"M365 Outage Mass Resolve","href":"/skill-library/qa-and-closure/m365-outage-mass-resolve"},{"title":"Merge Duplicate Tickets","href":"/skill-library/qa-and-closure/duplicate-ticket-merge"},{"title":"No-Response Closure Sequence","href":"/skill-library/qa-and-closure/no-response-closure-sequence"},{"title":"Premature Confirmation Detector","href":"/skill-library/qa-and-closure/premature-confirmation-detector"},{"title":"Queue Hygiene Score","href":"/skill-library/qa-and-closure/queue-hygiene-score"},{"title":"Re-Opened Confirmation Gate","href":"/skill-library/qa-and-closure/reopened-confirmation-gate"},{"title":"Reopen Forensics","href":"/skill-library/qa-and-closure/reopen-forensics"},{"title":"Silent Ticket Detector","href":"/skill-library/qa-and-closure/silent-ticket-detector"},{"title":"Stale Ticket Follow-Up Cadence","href":"/skill-library/qa-and-closure/stale-ticket-followup-cadence"},{"title":"Status Nudger","href":"/skill-library/qa-and-closure/status-nudger"},{"title":"Ticket QA Review","href":"/skill-library/qa-and-closure/ticket-qa-review"},{"title":"Triage Closure Review","href":"/skill-library/qa-and-closure/triage-closure-review"},{"title":"Waiting-on-Client Audit","href":"/skill-library/qa-and-closure/waiting-on-client-audit"},{"title":"Weekly QA Digest","href":"/skill-library/qa-and-closure/weekly-qa-digest"},{"title":"XLA Breach Risk Tiering","href":"/skill-library/qa-and-closure/sla-breach-risk-tiering"}]},{"group":"Reporting \u0026 Analytics","icon":"chart-line","root":{"title":"Reporting \u0026 Analytics","href":"/skill-library/reporting-and-analytics/overview"},"expanded":false,"pages":[{"title":"Automation ROI Report","href":"/skill-library/reporting-and-analytics/automation-roi-report"},{"title":"CEO Service Desk Brief","href":"/skill-library/reporting-and-analytics/ceo-service-desk-brief"},{"title":"COO Ops Review","href":"/skill-library/reporting-and-analytics/coo-ops-review"},{"title":"CSAT Trends Report","href":"/skill-library/reporting-and-analytics/csat-trends-report"},{"title":"Daily Leadership Digest","href":"/skill-library/reporting-and-analytics/daily-leadership-digest"},{"title":"First Contact Resolution Report","href":"/skill-library/reporting-and-analytics/first-contact-resolution-report"},{"title":"Morning Huddle Builder","href":"/skill-library/reporting-and-analytics/morning-huddle-builder"},{"title":"My Queue Summary","href":"/skill-library/reporting-and-analytics/my-queue-summary"},{"title":"One-on-One Prep","href":"/skill-library/reporting-and-analytics/one-on-one-prep"},{"title":"Recurring Issue Report","href":"/skill-library/reporting-and-analytics/recurring-issue-report"},{"title":"Sentiment Closure Report","href":"/skill-library/reporting-and-analytics/sentiment-closure-report"},{"title":"SLA Analytics","href":"/skill-library/reporting-and-analytics/sla-analytics"},{"title":"Staffing Model Analysis","href":"/skill-library/reporting-and-analytics/staffing-model-analysis"},{"title":"Tech Performance Review","href":"/skill-library/reporting-and-analytics/tech-performance-review"},{"title":"Trend Root-Cause Mining","href":"/skill-library/reporting-and-analytics/trend-rootcause-mining"},{"title":"Weekly Ops Report","href":"/skill-library/reporting-and-analytics/weekly-ops-report"},{"title":"Zero-Touch Opportunity Mining","href":"/skill-library/reporting-and-analytics/zero-touch-opportunity-mining"}]},{"group":"Role Rituals","icon":"repeat","root":{"title":"Role Rituals","href":"/skill-library/role-rituals/overview"},"expanded":false,"pages":[{"title":"CSM Weekly Ritual","href":"/skill-library/role-rituals/csm-weekly-ritual"},{"title":"Dispatcher Morning Ritual","href":"/skill-library/role-rituals/dispatcher-morning-ritual"},{"title":"Exec Weekly Ritual","href":"/skill-library/role-rituals/exec-weekly-ritual"},{"title":"Lead Daily Ritual","href":"/skill-library/role-rituals/lead-daily-ritual"},{"title":"Tech End-of-Day Ritual","href":"/skill-library/role-rituals/tech-eod-ritual"},{"title":"Tech Morning Ritual","href":"/skill-library/role-rituals/tech-morning-ritual"}]},{"group":"Sales \u0026 Quoting","icon":"tags","root":{"title":"Sales \u0026 Quoting","href":"/skill-library/sales-and-quoting/overview"},"expanded":false,"pages":[{"title":"Quote Preparation","href":"/skill-library/sales-and-quoting/quote-preparation"},{"title":"Sales Handoff Routing","href":"/skill-library/sales-and-quoting/sales-handoff-routing"},{"title":"SOW Drafting","href":"/skill-library/sales-and-quoting/sow-drafting"},{"title":"Tickets to Opportunities","href":"/skill-library/sales-and-quoting/tickets-to-opportunities"}]},{"group":"Scheduling \u0026 Dispatch","icon":"calendar-days","root":{"title":"Scheduling \u0026 Dispatch","href":"/skill-library/scheduling-and-dispatch/overview"},"expanded":false,"pages":[{"title":"After-Hours Coverage Handoff","href":"/skill-library/scheduling-and-dispatch/after-hours-coverage-handoff"},{"title":"Appointment No-Show Follow-Up","href":"/skill-library/scheduling-and-dispatch/appointment-noshow-followup"},{"title":"Calendar-Aware Scheduling","href":"/skill-library/scheduling-and-dispatch/calendar-aware-scheduling"},{"title":"Dispatch \u0026 Workload","href":"/skill-library/scheduling-and-dispatch/dispatch-and-workload"},{"title":"Dispatch Control Tower","href":"/skill-library/scheduling-and-dispatch/dispatch-control-tower"},{"title":"Field Visit Scheduler","href":"/skill-library/scheduling-and-dispatch/field-visit-scheduler"},{"title":"Morning Briefing","href":"/skill-library/scheduling-and-dispatch/morning-briefing"},{"title":"Morning Dispatch Report","href":"/skill-library/scheduling-and-dispatch/morning-dispatch-report"},{"title":"Pod-Based Dispatch","href":"/skill-library/scheduling-and-dispatch/pod-based-dispatch"},{"title":"Requested Time Auto-Scheduler","href":"/skill-library/scheduling-and-dispatch/requested-time-auto-scheduler"},{"title":"Reschedule Request Handling","href":"/skill-library/scheduling-and-dispatch/reschedule-request-handling"},{"title":"Round-Robin Assignment","href":"/skill-library/scheduling-and-dispatch/round-robin-assignment"},{"title":"Skill-Based Routing","href":"/skill-library/scheduling-and-dispatch/skill-based-routing"},{"title":"Smart Dispatch","href":"/skill-library/scheduling-and-dispatch/smart-dispatch"},{"title":"Staff Hours Lookup Refresh","href":"/skill-library/scheduling-and-dispatch/staff-hours-lookup-refresh"},{"title":"Technician Availability Check","href":"/skill-library/scheduling-and-dispatch/technician-availability-check"},{"title":"Tier Dispatcher","href":"/skill-library/scheduling-and-dispatch/tier-dispatcher"},{"title":"TimeZest Booking","href":"/skill-library/scheduling-and-dispatch/timezest-booking"},{"title":"Workload-Balancing Assignment","href":"/skill-library/scheduling-and-dispatch/workload-balancing-assignment"}]},{"group":"Security","icon":"shield-halved","root":{"title":"Security","href":"/skill-library/security/overview"},"expanded":false,"pages":[{"title":"Account Takeover Runbook","href":"/skill-library/security/account-takeover-runbook"},{"title":"AI Request Risk Tiering","href":"/skill-library/security/ai-request-risk-tiering"},{"title":"Breached Credential Response","href":"/skill-library/security/breached-credential-response"},{"title":"Business Email Compromise Recovery","href":"/skill-library/security/business-email-compromise-recovery"},{"title":"Compromised Account Containment","href":"/skill-library/security/compromised-account-containment"},{"title":"Credential Stuffing Response","href":"/skill-library/security/credential-stuffing-response"},{"title":"Cyber Risk Posture Review","href":"/skill-library/security/cyber-risk-posture-review"},{"title":"Dark Web Alert Lifecycle","href":"/skill-library/security/dark-web-alert-lifecycle"},{"title":"Defensive Writing Standard","href":"/skill-library/security/defensive-writing-standard"},{"title":"DLP Alert Triage","href":"/skill-library/security/dlp-alert-triage"},{"title":"DMARC SPF Failure Triage","href":"/skill-library/security/dmarc-spf-failure-triage"},{"title":"Domain Expiry Alert Lifecycle","href":"/skill-library/security/domain-expiry-alert-lifecycle"},{"title":"EDR and RMM Alert Correlation","href":"/skill-library/security/edr-rmm-alert-correlation"},{"title":"EDR Detection Runbook","href":"/skill-library/security/edr-detection-runbook"},{"title":"Email Header Analysis","href":"/skill-library/security/email-header-analysis"},{"title":"Global Admin Audit","href":"/skill-library/security/global-admin-audit"},{"title":"Identity Alert History Check","href":"/skill-library/security/identity-alert-history-check"},{"title":"Identity MFA Health Check","href":"/skill-library/security/identity-mfa-health-check"},{"title":"Impossible Travel Runbook","href":"/skill-library/security/impossible-travel-runbook"},{"title":"Inbox Rule Alert Runbook","href":"/skill-library/security/inbox-rule-alert-runbook"},{"title":"Insider Risk Basics","href":"/skill-library/security/insider-risk-basics"},{"title":"Lost or Stolen Device Response","href":"/skill-library/security/lost-stolen-device-response"},{"title":"MDR Client Onboarding","href":"/skill-library/security/mdr-client-onboarding"},{"title":"MFA Fatigue Attack Response","href":"/skill-library/security/mfa-fatigue-attack-response"},{"title":"Monthly Security Report","href":"/skill-library/security/monthly-security-report"},{"title":"New User Created Alert","href":"/skill-library/security/new-user-created-alert"},{"title":"OAuth Consent Grant Abuse","href":"/skill-library/security/oauth-consent-grant-abuse"},{"title":"Phishing Simulation Program","href":"/skill-library/security/phishing-simulation-program"},{"title":"Phishing Triage","href":"/skill-library/security/phishing-triage"},{"title":"Quarantine Release Request","href":"/skill-library/security/quarantine-release-request"},{"title":"Ransomware Response","href":"/skill-library/security/ransomware-response"},{"title":"Security Alert Response","href":"/skill-library/security/security-alert-response"},{"title":"Security Incident Postmortem","href":"/skill-library/security/security-incident-postmortem"},{"title":"Security Noise Tuning","href":"/skill-library/security/security-noise-tuning"},{"title":"Security Onboarding New Client","href":"/skill-library/security/security-onboarding-new-client"},{"title":"Session Token Theft Response","href":"/skill-library/security/session-token-theft-response"},{"title":"SOC Alert Duplicate Merge","href":"/skill-library/security/soc-alert-duplicate-merge"},{"title":"SOC Alert Intake and Correlation","href":"/skill-library/security/soc-alert-intake-correlation"},{"title":"SOC Classification Tree","href":"/skill-library/security/soc-classification-tree"},{"title":"SOC Client Email Pack","href":"/skill-library/security/soc-client-email-pack"},{"title":"SOC Shift Handoff","href":"/skill-library/security/soc-shift-handoff"},{"title":"Typosquat Domain Alert","href":"/skill-library/security/typosquat-domain-alert"},{"title":"Vendor Fraud BEC Alert","href":"/skill-library/security/vendor-fraud-bec-alert"},{"title":"Vulnerability Report Triage","href":"/skill-library/security/vulnerability-report-triage"},{"title":"Wire Fraud Verification Protocol","href":"/skill-library/security/wire-fraud-verification-protocol"},{"title":"Zero-Day Emergency Response","href":"/skill-library/security/zero-day-emergency-response"}]},{"group":"Training \u0026 Enablement","icon":"graduation-cap","root":{"title":"Training \u0026 Enablement","href":"/skill-library/training-and-enablement/overview"},"expanded":false,"pages":[{"title":"New Hire Onboarding Coach","href":"/skill-library/training-and-enablement/new-hire-onboarding-coach"},{"title":"Onboarding Plan Builder","href":"/skill-library/training-and-enablement/onboarding-plan-builder"},{"title":"Super Magic Enablement","href":"/skill-library/training-and-enablement/supermagic-enablement"},{"title":"Ticket Review Training","description":"Turn a real resolved ticket into a sanitized teaching case with what was done well, what could improve, and the transferable lesson for team review.","href":"/skill-library/training-and-enablement/ticket-review-training"}]},{"group":"Triage \u0026 Routing","icon":"signs-post","root":{"title":"Triage \u0026 Routing","href":"/skill-library/triage-and-routing/overview"},"expanded":false,"pages":[{"title":"Alert Client Resolver via Liongard","description":"When a security or monitoring alert lands on a catchall company, resolve the real client from the hostname in the alert using Liongard, then PSA configurations, then the ticket text.","href":"/skill-library/triage-and-routing/alert-client-resolver-liongard"},{"title":"Alert Site to Client Mapping","description":"Read the network or site name from a vendor alert ticket and assign the right client contact from a lookup table you maintain, so the ticket leaves the vendor's alert contact and downstream flows can match it.","href":"/skill-library/triage-and-routing/alert-site-client-mapping"},{"title":"Alert Storm Merge","description":"Collapse a burst of identical alert tickets fired within a few hours into the earliest ticket as parent, so a flapping monitor does not flood the queue.","href":"/skill-library/triage-and-routing/alert-storm-merge"},{"title":"Alert Title Normalization","description":"Classify a monitoring or security alert ticket and rewrite its title into the desk's standard format using a controlled vocabulary, with an internal note.","href":"/skill-library/triage-and-routing/alert-title-normalization"},{"title":"Alert Title Standardizer","description":"Rewrite a security or monitoring alert ticket title into one standard shape of tool, company, alert and asset, so the board sorts, searches and bundles cleanly.","href":"/skill-library/triage-and-routing/alert-title-standardizer"},{"title":"Auto Priority Classification","description":"Set a ticket's priority from its title and description against the partner's own priority definitions: built for alert boards and intake flows.","href":"/skill-library/triage-and-routing/auto-priority-classification"},{"title":"Billable Scope Router","description":"Decide at intake whether a request is covered by the managed agreement or billable project work, using your contract's own criteria, and route it to the matching board with the rule cited.","href":"/skill-library/triage-and-routing/billable-scope-router"},{"title":"Board Routing Rules Engine","description":"Route catch-all tickets to the right board (NOC, procurement, security, help desk) by walking a prioritized keyword-and-signal rule list to a result.","href":"/skill-library/triage-and-routing/board-routing-rules-engine"},{"title":"Catchall Asset Cross-Reference","description":"Find the real client for a catch-all or no-company ticket by matching the hostname, device or asset it names against your RMM, documentation tool and recent tickets, when the sender and body give no company.","href":"/skill-library/triage-and-routing/catchall-asset-crossref"},{"title":"Catchall Noise Gate","description":"Classify a ticket sitting on a catchall company as vendor noise, sales email, spam, real ticket or uncertain, and auto-close it only when five independent gates all pass.","href":"/skill-library/triage-and-routing/catchall-noise-gate"},{"title":"Catchall Routing","description":"Identify the correct client and contact for a ticket that landed in a catchall or no-company mailbox, including forwarded mail and vendor alert routing.","href":"/skill-library/triage-and-routing/catchall-routing"},{"title":"Courtesy Reply Status Revert","description":"When a thanks-only client reply flips a resolved ticket back to open, revert it to the correct status per a fixed per-board map, the only permitted write.","href":"/skill-library/triage-and-routing/courtesy-reply-status-revert"},{"title":"Cross-Client Outage Detector","description":"Spot the same symptom appearing across multiple clients within a short window, flag a possible vendor or major incident, and propose a parent incident ticket.","href":"/skill-library/triage-and-routing/cross-client-outage-detector"},{"title":"Default Contact Autofill","description":"When a ticket arrives with no contact, look up the company's documented default contact, confirm with a search, and assign under a confidence gate.","href":"/skill-library/triage-and-routing/default-contact-autofill"},{"title":"Dispatcher Intake","description":"Attended chat intake for dispatchers: describe the issue and get back a ticket with board, type, priority, summary, and first-touch note attached.","href":"/skill-library/triage-and-routing/dispatcher-intake"},{"title":"Duplicate Hunter","description":"Check whether a ticket duplicates an existing open ticket for the same client, contact or asset, and symptom, and merge only on an exact reference match.","href":"/skill-library/triage-and-routing/duplicate-hunter"},{"title":"Intake Classification Tree","description":"Walk a new ticket through the Incident, Request, or Problem decision tree and recommend a matching type, subtype, and item for consistent classification.","href":"/skill-library/triage-and-routing/intake-classification-tree"},{"title":"Monitoring Companion Merge","description":"Merge companion tickets that multiple monitoring tools opened for the same event on one device, folding them into a single parent within a time buffer.","href":"/skill-library/triage-and-routing/monitoring-companion-merge"},{"title":"Multi-Issue Ticket Splitter","description":"Detect when one ticket bundles two or more distinct problems and split it into cross-linked sibling tickets, one purpose each, with tech confirmation.","href":"/skill-library/triage-and-routing/multi-issue-ticket-splitter"},{"title":"New Ticket First Touch","description":"One-pass first touch on a new ticket: classify it, check duplicates, pull similar resolved tickets, and draft an acknowledgment for the tech to review.","href":"/skill-library/triage-and-routing/new-ticket-first-touch"},{"title":"Noise Auto-Close","description":"Close pure-noise tickets (bounce-backs, vendor auto-replies, thanks-only messages, reconnected offline alerts) behind independent stop conditions.","href":"/skill-library/triage-and-routing/noise-auto-close"},{"title":"Prior Resolution","description":"On a new ticket, find how the same problem was actually fixed on past resolved tickets and in the knowledge base, and report the fix with ticket numbers as an internal note.","href":"/skill-library/triage-and-routing/prior-resolution"},{"title":"Priority Downgrade Guard","description":"On a priority change, if AI triage lowered a priority a human or client explicitly set higher, restore the higher priority: deterministic, restore only.","href":"/skill-library/triage-and-routing/priority-downgrade-guard"},{"title":"Queue Scoring Triage","description":"Produce a ranked triage order for the queue using two-layer scoring (a per-queue baseline plus per-ticket modifiers), so techs work the right ticket next.","href":"/skill-library/triage-and-routing/queue-scoring-triage"},{"title":"RE/FW Reopen Detection","description":"When a new ticket subject starts with RE: or FW: on a recently closed subject, find the closed parent and flag it as a reopen instead of working new.","href":"/skill-library/triage-and-routing/re-fw-reopen-detection"},{"title":"Reassign Contact Submitted On Behalf Of","description":"Catch tickets one person opened for a colleague (\"submitting this on behalf of Jane\") and move the ticket's contact to the person the request is actually for, so it's attributed, notified, and reported against the right end user.","href":"/skill-library/triage-and-routing/on-behalf-contact-reassignment"},{"title":"Route, Assign and Document","description":"Take a ticket off the intake board end to end: send it to the right queue, assign the best-suited available technician, explain both choices with supporting docs, and log the time.","href":"/skill-library/triage-and-routing/route-assign-and-document"},{"title":"Scheduling Intent Detector","description":"Find \"can we get on a call / book a time\" requests hiding in recent tickets and route them to scheduling, skipping tickets where a tech has already engaged.","href":"/skill-library/triage-and-routing/scheduling-intent-detector"},{"title":"Sentiment Score Explainer","description":"Explain why a ticket thread received its sentiment score by citing the exact messages that drove it, no hand-waving, no re-scoring.","href":"/skill-library/triage-and-routing/sentiment-score-explainer"},{"title":"Spam Sender Triage","description":"Close tickets from known-spam senders and patterns after verifying a human did not forward the message in for investigation or phishing analysis.","href":"/skill-library/triage-and-routing/spam-sender-triage"},{"title":"Ticket Triage","description":"Classify a new or unassigned ticket, gauge severity, catch duplicates, and route it to the right board, status, and priority for the queue.","href":"/skill-library/triage-and-routing/ticket-triage"},{"title":"Triage Category","description":"Set the category on a new ticket whose category is empty, using learned rules first, then how techs filed similar tickets, then your desk's own category rules.","href":"/skill-library/triage-and-routing/triage-category"},{"title":"Triage Priority","description":"Set the priority on a new ticket whose priority is empty from impact and urgency, checked against learned rules and how techs prioritized similar tickets.","href":"/skill-library/triage-and-routing/triage-priority"},{"title":"Triage Similar Tickets","description":"Find closed tickets about the same product and problem and report how your techs finally filed them, as evidence for setting category, type and priority on a new ticket.","href":"/skill-library/triage-and-routing/triage-similar-tickets"},{"title":"Triage Ticket Type","description":"Recommend the right ticket type for a new ticket still on the PSA default, telling broken from requested, so a technician can change it.","href":"/skill-library/triage-and-routing/triage-ticket-type"},{"title":"Urgent Deadline Watch","description":"Catch a client-stated deadline inside four hours or already passed, raise the priority, and flag it internally. Availability is not a deadline.","href":"/skill-library/triage-and-routing/urgent-deadline-watch"},{"title":"VIP Priority Handling","description":"Detect VIP contacts and VIP clients at ticket intake, apply the configured priority bump, and fire notify rules without letting VIP status skew triage.","href":"/skill-library/triage-and-routing/vip-priority-handling"}]},{"group":"Troubleshooting Playbooks","icon":"screwdriver-wrench","root":{"title":"Troubleshooting Playbooks","href":"/skill-library/troubleshooting-playbooks/overview"},"expanded":false,"pages":[{"title":"AD CS / Internal PKI Issues","href":"/skill-library/troubleshooting-playbooks/adcs-pki-issues"},{"title":"AD Replication Issues","href":"/skill-library/troubleshooting-playbooks/ad-replication-issues"},{"title":"Adobe Creative Cloud Licensing","href":"/skill-library/troubleshooting-playbooks/adobe-cc-licensing"},{"title":"AutoCAD / Revit Issues","href":"/skill-library/troubleshooting-playbooks/autocad-revit-issues"},{"title":"Backup Restore Request","href":"/skill-library/troubleshooting-playbooks/backup-restore-request"},{"title":"Browser Issues","href":"/skill-library/troubleshooting-playbooks/browser-issues"},{"title":"BSOD Analysis","href":"/skill-library/troubleshooting-playbooks/bsod-analysis"},{"title":"Citrix Basics","href":"/skill-library/troubleshooting-playbooks/citrix-basics"},{"title":"DFS Namespace and Replication","href":"/skill-library/troubleshooting-playbooks/dfs-namespace-replication"},{"title":"DHCP Server Issues","href":"/skill-library/troubleshooting-playbooks/dhcp-server-issues"},{"title":"DMARC / SPF / DKIM Setup","href":"/skill-library/troubleshooting-playbooks/dmarc-spf-dkim-setup"},{"title":"DNS \u0026 Domain Issues","href":"/skill-library/troubleshooting-playbooks/dns-domain-issues"},{"title":"Entra Connect Sync Errors","href":"/skill-library/troubleshooting-playbooks/entra-connect-sync-errors"},{"title":"Exchange Hybrid Issues","href":"/skill-library/troubleshooting-playbooks/exchange-hybrid-issues"},{"title":"Exchange On-Prem Mail Flow","href":"/skill-library/troubleshooting-playbooks/exchange-onprem-mailflow"},{"title":"Fax \u0026 eFax","href":"/skill-library/troubleshooting-playbooks/fax-and-efax"},{"title":"File Share Permissions","href":"/skill-library/troubleshooting-playbooks/file-share-permissions"},{"title":"Group Policy Troubleshooting","href":"/skill-library/troubleshooting-playbooks/group-policy-troubleshooting"},{"title":"Hardware Diagnostics","href":"/skill-library/troubleshooting-playbooks/hardware-diagnostics"},{"title":"Hyper-V Clustering","href":"/skill-library/troubleshooting-playbooks/hyperv-clustering"},{"title":"IIS Web App","href":"/skill-library/troubleshooting-playbooks/iis-web-app"},{"title":"Internal DNS Server Issues","href":"/skill-library/troubleshooting-playbooks/internal-dns-server-issues"},{"title":"Label and Receipt Printers","href":"/skill-library/troubleshooting-playbooks/label-receipt-printers"},{"title":"LOB Application Framework","href":"/skill-library/troubleshooting-playbooks/lob-application-framework"},{"title":"LOB Database Locks","href":"/skill-library/troubleshooting-playbooks/lob-database-locks"},{"title":"M365 Sign-in Issues","href":"/skill-library/troubleshooting-playbooks/m365-signin-issues"},{"title":"Mac Support","href":"/skill-library/troubleshooting-playbooks/mac-support"},{"title":"Mail Flow \u0026 Delivery","href":"/skill-library/troubleshooting-playbooks/mail-flow-delivery"},{"title":"Mobile Device \u0026 MDM","href":"/skill-library/troubleshooting-playbooks/mobile-device-mdm"},{"title":"Mobile Email Setup","href":"/skill-library/troubleshooting-playbooks/mobile-email-setup"},{"title":"NetSuite ERP","href":"/skill-library/troubleshooting-playbooks/netsuite-erp"},{"title":"Network Share Slowness","href":"/skill-library/troubleshooting-playbooks/network-share-slowness"},{"title":"Office Activation \u0026 Licensing","href":"/skill-library/troubleshooting-playbooks/office-activation-licensing"},{"title":"On-Prem to Cloud File Migration","href":"/skill-library/troubleshooting-playbooks/onprem-to-cloud-file-migration"},{"title":"OneDrive / SharePoint Sync","href":"/skill-library/troubleshooting-playbooks/onedrive-sharepoint-sync"},{"title":"OneDrive Known Folder Move","href":"/skill-library/troubleshooting-playbooks/onedrive-known-folder-move"},{"title":"Outlook Client Issues","href":"/skill-library/troubleshooting-playbooks/outlook-client-issues"},{"title":"Outlook Search Issues","href":"/skill-library/troubleshooting-playbooks/outlook-search-issues"},{"title":"PaperCut / PrinterLogic","href":"/skill-library/troubleshooting-playbooks/papercut-printerlogic"},{"title":"POS System Issues","href":"/skill-library/troubleshooting-playbooks/pos-system-issues"},{"title":"Printer Troubleshooting","href":"/skill-library/troubleshooting-playbooks/printer-troubleshooting"},{"title":"QuickBooks Desktop Multi-User","href":"/skill-library/troubleshooting-playbooks/quickbooks-desktop-multiuser"},{"title":"QuickBooks Online Issues","href":"/skill-library/troubleshooting-playbooks/quickbooks-online-issues"},{"title":"RADIUS / NPS Authentication","href":"/skill-library/troubleshooting-playbooks/radius-nps-auth"},{"title":"RD Gateway Issues","href":"/skill-library/troubleshooting-playbooks/rd-gateway-issues"},{"title":"RDS / AVD Troubleshooting","href":"/skill-library/troubleshooting-playbooks/rds-avd-troubleshooting"},{"title":"Roaming Profiles \u0026 FSLogix","href":"/skill-library/troubleshooting-playbooks/roaming-profiles-fslogix"},{"title":"Sage 50 / Sage 100","href":"/skill-library/troubleshooting-playbooks/sage-50-100"},{"title":"SCADA / OT Awareness","href":"/skill-library/troubleshooting-playbooks/scada-ot-awareness"},{"title":"Scanner \u0026 Copier Fleet","href":"/skill-library/troubleshooting-playbooks/scanner-copier-fleet"},{"title":"SharePoint On-Prem","href":"/skill-library/troubleshooting-playbooks/sharepoint-onprem"},{"title":"Slow Computer","href":"/skill-library/troubleshooting-playbooks/slow-computer"},{"title":"SQL Backup and Maintenance","href":"/skill-library/troubleshooting-playbooks/sql-backup-maintenance"},{"title":"SQL Server Performance","href":"/skill-library/troubleshooting-playbooks/sql-server-performance"},{"title":"SSL Certificate Renewal","href":"/skill-library/troubleshooting-playbooks/ssl-certificate-renewal"},{"title":"SSL Inspection Issues","href":"/skill-library/troubleshooting-playbooks/ssl-inspection-issues"},{"title":"Teams Call Quality","href":"/skill-library/troubleshooting-playbooks/teams-call-quality"},{"title":"Teams Issues","href":"/skill-library/troubleshooting-playbooks/teams-issues"},{"title":"Teams Rooms AV","href":"/skill-library/troubleshooting-playbooks/teams-rooms-av"},{"title":"Ticket Research Copilot","href":"/skill-library/troubleshooting-playbooks/ticket-research-copilot"},{"title":"Troubleshooting Ladder","href":"/skill-library/troubleshooting-playbooks/troubleshooting-ladder"},{"title":"Veeam Restore Operations","href":"/skill-library/troubleshooting-playbooks/veeam-restore-operations"},{"title":"Vendor Outage Checker","href":"/skill-library/troubleshooting-playbooks/vendor-outage-checker"},{"title":"VMware vSAN and vMotion","href":"/skill-library/troubleshooting-playbooks/vmware-vsan-vmotion"},{"title":"VoIP Phone Matrix","href":"/skill-library/troubleshooting-playbooks/voip-phone-matrix"},{"title":"VPN Troubleshooting","href":"/skill-library/troubleshooting-playbooks/vpn-troubleshooting"},{"title":"Wi-Fi \u0026 Network Troubleshooting","href":"/skill-library/troubleshooting-playbooks/wifi-network-troubleshooting"},{"title":"Windows 11 Migration Issues","href":"/skill-library/troubleshooting-playbooks/windows-11-migration-issues"},{"title":"Windows Profile Corruption","href":"/skill-library/troubleshooting-playbooks/windows-profile-corruption"},{"title":"Windows Update Client Failures","href":"/skill-library/troubleshooting-playbooks/windows-update-client-failures"},{"title":"WSUS Patching Infrastructure","href":"/skill-library/troubleshooting-playbooks/wsus-patching-infrastructure"}]},{"group":"Vendor Runbooks","icon":"handshake","root":{"title":"Vendor Runbooks","href":"/skill-library/vendor-runbooks/overview"},"expanded":false,"pages":[{"title":"1Password Business","href":"/skill-library/vendor-runbooks/onepassword-business"},{"title":"Abnormal Security","href":"/skill-library/vendor-runbooks/abnormal-security"},{"title":"Acronis Cyber Protect","href":"/skill-library/vendor-runbooks/acronis-cyber-protect"},{"title":"APC UPS Alerts","href":"/skill-library/vendor-runbooks/apc-ups-alerts"},{"title":"Arctic Wolf MDR","href":"/skill-library/vendor-runbooks/arctic-wolf-mdr"},{"title":"Auvik Network Monitoring","href":"/skill-library/vendor-runbooks/auvik-network-monitoring"},{"title":"Axcient Backup Alerts","href":"/skill-library/vendor-runbooks/axcient-backup-alerts"},{"title":"Bitdefender GravityZone","href":"/skill-library/vendor-runbooks/bitdefender-gravityzone"},{"title":"Bitwarden Business","href":"/skill-library/vendor-runbooks/bitwarden-business"},{"title":"Blackpoint SOC Response","href":"/skill-library/vendor-runbooks/blackpoint-soc-response"},{"title":"Cork Protection Posture","href":"/skill-library/vendor-runbooks/cork-protection"},{"title":"Cove Data Protection Alerts","href":"/skill-library/vendor-runbooks/cove-data-protection"},{"title":"CrowdStrike Falcon Alerts","href":"/skill-library/vendor-runbooks/crowdstrike-falcon-alerts"},{"title":"Datto BCDR Verification","href":"/skill-library/vendor-runbooks/datto-bcdr-verification"},{"title":"Defender M365 Alerts","href":"/skill-library/vendor-runbooks/defender-m365-alerts"},{"title":"Defender Quarantine Ops","href":"/skill-library/vendor-runbooks/defender-quarantine-ops"},{"title":"DNS Filtering Alerts","href":"/skill-library/vendor-runbooks/dns-filtering-alerts"},{"title":"Duo MFA Anomalies","href":"/skill-library/vendor-runbooks/duo-mfa-anomalies"},{"title":"Email Security Notice Auto-Close","href":"/skill-library/vendor-runbooks/email-security-notice-auto-close"},{"title":"ESET PROTECT","href":"/skill-library/vendor-runbooks/eset-protect"},{"title":"Huntress EDR Incident","href":"/skill-library/vendor-runbooks/huntress-edr-incident"},{"title":"Huntress ITDR Alerts","href":"/skill-library/vendor-runbooks/huntress-itdr-alerts"},{"title":"IRONSCALES Phishing","href":"/skill-library/vendor-runbooks/ironscales"},{"title":"Kaseya Dark Web Monitoring","href":"/skill-library/vendor-runbooks/kaseya-darkweb-monitoring"},{"title":"Keeper Password Manager","href":"/skill-library/vendor-runbooks/keeper-password-manager"},{"title":"KnowBe4 Awareness \u0026 PhishER","href":"/skill-library/vendor-runbooks/knowbe4-awareness"},{"title":"LastPass Migration","href":"/skill-library/vendor-runbooks/lastpass-migration"},{"title":"M365 SaaS Backup","href":"/skill-library/vendor-runbooks/m365-backup-saas"},{"title":"Mimecast Email Gateway","href":"/skill-library/vendor-runbooks/mimecast-email-gateway"},{"title":"NinjaOne Alert Types","href":"/skill-library/vendor-runbooks/ninjaone-alert-types"},{"title":"Proofpoint Email Security","href":"/skill-library/vendor-runbooks/proofpoint-email-security"},{"title":"SaaS Alerts MDR","href":"/skill-library/vendor-runbooks/saas-alerts-mdr"},{"title":"ScreenConnect Access","href":"/skill-library/vendor-runbooks/screenconnect-access"},{"title":"Security Vendor Generic","href":"/skill-library/vendor-runbooks/security-vendor-generic"},{"title":"SentinelOne Ranger","href":"/skill-library/vendor-runbooks/sentinelone-ranger"},{"title":"SentinelOne Threat Verdict","href":"/skill-library/vendor-runbooks/sentinelone-threat-verdict"},{"title":"Sophos Endpoint Alerts","href":"/skill-library/vendor-runbooks/sophos-endpoint-alerts"},{"title":"Synology NAS Alerts","href":"/skill-library/vendor-runbooks/synology-nas-alerts"},{"title":"TeamViewer Access","href":"/skill-library/vendor-runbooks/teamviewer-access"},{"title":"ThreatDown Malwarebytes","href":"/skill-library/vendor-runbooks/threatdown-malwarebytes"},{"title":"ThreatLocker Allowlisting","href":"/skill-library/vendor-runbooks/threatlocker-allowlisting"},{"title":"Todyl Platform","href":"/skill-library/vendor-runbooks/todyl-platform"},{"title":"Trend Micro Worry-Free","href":"/skill-library/vendor-runbooks/trendmicro-worryfree"},{"title":"Veeam Job Failures","href":"/skill-library/vendor-runbooks/veeam-job-failures"},{"title":"WatchGuard Firewall Alerts","href":"/skill-library/vendor-runbooks/watchguard-firewall-alerts"},{"title":"Webroot Legacy AV","href":"/skill-library/vendor-runbooks/webroot-legacy-av"}]},{"group":"Voice \u0026 Messenger","icon":"phone","root":{"title":"Voice \u0026 Messenger","href":"/skill-library/voice-and-messenger/overview"},"expanded":false,"pages":[{"title":"After-Hours Voicemail Digest","href":"/skill-library/voice-and-messenger/after-hours-voicemail-digest"},{"title":"Chat-to-Ticket Conversion","href":"/skill-library/voice-and-messenger/chat-to-ticket-conversion"},{"title":"Dead-Air Call Filter","href":"/skill-library/voice-and-messenger/dead-air-call-filter"},{"title":"Live Chat Etiquette","href":"/skill-library/voice-and-messenger/live-chat-etiquette"},{"title":"Messenger Deployment Audit","href":"/skill-library/voice-and-messenger/messenger-deployment-audit"},{"title":"Messenger Outage Banner","href":"/skill-library/voice-and-messenger/messenger-outage-banner"},{"title":"Voice Call QA Review","href":"/skill-library/voice-and-messenger/voice-call-qa-review"},{"title":"Voice Catchall Identification","href":"/skill-library/voice-and-messenger/voice-catchall-identification"},{"title":"Voice Transcript Intake","href":"/skill-library/voice-and-messenger/voice-transcript-intake"},{"title":"Voicemail to Ticket","href":"/skill-library/voice-and-messenger/voicemail-to-ticket"}]}]}]},{"tab":"Resources","icon":"folder-open","pages":[{"title":"Resources","href":"/events-and-resources"}]}]},"basePath":"","title":"Triage \u0026 Routing - Thread Docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Dlc3Qr3h.js","dist-D2J8knkn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Dq9TQuNi.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}