Turn a Slack discussion into a canvas of decisions and open questions
The discussion has grown to sixty messages. Someone will ask next week what was agreed, who's doing what and what's still unanswered, and nobody wants to scroll for it.

What you'll make
a Slack canvas with decisions, accepted actions, open questions and unresolved proposals, each linked back to the messages behind it.
What you'll need
Slack’s AI canvas writing, which comes with the new Business+ and Enterprise+ plans or the legacy Slack AI add-on (admins can switch it off), a discussion you’re allowed to use for this, and about twenty minutes. If you don’t see Write with AI, use the manual route in Go deeper.
Example result.
Decisions
- Recycled board from the January run; Christmas stays on current stock.
Budget approval still needed. Marta (project owner), 11 Sep [4]
Accepted actions
- Ines will ask the supplier about a two-week lead time. No deadline stated [3]
- Callum will update the production plan once budget is approved [5]
Open questions
- Does the recycled board fit the existing die? Ines, 9 Sep. No answer found [3]
Proposals and uncertainties
- Who obtains budget approval, and when
1. Pick one discussion and its readers
Choose one topic, its channels and a date range. Read the main thread first and note any later message that changed the decision. Decide who will read the canvas before you generate it.
The canvas assistant draws on messages and files you can access, but it can’t read content from URLs, so name the channels rather than pasting a thread link. It also can’t know what counts as sign-off in your team, so the record should describe the evidence, not invent a voting rule.
Don’t use this to write a canvas about people. Performance, complaints, health, pay and conduct don’t belong in a generated document assembled from chat messages, however well cited.
Why this works: a narrow scope gives the draft less to compress and you less to check.
What you should see: one sentence naming the topic, channels, dates and readers.
2. Create the canvas and ask for a four-part draft
On desktop:
- From the Home tab, click Files in the sidebar. If you don’t see it, click More.
- Click New in the top-right corner and choose New canvas.
- Select Write with AI.
- Paste your prompt and click Send.
Draft a decision record about [topic] from [named channels] between [start date] and [end date].
Use four sections:
1. Decisions: explicit decisions, who made them and when. Describe the evidence of sign-off; do not infer consensus from silence.
2. Accepted actions: the action, the person who explicitly accepted it, and any stated deadline or condition. Mark missing details as not stated.
3. Open questions: questions with no answer in the messages you used. Give the question, who asked and the date.
4. Proposals and uncertainties: ideas, disagreements and anything not clearly resolved.
Link each item to its source messages. Do not invent owners, dates, sign-off or answers. If a later message changes something, show the change. List the channels and dates you used.
Fill in the four brackets with your topic, channels and dates.
Why this works: separating Decisions from Proposals forces a judgement that prose written from a conversation tends to smooth over, because a summary naturally reads as consensus. Asking for conditions protects a phrase such as “once budget is approved”.
What you should see: new content highlighted in blue, with headings and bullets, and message citations shown as numbers in brackets.
3. Check the sources and fix lines in place
Open the numbered citations behind every decision and action, and click Sources for the full list. Slack notes that the model also has general knowledge, so a line can appear with no source. In a decision record, that’s a defect: delete it or check it.
For each decision and action, ask:
- Does the cited message state a decision, or suggest one? A line saying “agreed” that cites “we should probably…” is a proposal wearing a decision’s clothes.
- Did the named person accept this particular action?
- Did the deadline keep its condition?
- Did a later reply change the position?
An empty actions section can be correct. Don’t fill it because the document looks unfinished.
To change a line before saving, describe it in the Any changes? field and press Enter:
The line "[paste line]" overstates its source, [message]. Rewrite it using the source's wording and uncertainty. Keep it out of Decisions unless the messages clearly support that status.
[paste line] is the draft line and [message] is the citation it relies on.
Click Keep to save or Discard to start again. If you navigate away before Keep, the draft is under Recently viewed in Files.
Why this works: you check the lines that someone will act on, against the messages, before the canvas gains the authority of a shared document.
What you should see: every decision and action traced to a message, and anything uncertain moved to Proposals.
4. Review the audience, then share
Content from private sources stays visible to the people you share the canvas with, even though they can’t open the original messages behind the citations. A private citation isn’t a barrier around the copied sentence. Remove anything the readers shouldn’t see.
Click Share in the top-right corner, add people or channels, choose Can view or Can edit, and click Share. To keep it with the channel, add it as a tab: click the plus sign in the conversation header, select Canvas, choose the canvas and click Insert. For a contractual, financial or regulated decision, link to the formal record rather than treating the canvas as the decision itself.
Why this works: sharing is the last point where you control who sees the copied text.
What you should see: the canvas in the channel header or shared with exactly the people you meant.
Check the result
- Every decision cites a message from someone who could make it.
- Every action names the person who accepted it, with its condition intact.
- Every open question has the asker and date, and no answer slipped in from elsewhere.
- Nothing in the canvas lacks a source.
The usual failure: the open questions section is thin or empty. An unanswered question looks like a dead end to a summariser and a live issue to a person, so it gets dropped, or worse, “answered” from context. Spot it by searching the thread for question marks and comparing. Highlight the section, click Edit with AI, choose a custom prompt and use:
Re-check [named channels] for questions that were asked and never answered, including questions inside replies. List each with who asked it and the date, even if it was later overtaken by events. Do not answer them.
[named channels] are the channels from your first prompt.
“Do not answer them” matters more than it looks. An open question that has been quietly closed is worse than one that was missed.
Worked example: a packaging change and a question that scrolled away
Fictional example. Five messages from #packaging-switch:
3 Sep, Ines: Recycled board is 11% more per unit, with a three-week lead time instead of two. Worth considering?
9 Sep, Callum: Could the supplier do two weeks for a higher price?
9 Sep, Ines: I'll ask. Has anyone checked that the board fits our existing die?
11 Sep, Marta, project owner: Decision: use recycled board from the January run. Christmas stays on current stock. Budget approval is still needed.
11 Sep, Callum: Understood. I'll update the production plan once budget approval is confirmed.
The first draft’s open questions section said only: “None. The team confirmed the January switch.” The die question had gone, and the decision line had absorbed it.
- The failure. The die question sits inside Ines’s reply, after “I’ll ask”, so it reads as part of an action. Nobody hid it. It simply scrolled.
- The repair. The re-check prompt brought it back as an open question with Ines and 9 September, as in the example result. It also kept the lead-time question attached to Ines’s “I’ll ask” as an accepted action with no deadline.
- The conditions. Callum accepted an update after approval, not an immediate change. Marta’s decision doesn’t prove the spend is approved, which is why “who obtains budget approval” stays under Proposals and uncertainties. On a real thread, check later replies first; “no answer found in the messages reviewed” is more precise than “nobody answered”.
Task kit for this job: Download (ZIP) · Reusable instructions
Go deeper
Optional training: Make the same record without AI
Most of the value is in the four sections, not the generation. Open the thread, click Summarize at the top, then More details to see its sources. Then create a canvas from Files › New › New canvas and type the four headings yourself. Copy the shortest useful quotation and its message link under each.
Filling them in by hand is slower, but you make the decided-versus-proposed judgement at full attention rather than checking someone else’s. For a small thread it’s often the sensible route.
Optional training: Write threads that turn into good records
The cheaper fix is at the writing end. When a thread reaches a decision, post it as its own message: what was decided, by whom, from when and what it replaces. “Decision: recycled board from the January run. Marta, 11 September. Christmas run unchanged.” That gives any summariser, human or otherwise, a clean thing to cite.
The same goes for questions. A question posted as its own message, rather than tucked after something else, is more likely to be answered and more likely to be picked up as an open item later. Ines’s die question would have survived if it had had a message of its own.