workflows.fit
Back to n8n workflows
n8n templateFreeBy Robert Breen

Email new leads from Google Sheets via Outlook on a schedule

Send a templated outreach email to new leads in a Google Sheet on a daily schedule, then mark each lead as contacted so they won’t be emailed twice. Built with: Schedule Trigger → Google Sheets → Filter → Outlook Send...

Data & StorageProductivityCommunicationHITLCore NodesMicrosoft OutlookSchedule TriggerGoogle Sheets
Loading interactive preview...

Template notes

Send a templated outreach email to new leads in a Google Sheet on a daily schedule, then mark each lead as contacted so they won’t be emailed twice. Built with: Schedule Trigger → Google Sheets → Filter → Outlook Send Email → Google Sheets (append/update).

---

Who’s it for - Teams that collect leads in Sheets and want automatic, once-per-lead outreach - Solo founders/consultants running simple top-of-funnel follow-ups - Anyone prototyping CRM-lite flows in n8n

---

How it works / What it does 1. Schedule Trigger runs daily (e.g., 09:00). 2. Get rows (Google Sheets) pulls leads from your sheet. 3. Filter keeps only rows where Contacted is empty. 4. Outlook – Send a message emails each remaining lead (to = {{$json.Email}}). 5. Google Sheets (appendOrUpdate) writes back Contacted = Yes (match on Email) to prevent re-sending.

---

How to set up 1) Google Sheets (OAuth2) - In n8n → Credentials → New → Google Sheets (OAuth2), sign in and grant access. - In Get rows: select your Lead Source sheet (e.g., “New Leads”). - In Append/Update: select the sheet you want to mark as contacted (can be the same sheet or a CRM sheet). - Make sure your sheet has at least: Email, Contacted (blank for new).

2) Outlook (Microsoft Graph) OAuth2 - n8n Cloud (quick connect): - In Credentials → New → Microsoft Outlook OAuth2, choose Connect, sign in with your Microsoft account, and accept permissions. - Self-hosted (Azure App Registration): 1) Azure Portal → App registrations → New registration. 2) Add redirect URL: https://YOURN8NURL/rest/oauth2-credential/callback. 3) API permissions (Delegated): offlineaccess, Mail.Send, User.Read. Grant admin consent if required. 4) Create a Client secret; copy Application (client) ID and Directory (tenant) ID. 5) In n8n, create Microsoft Outlook OAuth2 credential with those values and scopes: offlineaccess Mail.Send openid email profile. - In the Send a message node, select that credential and keep To mapped to {{$json.Email}}. - Customize Subject and Body to your brand (default provided).