1"use strict";(globalThis.webpackChunkopsworker_docs=globalThis.webpackChunkopsworker_docs||[]).push([[769],{9516(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"configuration/notification-routing","title":"Notification Routing","description":"Route OpsWorker investigation results to Slack. Routing maps each cluster and namespace to a single Slack channel, configured in the Slack integration.","source":"@site/docs/configuration/notification-routing.md","sourceDirName":"configuration","slug":"/configuration/notification-routing","permalink":"/docs/configuration/notification-routing","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"description":"Route OpsWorker investigation results to Slack. Routing maps each cluster and namespace to a single Slack channel, configured in the Slack integration."},"sidebar":"docs","previous":{"title":"Create and Edit Alert Rules","permalink":"/docs/configuration/alert-rules/create-edit"},"next":{"title":"Architecture Overview","permalink":"/docs/architecture/overview"}}');var r=t(4848),o=t(8453);const s={description:"Route OpsWorker investigation results to Slack. Routing maps each cluster and namespace to a single Slack channel, configured in the Slack integration."},c="Notification Routing",a={},l=[{value:"Overview",id:"overview",level:2},{value:"Setup",id:"setup",level:2},{value:"Configure Channel Routing",id:"configure-channel-routing",level:3},{value:"Routing Examples",id:"routing-examples",level:2},{value:"Next Steps",id:"next-steps",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"notification-routing",children:"Notification Routing"})}),"\n",(0,r.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsx)(n.p,{children:"Notification routing controls which Slack channel receives investigation results. Routing is configured inside the Slack integration screen and works at one level only: per (cluster + namespace) to one Slack channel."}),"\n",(0,r.jsx)(n.p,{children:"There is no per-workspace routing, no severity-based routing, no default channel, no per-user routing, and no escalation policies."}),"\n",(0,r.jsx)(n.h2,{id:"setup",children:"Setup"}),"\n",(0,r.jsx)(n.h3,{id:"configure-channel-routing",children:"Configure Channel Routing"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Open the Slack integration screen for the cluster"}),"\n",(0,r.jsx)(n.li,{children:"Add a routing entry: select a namespace and the Slack channel it should post to"}),"\n",(0,r.jsx)(n.li,{children:"Save"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Repeat for each namespace you want to route. Configuring routing requires the Admin role."}),"\n",(0,r.jsx)(n.h2,{id:"routing-examples",children:"Routing Examples"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Cluster"}),(0,r.jsx)(n.th,{children:"Namespace"}),(0,r.jsx)(n.th,{children:"Slack Channel"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"production-us-east"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"payments"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"#payments-incidents"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"production-us-east"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"checkout"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"#checkout-incidents"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"staging"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"monitoring"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"#staging-alerts"})})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/integrations/slack",children:"Slack Integration"})," - Slack setup"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/capabilities/alert-intelligence/daily-digest",children:"Daily Digest"})," - Daily summary details"]}
1),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>s,x:()=>c});var i=t(6540);const r={},o=i.createContext(r);function s(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.