play icon for videos
← Academy
Strategy · Other

How to build a stakeholder engagement plan

Design an engagement plan that produces a connected record, not a one-off consultation log. Set cadence and channel per tier, define what each touch collects, and attach every consultation to one Contact ID.

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> *{box-sizing:border-box} body{margin:0;font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;background:#F7F4EC;padding:24px;display:flex;justify-content:center} .card{width:620px;max-width:100%;background:#FFFFFF;border:1px solid #EAE3D4;border-radius:20px;box-shadow:0 24px 60px -34px rgba(60,40,20,.34),0 2px 4px rgba(60,40,20,.05);overflow:hidden} .hdr{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid #EFE9DC;background:#F7F4EC} .hdr .t{min-width:0} .hdr .t .n{font-family:'Newsreader',Georgia,serif;font-weight:600;font-size:16px;color:#2A2115;letter-spacing:-.2px;line-height:1.2} .hdr .t .s{font-size:12px;color:#8A7C63;margin-top:2px} .hdr .pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#C05B3F;background:#F5E4DE;padding:5px 11px;border-radius:20px;white-space:nowrap} .tabs{display:flex;gap:0;padding:12px 12px 0;background:#F7F4EC;flex-wrap:wrap} .tab{flex:1;min-width:88px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:700;color:#8A7C63;background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 4px 10px} .tab.on{font-weight:800;color:#C05B3F;border-bottom-color:#C05B3F} .tab .num{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:800;color:#8A7C63;background:#EFE9DC} .tab.on .num{color:#fff;background:#C05B3F} .divider{height:1px;background:#EFE9DC} .body{padding:20px} .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#C05B3F;margin-bottom:6px} .headline{font-family:'Newsreader',Georgia,serif;font-size:18px;font-weight:600;line-height:1.28;color:#2A2115;margin-bottom:10px} .lede{font-size:12.5px;line-height:1.55;color:#5C5140;margin:0 0 14px} .promptlbl{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#A99C82;margin-bottom:7px} .prompt{position:relative;font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:11px;line-height:1.55;color:#2A2115;background:#F7F4EC;border:1px solid #EFE9DC;border-left:3px solid #C05B3F;border-radius:10px;padding:12px 13px} .promptbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px} .copybtn{font-family:inherit;font-size:11.5px;font-weight:700;color:#2A2115;background:#EFE9DC;border:none;border-radius:8px;padding:7px 13px;cursor:pointer} .copybtn.done{color:#fff;background:#C05B3F} .demo{font-size:11.5px;font-weight:800;color:#C05B3F;text-decoration:none} </style> </head> <body> <div class="card"> <div class="hdr"> <div class="t"> <div class="n">How to build a stakeholder engagement plan</div> <div class="s">Actionable in Sopact Sense on one persistent Contact ID</div> </div> <span class="pill">Sopact Sense</span> </div> <div class="tabs" id="tabs"></div> <div class="divider"></div> <div class="body" id="body"></div> </div> <script> (function(){ var TABS = ["Who & why","Cadence","Collect","Attach ID","Owner","Run it"]; var CONTENT = [ {eyebrow:"Step 1 · Who & why",headline:"Turn the map into a plan of who to engage.",lede:"Start from your stakeholder map. For each priority tier, name who you will engage and why they are on the list — the plan inherits the map's priorities instead of starting from scratch.",prompt:"From our stakeholder map and program goals [INPUT], draft an engagement plan: for each priority tier, list who to engage and why."}, {eyebrow:"Step 2 · Cadence & channel",headline:"Set the cadence and channel per tier.",lede:"High-power/high-interest stakeholders get more frequent, higher-touch contact; broad groups get lighter cycles. Recommend a cadence and channel for each tier so no one is over- or under-engaged.",prompt:"For each priority tier, recommend the cadence and channel for engagement."}, {eyebrow:"Step 3 · What each touch collects",headline:"Define the questions each touch collects, mapped to your framework.",lede:"Every touchpoint should collect something. Define the questions per touch and map each narrative field to your framework so the answers are analyzable, not just logged.",prompt:"For each priority tier, list the questions each touch should collect, mapped to our framework."}, {eyebrow:"Step 4 · Attach to the Contact ID",headline:"Attach every consultation to the same persistent ID.",lede:"When each engagement writes back to the same Contact ID, consultations compound — each one sharpens the next instead of resetting. That is the difference between a plan and a consultation log.",prompt:"Attach every consultation to the stakeholder's persistent ID so each engagement sharpens the next instead of resetting."}, {eyebrow:"Step 5 · Owner per action",headline:"Assign an owner so nothing is engaged-and-forgotten.",lede:"A simple RACI or owner-per-action keeps the plan alive. Flag where you are over-surveying a group or missing a key one entirely.",prompt:"Assign an owner for each action (simple RACI), and flag where we are over-surveying or missing a key group."}, {eyebrow:"Step 6 · Run it as one prompt",headline:"The full engagement-plan prompt.",lede:"Run the whole plan in one pass. Reuse the same question wording across cycles so answers stay comparable over time.",prompt:"From our stakeholder map and program goals [INPUT], draft an engagement plan: for each priority tier, recommend the cadence, channel, and the questions each touch should collect, mapped to our framework and attached to the stakeholder's persistent ID; flag where we are over-surveying or missing a key group."} ]; var phase = 0; var tabsEl = document.getElementById('tabs'); var bodyEl = document.getElementById('body'); function renderTabs(){ tabsEl.innerHTML=''; TABS.forEach(function(label,i){ var b=document.createElement('button'); b.type='button'; b.className='tab'+(i===phase?' on':''); b.innerHTML='<span class="num">'+(i+1)+'</span><span>'+label+'</span>'; b.addEventListener('click',function(){phase=i;render();}); tabsEl.appendChild(b); }); } function renderBody(){ var c=CONTENT[phase]; var out='<div class="eyebrow">'+c.eyebrow+'</div><div class="headline">'+c.headline+'</div><p class="lede">'+c.lede+'</p>'; out+='<div class="promptlbl">Copy-paste Sopact Assistant prompt</div>'; out+='<div class="prompt" id="promptTxt"></div>'; out+='<div class="promptbar"><button type="button" class="copybtn" id="copyBtn">Copy prompt</button><a class="demo" href="https://www.sopact.com/request-demo" target="_blank" rel="noopener">Request a demo &rarr;</a></div>'; bodyEl.innerHTML=out; document.getElementById('promptTxt').textContent=c.prompt; var btn=document.getElementById('copyBtn'); btn.addEventListener('click',function(){ var t=c.prompt; function done(){btn.textContent='Copied';btn.className='copybtn done';setTimeout(function(){btn.textContent='Copy prompt';btn.className='copybtn';},1600);} if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(t).then(done,function(){fallback(t,done);});} else{fallback(t,done);} }); } function fallback(t,done){ var ta=document.createElement('textarea');ta.value=t;ta.style.position='fixed';ta.style.opacity='0'; document.body.appendChild(ta);ta.select();try{document.execCommand('copy');}catch(e){}document.body.removeChild(ta);done(); } function render(){renderTabs();renderBody();} render(); })(); </script> </body> </html>

In short: A stakeholder engagement plan in Sopact Sense turns your map into who to engage, at what cadence and channel per priority tier, and what each touch collects — with every consultation attached to the same persistent Contact ID so engagements compound instead of resetting. Add a simple owner-per-action so nothing is engaged-and-forgotten, and the plan produces a connected record rather than a one-off consultation log.

1 · Turn the map into who to engage and why

An engagement plan starts from the stakeholder map, not a blank page. For each priority tier, name who you will engage and the reason they are on the list, so the plan inherits the map's prioritization. In Sopact Sense the Assistant reads your map and program goals and drafts the who/why per tier.

From our stakeholder map and program goals [INPUT], draft an engagement plan: for each priority tier, list who to engage and why.

2 · Set the cadence and channel per priority tier

Different tiers need different rhythms. High-power, high-interest stakeholders get frequent, higher-touch contact; broad groups get lighter, less frequent cycles. Recommend a cadence and channel per tier so you neither over-survey a fatigued group nor neglect a key one.

For each priority tier, recommend the cadence and channel for engagement.

3 · Define what each touch collects, mapped to your framework

Every engagement should collect something usable. Define the questions each touch asks and map each narrative field to your framework, so open-text answers are analyzable at intake rather than a pile of notes. This is where an engagement plan stops being a calendar and becomes a data instrument.

For each priority tier, list the questions each touch should collect, mapped to our framework.

4 · Attach every consultation to the same Contact ID

The plan only compounds if every consultation writes back to the same persistent Contact ID. In Sopact Sense each touch attaches to the stakeholder's record, so the next engagement builds on the last instead of starting cold. Engagement without a record forgets what was said; engagement on one ID lets each consultation sharpen the next.

Attach every consultation to the stakeholder's persistent ID so each engagement sharpens the next instead of resetting.

5 · Add an owner per action so nothing is forgotten

A plan with no owners quietly dies. Add a simple RACI or owner-per-action, and have the Assistant flag where you are over-surveying a group or missing a key one entirely, so the plan stays balanced and accountable.

Assign an owner for each action (simple RACI), and flag where we are over-surveying or missing a key group.

6 · Run the whole plan as one prompt

Run all five moves in one pass to produce a tiered engagement plan bound to your framework and your persistent IDs.

From our stakeholder map and program goals [INPUT], draft an engagement plan: for each priority tier, recommend the cadence, channel, and the questions each touch should collect, mapped to our framework and attached to the stakeholder's persistent ID; flag where we are over-surveying or missing a key group.

Expected output. A per-tier engagement plan with cadence, channel, and the questions each touch collects; every narrative field mapped to your framework; each consultation attached to the stakeholder's persistent Contact ID; an owner per action; and flags for over-surveyed or missing groups. Input: your stakeholder map and program goals. Output: an engagement plan that produces a connected, compounding record instead of a scattered consultation log.

GRADE: green | plan on IDs | cadence, questions, owners mapped to framework; amber | plan | touches not attached to the record; red | log | one-off consultations that reset each time

Green is a tiered plan where each touch is mapped to your framework, owned, and attached to persistent IDs. Amber is a plan whose touches are not yet attached to the record, so answers don't accumulate. Red is a consultation log: one-off engagements that reset and forget every time.

Tricks, tips, and troubleshooting

Engagement without a record forgets what was said. If a consultation isn't attached to the stakeholder's Contact ID, the next person to engage them starts blind. Attach every touch to the record so context carries forward.

Reuse the same question wording across cycles. If you reword the same question each round, the answers stop being comparable. Keep the wording stable so responses stack into a trend instead of a set of unrelated snapshots.

Watch for over-surveying. A key stakeholder engaged five ways at once will disengage. Use the plan's flags to spot over-contacted groups and thin the cadence before fatigue sets in.

Improve accuracy by pointing at your own program page. Give the Assistant your program page URL or framework so the questions per touch use your indicators and language rather than generic ones.

Frequently asked questions

How do you build a stakeholder engagement plan?

You build a stakeholder engagement plan by turning your stakeholder map into who to engage and why, setting a cadence and channel per priority tier, defining the questions each touch collects mapped to your framework, and attaching every consultation to the same persistent Contact ID. In Sopact Sense the Assistant drafts the whole plan in one prompt and adds an owner per action, so engagements compound into a connected record instead of a one-off consultation log.

What should a stakeholder engagement plan include?

A strong stakeholder engagement plan includes, per priority tier: who to engage and why, the cadence and channel, and the specific questions each touchpoint collects mapped to your impact framework. It also assigns an owner to each action and attaches every touch to the stakeholder's persistent Contact ID, so nothing is engaged-and-forgotten and each consultation sharpens the next.

How do you keep engagement data comparable over time?

Keep engagement data comparable by attaching every consultation to the same persistent Contact ID and reusing the same question wording across cycles. When the record carries forward and the wording stays stable, each cycle stacks into a longitudinal trend on the same stakeholder rather than a series of disconnected snapshots.

Related from the Academy

Ready to try it for yourself?

Open Sopact Sense, paste your program description, and put it to work.

Try in Sopact