1. Opening Problem Statement
Imagine Emma, a busy sales executive juggling 10-15 meetings a day with clients and partners. She spends countless hours scrambling to recall the details of each upcoming call — hunting down email threads, reviewing LinkedIn activity for talking points, and trying to piece together who exactly will be on the call. This last-minute chaos often leads to missed opportunities, awkward conversations, and sometimes costly follow-up emails to clarify what was (or wasn’t) agreed upon. Emma estimates she loses at least 3-4 hours a week just getting meeting-ready, cutting into her productivity and increasing stress.
This is exactly where our custom AI Meeting Assistant workflow built in n8n becomes a lifesaver — automating the tedious prep work by gathering the most relevant information about upcoming meetings and summarizing it into a concise WhatsApp notification, ready moments before the call.
2. What This Automation Does
This workflow acts as Emma’s ultra-efficient meeting prep assistant. When it runs, it:
- Periodically scans Emma’s Google Calendar for meetings occurring within the next hour.
- Extracts detailed attendee information from the meeting invite, including emails and LinkedIn profile URLs.
- Fetches Emma’s last email correspondence with each attendee via Gmail for contextual reminders.
- Scrapes recent LinkedIn activity of attendees using a custom web scraper serviced by Apify.
- Uses several OpenAI language models to intelligently summarize the emails, LinkedIn activities, and attendee bios into a concise, casual pre-meeting briefing.
- Sends the tailored meeting summary as a WhatsApp message directly to Emma’s phone for instant access.
Thanks to this orchestration, Emma saves roughly 4 hours weekly and steps into every meeting fully informed, impressing clients and reducing follow-up emails.
3. Prerequisites ⚙️
- n8n account (self-hosting possible for privacy; see Hostinger Guide)
- Gmail account with OAuth2 credentials to access inbox
- Google Calendar account OAuth2 setup to read upcoming meetings
- OpenAI API key for chat models (GPT-4o-2024-08-06)
- WhatsApp Business Cloud API credentials for messaging
- Apify API key for scraping LinkedIn profiles
- LinkedIn session cookie (li_at) for authenticated scraping
4. Step-by-Step Guide
Step 1: Schedule Trigger to Check Calendar Hourly
In the n8n editor, click Add Node, then select Schedule Trigger. Set the interval to every 1 hour. This node will automatically kick off your workflow to check upcoming meetings.
Expected outcome: The workflow runs hourly and triggers all downstream actions.
Common mistake: Forgetting to activate the workflow after setup.
Step 2: Use Google Calendar Node to Get Next Meeting
Add a Google Calendar node next. Choose the getAll operation with options to:
- Limit results to 1
- Set timeMin to now in UTC
- Set timeMax to UTC plus 1 hour
- Order by startTime and ensure single events
Connect this node so it triggers after your scheduler.
Expected outcome: You get the nearest upcoming meeting within the next hour.
Common mistake: Timezone mismatches leading to missing meetings.
Step 3: Extract Attendee Details with AI Information Extractor
Add the Information Extractor node (from Langchain nodes). In its parameters, feed the calendar event data like start time, hangout link, summary, description, organizer, and attendees. Use the provided schema to extract the list of attendees (excluding the organizer).
Expected outcome: AI parses meeting invite text and outputs structured attendee info including emails and LinkedIn URLs.
Common mistake: Not supplying the correct JSON paths that match the calendar event structure.
Step 4: Split Attendees Array for Individual Processing
Insert a Split Out node configured to split the attendees into individual items, so each gets processed separately in parallel.
Expected outcome: Workflow forks into branches handling each attendee’s data separately.
Step 5: Branch Routing Based on Contact Info
Add a Switch node to route sub-workflows depending on whether an attendee has an email address or LinkedIn URL.
Set rules to check if email exists for email processing or linkedin_url for LinkedIn scraping.
Expected outcome: Attendee data properly routed for specific processing.
Common mistake: Misconfigured conditions causing workflow failures or skipped branches.
Step 6: Email Correspondence Lookup using Gmail Node
For attendees with emails, add a Gmail node with getAll operation. Filter by sender = attendee’s email address and limit to 1 (latest message).
Next, add another Gmail node to get the full email content using the message ID from the previous node.
Follow with a Set node to simplify and extract useful fields like date, subject, from, to, and email text.
Finally, use an OpenAI Chat Model node with a prompt that summarizes the email thread succinctly to prep for the meeting.
Expected outcome: Concise email recap ready for use.
Common mistake: Using wrong sender filter or insufficient Gmail API permissions.
Step 7: LinkedIn Profile & Activity Scraping via Apify
For attendees with LinkedIn URLs, add a Set node containing their profile URL and your LinkedIn session li_at cookie value.
Pass this to an HTTP Request node configured to call Apify’s web scraper API, which impersonates your LinkedIn session and returns profile HTML.
Parse the profile HTML with several HTML Extract nodes to pull the “About” section, profile metadata, and recent activity HTML blocks.
Use further HTML Extract nodes to dig into individual activity details like post headers, URLs, content, and reactions.
Wrap this with a final OpenAI Chat Model node that summarizes the attendee’s professional profile and recent LinkedIn activity.
Expected outcome: Clear, relevant LinkedIn summary for conversational meeting cues.
Common mistake: Missing or expired LinkedIn cookie causes failed scraping attempts.
Step 8: Aggregate Attendee Summaries
Merge the summarized email and LinkedIn results into a cohesive object per attendee using Set and Aggregate nodes.
This helps build a consolidated picture of each participant.
Step 9: Generate Meeting Notification
Feed all aggregated attendee info plus the meeting details into a final OpenAI Chat Model node. The prompt instructs the LLM to draft a short, friendly WhatsApp-style pre-meeting message.
Expected outcome: Ready-to-send meeting briefing, highlighting key points per attendee.
Step 10: Send WhatsApp Message
Use the WhatsApp node with your configured WhatsApp Business Cloud API credentials to send the notification message directly to your phone.
Expected outcome: Instant pre-meeting reminder arrives on WhatsApp.
5. Customizations ✏️
- Customize Frequency: Adjust
Schedule Triggernode’s interval from hourly to every 30 minutes or even 15 minutes depending on your meeting volume. - Alternate Messaging Channel: Replace the WhatsApp node with another messaging node like Slack, Telegram, or Email to receive notifications tailored to your preferred platform.
- Additional Profile Data: Edit the
HTML Extractnodes to also scrape other LinkedIn profile data fields such as endorsements, skills, or education sections for richer summaries. - Selective Attendee Processing: Use extra conditions or filters in the
Switchnode to prioritize only key contacts or attendees over a certain importance threshold. - Custom Prompt Tuning: Tweak prompt texts in each OpenAI Chat Model node to refine tone or include specific meeting preparation specifics important to you.
6. Troubleshooting 🔧
Problem: Gmail node returns no emails for attendee
Cause: Email address filter mismatch or incomplete inbox access scope.
Solution: Verify the attendee’s email format matches exactly. Check OAuth2 Gmail credentials have full read access and correct account is connected. Test the query manually in Gmail.
Problem: LinkedIn scraping returns no data or errors
Cause: Your LinkedIn cookie is missing, expired, or blocked by LinkedIn.
Solution: Update the Set LinkedIn Cookie node with a fresh li_at cookie copied from your browser session logged into LinkedIn. Also, respect LinkedIn terms of service to avoid ban.
Problem: OpenAI nodes running into rate limits or errors
Cause: Hitting API quota or using unstable API keys.
Solution: Monitor your OpenAI quota, refresh API keys, or add retry logic in the nodes.
7. Pre-Production Checklist ✅
- Test scheduler triggering as expected
- Confirm Google Calendar is correctly tied and returning upcoming meetings
- Verify Gmail nodes successfully fetch email correspondences by sender
- Check Apify API integration and LinkedIn cookie validity for scraping profiles
- Test OpenAI nodes generate meaningful summaries
- Send test WhatsApp message to confirm delivery
- Backup all workflow credentials and export workflow JSON for rollback
8. Deployment Guide
Activate your workflow in n8n by toggling the activation switch on the editor screen. Ensure your credentials are live and valid.
For production, monitor execution logs for errors or delays. Scale your n8n instance as needed to handle concurrent runs if you have many meetings per hour.
Optionally, self-host n8n on services like Hostinger for privacy and control.
9. FAQs
Can I use Outlook instead of Gmail for emails?
Currently, this workflow is built around the Gmail node and OAuth2 integration, but you can replace Gmail nodes with Outlook equivalents if you configure Microsoft credentials in n8n.
Does this consume a lot of OpenAI API credits?
Yes, since multiple OpenAI nodes summarize emails and LinkedIn content, expect moderate usage depending on meeting frequency. Consider monitoring usage or adjusting prompt size.
Is my LinkedIn scraping secure?
Scraping uses your own authenticated LinkedIn session via your cookie. Keep your cookie private and do not share. Use a secondary LinkedIn account if concerned about terms.
Can this workflow handle 20+ meetings per day?
Yes, but you may want to increase your n8n instance capacity and API quotas to avoid throttling.
10. Conclusion
By setting up this AI Meeting Assistant in n8n, you’ve automated the exhausting and error-prone prep work Emma faced. Now, you get succinct, tailored pre-meeting notifications that boost confidence, save hours weekly, and help you connect meaningfully with every attendee.
Next, consider extending this workflow to include calendar event follow-ups, CRM updates post meeting, or automatic meeting note generation using AI.
Keep exploring and automating — your time is valuable!