Turn Chaos into Clarity with AI
We've all been there—staring at a jumbled mess of meeting notes, trying to figure out what was actually decided and who's supposed to do what. It's tedious, time-consuming, and honestly, a waste of your brainpower.
What if you could paste your messy notes into a simple form and get back a perfectly structured document with clear summaries, action items, decisions, and follow-ups? That's exactly what we're building today.
In this tutorial, I'll walk you through building an AI Work Assistant using n8n, OpenAI, and Google Docs. By the end, you'll have a fully functional automation that does the heavy lifting for you.
What You'll Build
Our automation consists of four connected nodes that work together seamlessly:
- Form Trigger — A simple web form where you paste your messy notes
- OpenAI Node — Sends your notes to GPT-4o-mini for intelligent processing
- Create Document — Creates a new Google Doc with a timestamped title
- Update Document — Populates the doc with the AI-generated structured summary
The end result? A shareable Google Doc containing:
- SUMMARY — 3-5 bullet points of the main takeaways
- ACTION ITEMS — Tasks with owner names when mentioned
- DECISIONS — What was decided during the meeting
- FOLLOW-UPS — What needs to happen next
Prerequisites
Before we dive in, make sure you have:
- An n8n account (we'll set this up together)
- An OpenAI account with API access
- A Google account for Google Docs
No coding experience required—n8n's visual workflow builder makes this accessible to everyone.
Part 1: Setting Up n8n
n8n Cloud (Recommended)
The quickest way to get started is with n8n Cloud:
- Go to cloud.n8n.io
- Sign up for a free trial account
- Once logged in, you'll land on your workflow dashboard
That's it! n8n Cloud handles all the infrastructure, so you can focus on building.
Self-Hosted Option
For those who prefer full control, n8n can be self-hosted using Docker. This gives you unlimited executions and complete data ownership, but requires technical setup and server maintenance. Check out the official n8n self-hosting docs if you want to go this route.
For this tutorial, we'll continue with n8n Cloud.
Part 2: Getting Your OpenAI API Key
To use GPT-4o-mini in our workflow, you'll need an OpenAI API key.
Quick Steps:
- Go to platform.openai.com and sign in (or create an account)
- Navigate to API Keys in the left sidebar
- Click Create new secret key
- Give it a name like "n8n Work Assistant"
- Copy the key immediately — you won't be able to see it again!
Pricing Note: GPT-4o-mini is extremely affordable. Processing meeting notes typically costs fractions of a cent per request. You'll need to add a payment method, but expect minimal costs for personal use.
For detailed setup instructions with n8n, see the official n8n OpenAI credentials guide.
Part 3: Setting Up Google Docs OAuth
Google's setup is a bit more involved, but we'll walk through the key steps.
Quick Steps:
- Go to Google Cloud Console
- Create a new project (or select an existing one)
- Enable the Google Docs API from the API Library
- Configure the OAuth consent screen (External, add your email as test user)
- Create OAuth 2.0 credentials (Web application type)
- Add the n8n OAuth callback URL to authorized redirect URIs
- Copy your Client ID and Client Secret
For the complete walkthrough with screenshots, follow the official n8n Google OAuth guide.
Connecting in n8n:
- In n8n, go to Credentials → Add Credential
- Search for "Google Docs OAuth2"
- Paste your Client ID and Client Secret
- Click Sign in with Google and authorize access
Part 4: Building the Workflow
Now for the fun part—let's build the automation!
Step 1: Create a New Workflow
- In n8n, click Add Workflow
- Give it a name like "AI Work Assistant"
Step 2: Add the Form Trigger
This creates a web form where you'll paste your notes.
- Click the + button to add a node
- Search for Form Trigger and select it
- Configure it with these settings:
| Setting | Value | |---------|-------| | Form Title | AI Work Assistant | | Form Description | Convert your messy notes, meeting transcripts, email threads into structured, summarized and actionable items. |
- Add a form field:
- Field Label: Notes
- Field Type: Text Area
- Placeholder: "Messy content here"
- Required: Yes
Step 3: Add the OpenAI Node
This is where the AI magic happens.
- Click + after the Form Trigger
- Search for OpenAI and select "Message a Model"
- Connect your OpenAI credentials
- Set the model to GPT-4o-mini
- Add two messages (see prompts in the next section)
Step 4: Add Google Docs - Create Document
- Click + after the OpenAI node
- Search for Google Docs and select it
- Operation: Create (default)
- Connect your Google Docs credentials
- Set the title to:
Meeting Summary – {{ $now.format("DD HH:mm") }} - Optionally specify a folder ID to organize your docs
Step 5: Add Google Docs - Update Document
- Click + after the Create Document node
- Add another Google Docs node
- Operation: Update
- Document URL:
{{ $json.id }}(references the created doc) - Add an action → Insert Text
- Text:
{{ $('Message a model').item.json.output[0].content[0].text }}
Part 5: The AI Prompts
The prompts are the heart of this automation. Here's exactly what to use:
System Prompt
Add this as the first message with role System:
You are a professional work assistant.
Your job is to take raw, unstructured work notes and turn them into a clear, structured summary that can be shared with others.
Follow these rules strictly:
- Be concise and professional
- Do not invent information
- If something is unclear or missing, leave it out
- Use simple, clear language
- Format the output exactly as requested below
- Only provide the required output and no other meta conversational text
User Prompt
Add this as the second message with role User:
Here are raw notes from a meeting, call, or email thread:
{{ $json.Notes }}
Please create a structured summary using the following format:
SUMMARY:
- 3 to 5 bullet points capturing the main points
ACTION ITEMS:
- Bullet list of tasks
- Include owner names if mentioned
- If no action items are found, write "No clear action items identified"
DECISIONS:
- Bullet list of decisions made
- If none, write "No decisions recorded"
FOLLOW-UPS:
- Bullet list of required follow-ups
- If none, write "No follow-ups required"
The {{ $json.Notes }} expression pulls in whatever text the user submits through the form.
Part 6: Testing Your Workflow
Time to see it in action!
- Click Test Workflow in n8n
- Open the form URL (shown in the Form Trigger node)
- Paste some messy notes, for example:
call with sarah and mike about the new website redesign. sarah said she likes the blue color scheme but mike thinks we should go with green. we decided to do user testing first before picking colors. mike will set up the testing by friday. also need to check with legal about the privacy policy update - sarah will handle that. next meeting scheduled for dec 20th to review testing results. budget approved for $5000 for the redesign. oh and we need to update the homepage copy too, john said he'd write a draft.
- Submit the form
- Check your Google Drive—you should see a new document!
Expected Output
Your Google Doc should look something like this:
SUMMARY:
- Website redesign discussion with focus on color scheme selection
- User testing will be conducted before finalizing design decisions
- Budget of $5000 approved for the redesign project
- Next review meeting scheduled for December 20th
- Homepage copy update needed as part of redesign
ACTION ITEMS:
- Mike: Set up user testing by Friday
- Sarah: Check with legal about privacy policy update
- John: Write draft for homepage copy
DECISIONS:
- User testing will be conducted before selecting final color scheme
- Budget approved: $5000 for website redesign
FOLLOW-UPS:
- Review user testing results on December 20th
- Finalize color scheme after testing completion
Download the Workflow
Want to skip the manual setup? Import this workflow directly into n8n:
- Download the workflow JSON
- In n8n, click Add Workflow → Import from File
- Select the downloaded JSON file
Or copy the JSON below and paste it directly:
{
"name": "AI Work Assistant",
"nodes": [
{
"parameters": {
"formTitle": "AI Work Assistant",
"formDescription": "Convert your messy notes, meeting transcripts, email threads into structured, summarized and actionable items.",
"formFields": {
"values": [
{
"fieldLabel": "Notes",
"fieldType": "textarea",
"placeholder": "Messy content here",
"requiredField": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.3,
"position": [0, 0],
"id": "form-trigger-node",
"name": "On form submission",
"webhookId": "your-webhook-id"
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-4o-mini",
"mode": "list",
"cachedResultName": "GPT-4O-MINI"
},
"responses": {
"values": [
{
"role": "system",
"content": "You are a professional work assistant.\n\nYour job is to take raw, unstructured work notes and turn them into a clear, structured summary that can be shared with others.\n\nFollow these rules strictly:\n- Be concise and professional\n- Do not invent information\n- If something is unclear or missing, leave it out\n- Use simple, clear language\n- Format the output exactly as requested below\n- Only provide the required output and no other meta conversational text"
},
{
"content": "Here are raw notes from a meeting, call, or email thread:\n\n{{ $json.Notes }}\n\nPlease create a structured summary using the following format:\n\nSUMMARY:\n- 3 to 5 bullet points capturing the main points\n\nACTION ITEMS:\n- Bullet list of tasks\n- Include owner names if mentioned\n- If no action items are found, write \"No clear action items identified\"\n\nDECISIONS:\n- Bullet list of decisions made\n- If none, write \"No decisions recorded\"\n\nFOLLOW-UPS:\n- Bullet list of required follow-ups\n- If none, write \"No follow-ups required\""
}
]
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2,
"position": [208, 0],
"id": "openai-node",
"name": "Message a model"
},
{
"parameters": {
"folderId": "YOUR_GOOGLE_DRIVE_FOLDER_ID",
"title": "=Meeting Summary – {{ $now.format(\"DD HH:mm\") }}"
},
"type": "n8n-nodes-base.googleDocs",
"typeVersion": 2,
"position": [560, 0],
"id": "create-doc-node",
"name": "Create a document"
},
{
"parameters": {
"operation": "update",
"documentURL": "={{ $json.id }}",
"actionsUi": {
"actionFields": [
{
"action": "insert",
"text": "={{ $('Message a model').item.json.output[0].content[0].text }}"
}
]
}
},
"type": "n8n-nodes-base.googleDocs",
"typeVersion": 2,
"position": [768, 0],
"id": "update-doc-node",
"name": "Update a document"
}
],
"connections": {
"On form submission": {
"main": [[{"node": "Message a model", "type": "main", "index": 0}]]
},
"Message a model": {
"main": [[{"node": "Create a document", "type": "main", "index": 0}]]
},
"Create a document": {
"main": [[{"node": "Update a document", "type": "main", "index": 0}]]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
}
}
Note: After importing, you'll need to connect your own OpenAI and Google Docs credentials, and optionally update the Google Drive folder ID.
What's Next?
Congratulations! You've built a fully functional AI Work Assistant. Here are some ideas to extend it:
- Add Slack notifications — Send the summary to a Slack channel automatically
- Email trigger — Forward emails to n8n and process them automatically
- Multiple output formats — Create Notion pages or send to your task manager
- Scheduled digests — Compile multiple notes into a daily summary
The beauty of n8n is that once you understand the basics, you can connect hundreds of apps and build increasingly sophisticated automations.
Have questions or built something cool with this? I'd love to hear about it!
