Asana + Slack: meeting notes turned into action items
Meeting notes are everywhere, but action items still fall through the cracks. Someone copies bullets into Asana, someone else posts a “quick recap” in Slack, and somehow the owners and due dates don’t make it in.
This Asana Slack automation hits project managers first, honestly. But sales leads and ops folks feel it too, because missed follow-ups turn into missed revenue and messy handoffs. The outcome is simple: your notes become assigned tasks and a readable recap in minutes.
Below you’ll see how this workflow turns raw meeting text into structured action, what you get out of it, and what you’ll need to run it reliably.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Asana + Slack: meeting notes turned into action items
flowchart LR
subgraph sg0["Meeting Notes Form Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Meeting Notes Form"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Extract Data", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Structure Data"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/asana.svg' width='40' height='40' /></div><br/>Create Asana Task"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Combine Tasks", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Format Slack Message"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Send to Slack"]
n4 --> n5
n2 --> n3
n1 --> n2
n3 --> n4
n0 --> n1
n5 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1 ai
class n2,n5 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n5,n6 customIcon
The Problem: Meeting notes don’t turn into real ownership
Most teams are not bad at meetings. They’re bad at the 30 minutes after the meeting. Notes land in a doc, a chat thread, or an AI notetaker export, then someone has to translate that into tasks with owners, due dates, and context. That “someone” is usually the busiest person in the room. If they rush it, you get vague tasks like “Follow up with client” and nothing else. If they forget it, you get a quiet week and then a loud fire drill.
It adds up fast. Here’s where it breaks down in real life.
- Action items get copied over without owners, so everybody assumes somebody else has it.
- Due dates stay trapped in the notes, which means deadlines become “whenever we remember.”
- Important decisions and budget mentions disappear into long transcripts, so the team repeats the same discussion next week.
- Recaps in Slack are inconsistent, and people stop trusting them enough to act.
The Solution: Paste notes once, get tasks + a Slack recap
This workflow gives you one simple intake point for meeting notes, then does the annoying translation work for you. You paste notes from anywhere (Otter.ai, a transcript, your own bullets, even messy text), and GPT-4o extracts structured information like action items, assignees, due dates, decisions, pain points, budget discussions, and the next meeting date. n8n then turns each action item into an Asana task, preserving the full meeting context in the task notes so nobody has to dig for “what did we mean by this?” After the tasks are created, the workflow composes a clean Slack summary that links back to the tasks, so the team can skim and act immediately.
The workflow starts with a quick form submission. AI pulls out the useful bits and your Asana project gets populated with real, assigned work. Finally, Slack gets a formatted recap with clickable task links and the key meeting takeaways.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you run three meetings a week and each meeting produces 8 action items. Manually, writing tasks (about 2 minutes each) plus a decent Slack recap (another 10 minutes) is roughly 25 minutes per meeting, so you’re spending about 1.5 hours a week just translating notes into “work.” With this workflow, you paste the notes into the form in about 2 minutes, then wait a few minutes for processing and posting. The human part becomes “skim the output,” not “rebuild it.”
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Asana for creating tasks in the right project
- Slack to post the recap to your channel
- OpenAI API key (get it from the OpenAI dashboard)
Skill level: Intermediate. You’ll connect accounts (OAuth) and adjust a prompt or two to match how your team writes notes.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Notes come in through a simple form. Someone pastes the meeting notes and submits. That’s your single “source of truth” input, so you’re not chasing files across tools.
AI extracts structure from the mess. GPT-4o reads the text and pulls out action items with assignees and due dates, plus decisions, pain points, budget talk, and next meeting dates when they’re present.
Asana gets real tasks, automatically. n8n organizes the extracted data and creates one task per action item, keeping the meeting context inside the task notes so people understand what “this” refers to.
Slack gets a recap people actually read. The workflow aggregates the new tasks, formats a clean summary, and posts it with clickable task links so the team can jump straight into execution.
You can easily modify the intake method to use email or a chat app instead of the form based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
This workflow starts when someone submits the meeting intake form, which collects the notes and destination details.
- Add and open Meeting Intake Form.
- Set Form Title to
Meeting Notes → Tasks & Summary. - Set Form Description to the provided multi-line description in the node.
- Configure the four fields with labels and placeholders exactly as shown: Company Name / Project Name, Paste in your meeting notes here (textarea), Asana Project ID, and Slack Channel Name.
- Keep Options → Append Attribution set to
falseto remove branding from the form.
Step 2: Set Up AI Extraction
AI Data Extraction parses the meeting notes into structured JSON used downstream.
- Add AI Data Extraction and set Model to
gpt-4o. - In Messages, keep the system prompt and set the user message content to the expression that injects form notes:
=Extract the following from these meeting notes: ... {{ $json["Paste in your meeting notes here"] }} .... - Enable JSON Output so the response can be parsed reliably downstream.
- Credential Required: Connect your OpenAI API credentials in AI Data Extraction.
Step 3: Organize Items and Create Tasks
This step formats AI output into individual task items and then creates Asana tasks from them.
- Open Organize Payload and keep the JavaScript exactly as provided to map
action_itemsinto one item per task. - Confirm the node references the form data via
$('Meeting Intake Form').item.jsonand uses the default Slack channel fallback#general. - Open Generate Asana Task and set Name to the expression
={{ $json.task }}. - Set Authentication to
oAuth2in Generate Asana Task. - In Other Properties, set Notes to
=Assignee: {{ $json.assignee }} From meeting with: {{ $json.company_name }} Context from meeting notes: {{ $json.meeting_notes }}, Due On to={{ $json.due_date }}, Assignee to=me, and Projects to={{ $json.asana_project_id }}. - Credential Required: Connect your Asana OAuth2 credentials in Generate Asana Task.
Execution Flow: Meeting Intake Form → AI Data Extraction → Organize Payload → Generate Asana Task.
Step 4: Aggregate and Post the Slack Summary
After tasks are created, the workflow compiles a summary and posts it to Slack.
- Configure Aggregate Task List with Aggregate set to
aggregateAllItemDataand Destination Field Name set toTasks. - Open Compose Slack Summary and keep the JavaScript that builds the message from
Tasksand the original meeting context via$('Organize Payload').first().json. - Open Post Slack Update and set Text to
={{ $json.message }}. - Set Select to
channeland Channel ID to={{ $json.channel }}in Post Slack Update. - Credential Required: Connect your Slack OAuth2 credentials in Post Slack Update.
Execution Flow: Generate Asana Task → Aggregate Task List → Compose Slack Summary → Post Slack Update.
#general. Ensure your Slack app has access to that channel or change the fallback in the code.
Step 5: Test and Activate Your Workflow
Run a manual test to confirm tasks and summaries are created properly, then activate the workflow.
- Click Execute Workflow and submit a sample entry in Meeting Intake Form with a few action items.
- Verify that Generate Asana Task creates tasks in the specified project and that task links appear in the output of Aggregate Task List.
- Confirm that Post Slack Update posts a formatted summary message to the channel.
- When everything looks correct, toggle the workflow Active to enable production use.
Common Gotchas
- Asana credentials can expire or need specific permissions. If things break, check the n8n credential status and the target project access in Asana first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice and your team’s “task naming rules” early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Asana, Slack, and OpenAI accounts are ready.
No coding required. You’ll connect accounts, then tweak the extraction prompt to match your note style.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs around $0.01-0.03 per meeting analysis.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s one of the best reasons to use n8n for this. You can route “Sales pipeline” notes to one Asana project and “Delivery kickoff” notes to another by adding simple conditional logic after the AI extraction. The easiest place to customize is the extraction prompt (to add fields like risks, dependencies, or next steps) and the Asana task creation step (to change the project, section, or task template). You can also swap the form intake for an email trigger if your team forwards notes to a shared inbox.
Usually it’s expired OAuth credentials or the connected user losing access to the target project. Reconnect Asana in n8n, then confirm the project still exists and you have permission to create tasks there. If it fails only on some runs, check whether the AI output is missing required fields (like an assignee) and adjust the prompt to be more consistent.
A lot, as long as your n8n plan and OpenAI usage match your volume.
Often, yes, because this kind of workflow benefits from flexible logic and better control over the “messy middle” between AI output and task creation. n8n is also easier to self-host, which is handy if you want unlimited runs without paying per tiny step. Zapier or Make can still be fine if your needs are simple and you don’t mind giving up some control. The big difference is reliability at scale: when AI outputs vary, you usually want the ability to add validation and branching without turning your bill into a surprise. Talk to an automation expert if you’re not sure which fits.
Once this is running, your meeting notes stop being “nice to have” and start becoming execution. The workflow handles the repetitive stuff, and your team gets clear next steps they can actually follow.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.