1. Opening Problem Statement
Meet Sarah, a busy sales representative who juggles dozens of client meetings weekly. After each meeting, Sarah often forgets to follow up promptly due to her hectic schedule. This leads to lost opportunities, stalled sales pipelines, and lost revenue. Manually tracking which clients need follow-up emails or calls wastes hours every week and increases the risk of human error.
In Sarah’s case, she typically spends 2-3 hours every week reviewing past meetings and checking if she has reengaged with clients. Missed follow-ups cause delays that might cost significant contracts or client trust. What if Sarah could automate this tedious process, ensuring every lead gets the timely nudge needed to close deals?
2. What This Automation Does
This n8n workflow automates Sarah’s post-meeting follow-up process using Google Calendar, Gmail, and advanced AI agents. Here’s what happens when it runs every morning at 6 AM:
- Automatically fetches sales meetings from 2-4 days ago in Sarah’s Google Calendar to identify recent interactions.
- Checks Gmail for any follow-up emails exchanged with meeting attendees since the meeting ended.
- Flags meetings that have no follow-up emails as leads needing reengagement.
- Uses an AI agent to analyze the previous meeting details and suggest available time slots that match similar day and time patterns for the next call.
- Sends Sarah a summary email with those suggested slots and waits for her reply to approve, suggest alternative times, or dismiss the reminder.
- Upon Sarah’s approval, another AI agent books the meeting automatically in her Google Calendar, streamlining the scheduling process effortlessly.
Overall, Sarah saves hours weekly, reduces forgotten leads, and accelerates closing deals by automating the critical follow-up scheduling process.
3. Prerequisites ⚙️
- Google Calendar account with sales meetings recorded 📅
- Gmail account for sending and receiving follow-up emails 📧
- OpenAI account for AI-powered meeting availability and booking agents 🔐
- n8n account to design and run the workflow (cloud-hosted or self-hosted) 🔌
For self-hosting n8n, consider services like Hostinger or any preferred provider.
4. Step-by-Step Guide
Step 1: Set Up the Scheduled Trigger to Run Daily at 6 AM
Navigate to your n8n editor and add a Schedule Trigger node. Configure it to trigger every day at 6 AM. This will start the workflow running automatically each morning.
What you see: A schedule rule field where you can select “Trigger at hour” and type “6”.
Common mistake: Forgetting to set the timezone correctly, which may cause the trigger to fire at unexpected hours.
Step 2: Retrieve Past Sales Meetings from Google Calendar
Add a Google Calendar node named Get Past Events. Configure it to fetch events from 2 to 4 days ago using the expressions:
timeMin: {{$now.minus({ day: 4 })}}
timeMax: {{$now.minus({ day: 2 })}}Set the calendar ID to your sales calendar.
This node gathers the meetings that might need a follow-up.
Step 3: Remove Duplicate Events
Add a Remove Duplicates node named Mark as Seen. Configure it to remove events already processed in prior workflow runs to avoid duplicate notifications.
Step 4: Split Events into Batches for Processing
Add a Split In Batches node called Loop Over Items. This enables handling one meeting at a time through the remaining nodes.
Step 5: Check Gmail for Follow-Up Emails
Add a Gmail node called Get Emails Since. Configure it to search emails with these parameters:
- Limit to 1 email per thread for efficiency.
- Search query using the meeting attendees’ email (excluding yourself), e.g.
from:[attendee email] OR to:[attendee email]. - Only emails received after the meeting ended.
This node checks whether any email communication has occurred since the meeting.
Step 6: Flag Meetings Needing Follow-Up
Add a Set node named Flag to Follow Up. This flags the meetings where no follow-up email is found.
Use this expression to set the flag: followUp: $json.isEmpty() (where isEmpty indicates no email found).
Step 7: Filter Only Meetings Needing Follow-Up
Add a Filter node named Only Follow Ups to pass only flagged meetings to the next steps.
Step 8: Use AI Agent to Suggest Available Meeting Slots
Add the LangChain Agent node called Meeting Availability Agent. It receives details of the previous meeting such as title, date, and duration.
The AI system analyzes this info and queries your Google Calendar availability using a linked Google Calendar Tool node named Availability to find future slots similar to the previous meeting’s day/time.
Step 9: Parse AI Agent Output
The Output Parser Structured node formats the AI response into a slots array, each containing start and end times.
Step 10: Generate a Follow-Up Message for User Approval
Add a Set node named Generate Message that creates an email text listing available slots. It uses a JavaScript expression to filter out weekend slots and format dates for clarity.
Step 11: Send Email and Wait for User Approval
Add a Gmail node named Send for Human Approval in send-and-wait mode. Set it to email yourself (Sarah), with the message and subject including the lead’s email.
This allows Sarah to reply directly with free text approving, suggesting an alternative, or rejecting the follow-up.
Step 12: Use AI Agent to Book Meeting if Approved
Add another LangChain Agent node named Meeting Booking Agent. It takes the user’s natural language reply and the suggested slots.
If approval is detected, it books the meeting in the calendar automatically via the Google Calendar Tool node named Meetings.
Step 13: Confirm and Finish
The workflow ends here, having ensured no follow-up is missed without letting AI act without user consent.
5. Customizations ✏️
- Modify Meeting Lookback Period: In the Get Past Events Google Calendar node, adjust
timeMinandtimeMaxexpressions to widen or narrow the event date range checked for follow-up needs. - Change AI Model: Switch the OpenAI model in the Meeting Availability Agent and Meeting Booking Agent nodes to a different GPT variant better suited to your needs.
- Customize Follow-Up Email Template: Edit the message field in the Generate Message node to reflect your company’s tone or add additional instructions.
- Add Alternative Approval Channel: Replace or add to the Gmail send-and-wait node by integrating Slack or Telegram to allow quicker approvals on mobile devices.
6. Troubleshooting 🔧
Problem: “No emails found after meeting end date”
Cause: Gmail query syntax in Get Emails Since node is incorrect or attendee email extraction fails.
Solution: Double-check the filter query format. Make sure the expression accessing attendee emails excludes the user’s own email correctly.
Problem: “AI agent returns no available slots”
Cause: Calendar API credentials lack proper access or no availability exists matching criteria.
Solution: Verify Google Calendar credentials. Adjust AI prompt or availability search range in the Availability node to be less restrictive.
Problem: “Follow-up email not sent/waiting indefinitely”
Cause: Gmail node in send-and-wait mode not set up correctly or email address configured incorrectly.
Solution: Check Send for Human Approval node settings. Confirm the exact email address is used for the “sendTo” parameter and that credentials are valid.
7. Pre-Production Checklist ✅
- Ensure Google Calendar OAuth2 credentials are authorized and point to the correct calendar.
- Verify Gmail OAuth2 credentials and test sending an email manually.
- Test the workflow with a past meeting where no follow-up email exists and observe the message for slot suggestions.
- Check AI agent outputs for valid date/time slots and message formatting.
- Prepare fallback handling for empty event lists or no available slots.
8. Deployment Guide
Activate the scheduled trigger and save the workflow. Monitor runs via the n8n execution logs. The workflow will run automatically every morning at 6 AM, sending you reminders for sales follow-ups and offering automated booking assistance with AI.
9. FAQs
- Can I use Microsoft Outlook instead of Google Calendar?
Yes, by swapping the Google Calendar nodes with Microsoft Outlook calendar nodes you can adapt the workflow. - Does this workflow incur API costs?
It uses the OpenAI API; ensure you understand your usage and billing at OpenAI console. - Is my data safe?
All credentials use OAuth2 and data is processed within n8n securely. Review OpenAI and Google privacy policies. - Can this handle dozens of meetings daily?
Yes, but watch for API rate limits on Gmail and Google Calendar.
10. Conclusion
By implementing this advanced n8n workflow, you’ve transformed how Sarah manages sales follow-ups. With automated detection, AI-driven availability suggestions, and human approval before booking, the risk of missed opportunities dramatically decreases.
You save hours weekly and maintain stronger client relationships with minimal manual effort. Next, consider automating sales report summaries or integrating Slack reminders to complement this workflow.
Try this workflow today and experience a smarter, more responsive sales process built around your calendar and communications.