## Intro

Communication Planning is not an announcement blast. It is the deliberate design of audiences, decisions and actions, message architecture, timing, channels, owners, feedback, confirmation, escalation, and evidence. In technology organizations, this discipline separates controlled change from costly confusion.

This article turns a sensitive, high-impact case into decision-grade practice: a B2B SaaS provider rolling out a new role-based permission model. All organization details and numbers below are hypothetical and constructed to illustrate the approach.

## What Communication Planning is (and is not)

Communication Planning is a management tool that:

- Aligns decisions, sequences actions, controls risk, and verifies adoption.

- Produces message variants tied to specific audiences, decisions, and deadlines.

- Builds confirmation and fallback paths so leaders can continue, modify, pause, or roll back with intent.

It is not:

- Stakeholder mapping alone. Mapping who matters is necessary but insufficient without decisions, action requests, and timing.

- Generic project reporting. Reporting describes progress; Communication Planning causes progress by enabling the next right action.

- Marketing communications. The goal here is correct behavior and safe rollout, not acquisition.

- Incident communications. This is for planned changes, not time-critical incident playbooks.

- RACI by itself. RACI defines delivery roles; Communication Planning adds owners for messages, confirmation, and escalation.

- Broad change management end-to-end. It is the decision and message arm within the wider change discipline.

When to use it:

- Any change that requires coordinated decisions or actions by multiple groups.

- Changes with risk to security, data, revenue, or trust (e.g., permissions, billing, SSO, API scopes).

- Cross-region or multi-channel rollouts where a single broadcast will fail.

## Governance and decision rights

- Executive sponsor: CIO (accountable for outcomes and guardrails; can pause the rollout).

- Communication owner: Change lead or program manager integrating product, engineering, security, support, and regional enablement.

- Product and engineering: Source of truth on capabilities, timelines, and technical risk.

- Security: Approves permission design, migration safety, and risk language.

- Support and Customer Success: Frontline readiness, feedback capture, and targeted outreach.

- Affected users (admins, security officers, integrators): Provide confirmation, objections, and local constraints.

- Approval thresholds: Any unresolved high-risk objection or forecast privileged lockout rate >0.1% triggers go/no-go with the CIO.

- Dissent: Capture written pre-reads, require explicit yes/no on approvals, and record objections with assumptions and owners.

- Escalation: Communication owner escalates guardrail breaches to CIO; security leads any incident-level access issue.

## Illustrative case: introducing role-based permissions in a B2B SaaS

Context (hypothetical): A mid-size B2B SaaS product moves from coarse admin roles to granular role-based permissions. Impact: access control, auditability, and admin workflows. Risks include lockouts, privilege misassignment, and failed partner integrations.

Objectives (hypothetical):

- Primary outcome: 60% of target admins complete a pre-migration checklist within 14 days of notification.

- Guardrails: <2% of active admins contact support about access confusion; zero privileged-account lockouts; unsubscribe rate from product notifications <0.2%; no increase in after-hours escalations during the first 30 days.

## Segment audiences by impact, influence, action, readiness, dependency, and risk

A single broadcast creates noise and misses critical actions. Segmenting focuses attention and reduces risk.

### Stakeholder and audience communication matrix (illustrative)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Audience segment</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Impact of change</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Influence on success</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Required action</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Readiness signal</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Dependencies</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Risk if wrong</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Primary channel</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Owner</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Primary workspace admins</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">High: new roles to assign, checklist to complete</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">High</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Complete pre-migration checklist; assign roles</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Prior completion of similar tasks; product usage depth</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Access to user list; understanding of team duties</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lockouts; misassigned privileges</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app task and targeted email</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security officers (customer)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">High: must review access and audit</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium-high</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Approve role mappings; confirm audit coverage</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Presence of formal security function</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Audit policy requirements</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Compliance gaps; delays</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Email plus 30-min briefing webinar</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security PM</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Billing or Procurement contacts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium: may handle seat or plan changes</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Low-medium</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Acknowledge billing roles unaffected</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Ticket history; past confusion</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Contract terms and renewal dates</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Unnecessary support noise</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Note in invoice email with CC</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Finance ops</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Internal Customer Success Managers</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium: support key accounts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">High</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Proactively brief top accounts; confirm checklist completion</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Enablement completion</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CRM account coverage</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Surprise escalations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Playbook and CRM tasks</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CS enablement</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Internal Support agents</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium: will triage issues</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">High</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Use new triage tags; follow permission scripts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Training attendance and quiz</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Help center updates</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Misdirected fixes; longer handle time</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Help center update and huddle</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Partner integrators (API)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium-high: token scopes may change</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Medium</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Validate scopes in staging; update clients</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Sandbox activity</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">API version availability</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Failed integrations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Dev newsletter and portal notice</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Developer relations</td></tr></tbody>
</table>
</div>

## Design the message architecture

Every message must point to a decision or action, include evidence, and define confirmation and fallback.

### Message architecture (illustrative)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Audience</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Purpose</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Consequence</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Requested action</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Evidence/support</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Owner</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Timing</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Channel</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Confirmation</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Fallback</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Escalation</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Primary admins</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Drive safe migration prep</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Avoid lockouts; ensure least privilege</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Complete checklist; assign roles to top 5 users</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Screenshots; migration plan; FAQ</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Day 0 with reminders at +3, +7</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app task and email</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">System event: checklist complete</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Auto-reminders; safe defaults on deadline</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead to CIO if guardrail breach</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security officers</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Secure approval and audit sign-off</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Prevent compliance and audit gaps</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Review mapping; sign acknowledgement</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Audit notes; diffs; log coverage</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security PM</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Day 3; webinar Day 5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Email plus webinar</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Form acknowledgement; attendance</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Direct CSM follow-up</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security PM to CIO if &gt;10% no-response</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CSMs</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Enable proactive customer guidance</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Reduce surprise escalations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Brief top accounts; track completion</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Playbook; one-pager; talk track</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CS enablement</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Day 1; weekly standups</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CRM tasks and enablement session</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CRM task closure</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Manager review; reassignment</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Head of CS if red flags cluster</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support agents</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Prepare for new issue patterns</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lower handle time; avoid misroutes</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Use new tags; follow scripts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Help center; macro set</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support lead</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Day -2 training; refresh Day 7</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Training and huddle</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Quiz pass; macro usage</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Shadowing; buddy checks</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support director if handle time spikes</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Partner integrators</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Validate API scope impacts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Prevent failed calls at cutover</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Test scopes in staging; update clients</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Portal notice; examples</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Dev relations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Day 2; reminder Day 6</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Dev newsletter and portal</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Sandbox logs; confirmation form</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">1:1 outreach to top partners</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Eng lead if failure rate &gt; threshold</td></tr></tbody>
</table>
</div>

## Pilot, sequencing, and decision gates

Pilot to de-risk language and timing before broad exposure. Keep variables tight so you can attribute effects to choices. Example pilot (hypothetical): internal staff tenants, 20 low-risk customer tenants, and new test workspaces. Exclude privileged or regulated accounts from early waves. Single-variable test: admin email with vs. without before/after permission screenshots; success metric: checklist starts within 48 hours; guardrails: no increase in support contacts for the pilot cohort; no uptick in access exceptions.

### Staged rollout and decision table (illustrative)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Stage</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Audience</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Decision/action</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Owner</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Channel</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Evidence of completion</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Continue if</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Modify if</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Pause if</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Rollback if</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Escalation trigger</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pilot (Week 1)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Internal admins and 20 low-risk tenants</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Complete checklist; assign roles to 5 users</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app and email</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">System event: checklist complete</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Checklist starts &gt;50% in 48h; no guardrail breach</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Open rate low; tweak subject or visuals</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support volume up &gt;20% 2 days</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Any privileged lockout</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;0.1% lockouts or &gt;1% access tickets</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Stage 1 (Week 2)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Top 50 accounts with CSM</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Same; CSM confirms</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CS enablement</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CSM outreach and in-app</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CRM task closed; system event</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Completion trend &gt;= pilot</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Confusion on mapping; update FAQ</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CSM red flags on risk</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Multiple admin lockouts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Any privileged lockout or CSM red flag</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Stage 2 (Week 3)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Remaining admins</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Same</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app and email</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">System event; auto-reminders</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Completion &gt;=60% by day 14</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Region lags; add timezone-specific sends</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3 days of rising support &gt;20%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Integration failure spikes</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support spike trend sustained 3 days</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Stage 3 (Week 4)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security officers</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Approve mappings; confirm audit</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security PM</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Email and webinar</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Form acknowledgement; attendance</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Response rate &gt;=90%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Add alternate time slots</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;10% no-response by deadline</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Concerns invalidate design</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">No-response over threshold</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Cleanup (Week 5)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Non-responders</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Forced migration with safe defaults</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Product owner</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app banner and final email</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Migration job success</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Error rates within targets</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Extend window for key accounts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Error rates exceed targets</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lockouts trend upward</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Failed integrations or lockouts spike</td></tr></tbody>
</table>
</div>

## Measurement: do not confuse reach with adoption

Opens and attendance are exposure, not comprehension or behavior. Track indicators that predict and verify adoption, plus guardrails that protect value and trust.

### Communication measurement plan (illustrative)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Category</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Metric</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Definition</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Target (example)</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Instrument</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Leading</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Message reach</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent of intended recipients who saw the message (deduped)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;90%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Send logs and in-app impressions</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Leading</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Comprehension check</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent correct on 2-question in-app quiz</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;80%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">In-app survey</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Leading</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Checklist starts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent starting within 48 hours</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;50%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Product analytics</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Outcome</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Task completion</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent completing checklist by day 14</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;=60%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Product analytics</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Outcome</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Adoption quality</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent of workspaces using recommended templates by day 30</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;=70%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Config telemetry</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Outcome</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">7-day retention</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent maintaining new roles without rollback</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&gt;=95%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change audit logs</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Diagnostic</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support contacts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Volume by issue tag per 1,000 admins</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Trending down by week 3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Ticket system tags</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Diagnostic</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Permission errors</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Error rate per 10k role assignments</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&lt;2</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Error tracking</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Diagnostic</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Failed integrations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Percent API calls failing due to scope</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&lt;0.5%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">API gateway logs</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Guardrail</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lockouts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Count of privileged-account lockouts</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">0</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security alerts</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Guardrail</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">After-hours escalations</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Off-hours P1 and P2 caused by rollout</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">No increase vs. baseline</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pager logs</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Guardrail</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Notification unsubscribes</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Unsubscribe rate tied to rollout emails</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">&lt;0.2%</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Email platform logs</td></tr></tbody>
</table>
</div>

## Handling dissent, accessibility, language, frontline feedback, and change control

- Dissent and unresolved objections: Require explicit approvals with written positions; record objections and owners; timebox response windows; escalate unresolved high-risk items to the CIO before each gate.

- Accessibility and language needs: Provide alt text, readable contrast, and screen-reader-friendly content; schedule briefings across time zones; offer translated versions for major regions; avoid jargon without definitions.

- Frontline feedback: Run daily support huddles during the first two weeks; tag tickets; sample call notes; feed top issues back into FAQs, macros, and message variants.

- Change control: Freeze unrelated UI changes in the permission area during rollout windows; coordinate releases so the capability window matches the message timing; predefine stop criteria and who can trigger a rollback.

## Common failure modes and practical corrections

- Late communication: Notifying after the code is live. Correction: Stage messages before irreversible changes and match them to capability windows.

- Excessive broadcast noise: One long message to everyone. Correction: Segment by action and risk; send shorter, sequenced messages tied to one decision.

- Ambiguous calls to action: Multiple asks in one note. Correction: One task per message; use checklists and deadlines.

- Hidden dissent: Silence treated as consent. Correction: Explicit yes/no approvals; capture objections in writing; anonymous pre-votes on contentious dates.

- Inconsistent messages across teams: Correction: Maintain a single source-of-truth brief and approved message variants.

- Missing frontline feedback: Correction: Daily huddles; ticket tagging; fast FAQ updates.

- No owner or escalation path: Correction: Name a communication owner with pause authority and publish escalation routes.

## Pre-launch and post-launch review checklist

### Review checklist (illustrative)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Phase</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Checkpoint</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Evidence</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Owner</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Objectives, outcomes, and guardrails defined</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">One-page brief approved</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CIO and change lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Audience matrix validated and prioritized</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Matrix signed off</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Message architecture approved</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Templates and variants stored</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead and security PM</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Calendars, time zones, translations checked</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Send schedule finalized</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Regional enablement</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pilot cohort and safe defaults prepared</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Feature toggles and cohorts set</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Product owner</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Measurement configured</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Dashboards ready</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Analytics lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pre-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Dissent captured and resolved or escalated</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Decision log with owners</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Change lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Post-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Daily guardrail review</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lockout and escalation report</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Security and CIO</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Post-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support huddles and FAQ refresh</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Macro and article updates</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Support lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Post-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Pilot vs. general cohort comparison</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Completion and error diffs</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Analytics lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Post-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Decide continue/modify/pause/rollback</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Decision memo filed</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">CIO and change lead</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Post-launch</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Capture learnings for scale</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">One-page retrospective</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Program manager</td></tr></tbody>
</table>
</div>

## Conclusion

Communication Planning is how technology leaders make the right people take the right actions at the right time, safely. By segmenting audiences, designing message architecture, setting governance and decision rights, piloting with clear gates, and measuring what truly matters, you convert a sensitive change like role-based permissions from a broadcast risk into a managed rollout. Start narrow, make dissent visible, confirm comprehension and behavior (not just opens), and scale only when guardrails hold.