Quick overview
This workflow runs every morning to find local businesses via Google Places, pulls their website content to extract an email address, uses OpenAI to draft a personalised automation-focused outreach message, then sends it via SMTP while tracking contacts in an n8n Data Table.
How it works
- Runs daily at 9:00 and sets the campaign parameters (rotating niche and city, sender details, daily send cap, and delay between emails).
- Searches Google Places for businesses matching the selected niche and location, then iterates through each returned place.
- Keeps only businesses with a website, fetches the website HTML, and extracts a likely contact email address plus a short text snippet.
- Filters out leads without an email and skips any email address already logged in the n8n Data Table.
- Limits the run to the configured daily cap and processes leads in batches.
- Uses OpenAI to generate a structured subject and body for a personalised cold email based on the business snippet and your campaign details.
- Sends the email via SMTP with your signature and unsubscribe note, logs the contact in the Data Table, and waits the configured delay before sending the next email.
Setup
- Add credentials for Google Places API (HTTP Header Auth with X-Goog-Api-Key), OpenAI, and your SMTP email account.
- Create an n8n Data Table named outreach_contacts with columns for email, businessName, status, and timestamp.
- Update the Campaign Config values (your name, company, sender email/address, website link, service area, niche/city lists, dailyCap, and sendDelaySeconds) before publishing.
- Review and adjust the OpenAI prompt if needed, keeping the required placeholders and ensuring it returns a subject and body.
- Test with a manual execution, then publish and activate the workflow so the schedule trigger runs the published version.