Back to Catalog

Generate personalized cold emails with GPT-4o-mini and Google Sheets

rana tamurerana tamure
701 views
2/3/2026
Official Page

Google Email Ice Breaker Workflow Description This n8n workflow automates the creation of personalized cold emails for dental clinics to promote an AI chatbot service. It retrieves verified email data from a Google Sheet, generates tailored email subject lines and bodies using OpenAI’s GPT-4o-mini model, processes the output, and updates the Google Sheet with the results. Designed for dental clinics or marketers, it streamlines outreach by crafting engaging, seemingly hand-researched emails that drive appointment bookings through an AI chatbot integration. Key Features

Data-Driven Outreach: Pulls verified emails, company names, descriptions, and websites from a Google Sheet to create targeted emails. AI-Powered Email Generation: Uses OpenAI’s GPT-4o-mini to craft concise, persuasive, and personalized cold email content. Personalization: Shortens company names and locations (e.g., "San Fran" instead of "San Francisco") and references specific business details for a tailored feel. Batch Processing: Handles multiple prospects efficiently using a looping mechanism. Google Sheet Integration: Updates the sheet with generated email subjects, bodies, and a status marker for tracking. Customizable Prompts: Easily modify the AI prompt to adapt the tone or service offering for different industries.

Requirements

Credentials: Google Sheets OAuth2 API (for data access) and OpenAI API (for email generation). Setup: Configure a Google Sheet with columns for "EMAIL verified", "companyName", "description", "website", "category", "email subject", "body", and "email created". Ensure the sheet is accessible via your Google account. Dependencies: No external packages required; uses n8n’s built-in Google Sheets, OpenAI, and Code nodes.

How It Works

Trigger & Input: Starts manually (e.g., via "Test workflow") and retrieves data from a Google Sheet, filtering for rows where "category" is "Good" and "email created" is "no". Batch Processing: Loops over filtered rows to process each prospect individually. Email Generation: OpenAI generates a JSON output with a subject and body, personalized using the prospect’s company name, description, and website. Content Processing: A Code node cleans and parses the AI output, extracting the subject and body. Sheet Update: Updates the Google Sheet with the generated subject, body, and sets "email created" to "yes". Looping: Continues processing until all prospects are handled.

Benefits

Time Efficiency: Automates cold email creation, reducing manual effort from hours to minutes. Personalized Outreach: Crafts emails that feel deeply researched, increasing engagement rates. Scalability: Processes large lists of prospects in batches, ideal for high-volume campaigns. Tracking: Updates the Google Sheet to track which emails have been generated. Versatility: Adaptable for other industries by modifying the AI prompt or Google Sheet structure.

Potential Customizations

Prompt Adjustments: Tweak the OpenAI prompt to target different services (e.g., marketing tools, SaaS products) or industries. Filter Modifications: Change Google Sheet filters to target specific prospect categories or regions. Output Expansion: Add nodes to send emails directly or integrate with CRMs like HubSpot. Notifications: Include email or Slack notifications when the workflow completes.

Generate Personalized Cold Emails with GPT-4o Mini and Google Sheets

This n8n workflow automates the process of generating personalized cold emails using data from a Google Sheet and OpenAI's GPT-4o Mini, then updates the sheet with the generated email content.

What it does

This workflow simplifies and automates the following steps:

  1. Triggers Manually: The workflow starts when manually executed.
  2. Reads Data from Google Sheets: It fetches a specified range of data from a Google Sheet, likely containing recipient information and context for the emails.
  3. Loops Over Items: It processes each row (item) from the Google Sheet individually.
  4. Prepares Data for OpenAI: A Code node transforms the incoming Google Sheet data into a structured prompt suitable for the OpenAI API, including a system message and user message to guide the email generation.
  5. Generates Personalized Email with OpenAI: It sends the prepared prompt to OpenAI (likely using the gpt-4o-mini model, given the directory name context) to generate a personalized cold email.
  6. Updates Google Sheet: It takes the generated email content and updates the corresponding row in the Google Sheet, adding the personalized email to a designated column.

Prerequisites/Requirements

To use this workflow, you will need:

  • n8n Account: A running instance of n8n.
  • Google Sheets Account: Access to a Google Sheet containing the data for your cold email recipients.
  • OpenAI API Key: An API key for OpenAI with access to their models (e.g., gpt-4o-mini).

Setup/Usage

  1. Import the Workflow:

    • Download the provided JSON file for this workflow.
    • In your n8n instance, go to "Workflows" and click "New".
    • Click the three dots next to the "New Workflow" button and select "Import from JSON".
    • Paste the workflow JSON or upload the file.
  2. Configure Credentials:

    • Google Sheets:
      • Click on the "Google Sheets" node.
      • Click "New Credential" and follow the instructions to authenticate your Google account. Ensure it has access to the target spreadsheet.
      • Specify the "Spreadsheet ID" and the "Range" you want to read from (e.g., Sheet1!A:E).
      • In the second "Google Sheets" node (for updating), ensure the same credential is used, and specify the "Spreadsheet ID" and the "Range" for updating (e.g., Sheet1!F if you're writing to column F).
    • OpenAI:
      • Click on the "OpenAI" node.
      • Click "New Credential" and enter your OpenAI API Key.
  3. Customize the Code Node:

    • Open the "Code" node.
    • Review the JavaScript code. This is where you define the structure of the prompt sent to OpenAI.
    • Adjust the systemMessage and userMessage to fit your specific cold email strategy, including placeholders for data coming from Google Sheets (e.g., {{ $json.name }}, {{ $json.company }}).
    • Ensure the output of this node matches the expected input for the OpenAI node.
  4. Customize the OpenAI Node:

    • Open the "OpenAI" node.
    • Select the desired "Model" (e.g., gpt-4o-mini).
    • Adjust other parameters like Temperature or Max Tokens as needed to control the creativity and length of the generated emails.
  5. Test and Activate:

    • Save the workflow.
    • Click "Execute Workflow" to run a test.
    • Review the output in the n8n interface and in your Google Sheet to ensure emails are generated and updated correctly.
    • Once satisfied, activate the workflow.

This workflow provides a powerful foundation for automating personalized outreach, saving significant time and effort.

Related Templates

Track daily moods with AI analysis & reports using GPT-4o, Data Tables & Gmail

Track your daily mood in one tap and receive automated AI summaries of your emotional trends every week and month. Perfect for self-reflection, wellness tracking, or personal analytics. This workflow logs moods sent through a webhook (/mood) into Data Tables, analyzes them weekly and monthly with OpenAI (GPT-4o), and emails you clear summaries and actionable recommendations via Gmail. ⚙️ How It Works Webhook – Mood → Collects new entries (🙂, 😐, or 😩) plus an optional note. Set Mood Data → Adds date, hour, and note fields automatically. Insert Mood Row → Stores each record in a Data Table. Weekly Schedule (Sunday 20:00) → Aggregates the last 7 days and sends a summarized report. Monthly Schedule (Day 1 at 08:00) → Aggregates the last 30 days for a deeper AI analysis. OpenAI Analysis → Generates insights, patterns, and 3 actionable recommendations. Gmail → Sends the full report (chart + AI text) to your inbox. 📊 Example Auto-Email Weekly Mood Summary (last 7 days) 🙂 5 ██████████ 😐 2 ████ 😩 0 Average: 1.7 (Positive 🙂) AI Insights: You’re trending upward this week — notes show that exercise days improved mood. Try keeping short walks mid-week to stabilize energy. 🧩 Requirements n8n Data Tables enabled OpenAI credential (GPT-4o or GPT-4 Turbo) Gmail OAuth2 credential to send summaries 🔧 Setup Instructions Connect your credentials: Add your own OpenAI and Gmail OAuth2 credentials. Set your Data Table ID: Open the Insert Mood Row node and enter your own Data Table ID. Without this, new moods won’t be stored. Replace the email placeholder: In the Gmail nodes, replace your.email@example.com with your actual address. Deploy and run: Send a test POST request to /mood (e.g. { "mood": "🙂", "note": "productive day" }) to log your first entry. ⚠️ Before activating the workflow, ensure you have configured the Data Table ID in the “Insert Mood Row” node. 🧠 AI Analysis Interprets mood patterns using GPT-4o. Highlights trends, potential triggers, and suggests 3 specific actions. Runs automatically every week and month. 🔒 Security No personal data is exposed outside your n8n instance. Always remove or anonymize credential references before sharing publicly. 💡 Ideal For Personal mood journaling and AI feedback Therapists tracking client progress Productivity or self-quantification projects 🗒️ Sticky Notes Guide 🟡 Mood Logging Webhook POST /mood receives mood + optional note. ⚠️ Configure your own Data Table ID in the “Insert Mood Row” node before running. 🟢 Weekly Summary Runs every Sunday 20:00 → aggregates last 7 days → generates AI insights + emails report. 🔵 Monthly Summary Runs on Day 1 at 08:00 → aggregates last 30 days → creates monthly reflection. 🟣 AI Analysis Uses OpenAI GPT-4o to interpret trends and recommend actions. 🟠 Email Delivery Sends formatted summaries to your inbox automatically.

Jose CastilloBy Jose Castillo
105

IT ops AI SlackBot workflow - chat with your knowledge base

Video Demo: Click here to see a video of this workflow in action. Summary Description: The "IT Department Q&A Workflow" is designed to streamline and automate the process of handling IT-related inquiries from employees through Slack. When an employee sends a direct message (DM) to the IT department's Slack channel, the workflow is triggered. The initial step involves the "Receive DMs" node, which listens for new messages. Upon receiving a message, the workflow verifies the webhook by responding to Slack's challenge request, ensuring that the communication channel is active and secure. Once the webhook is verified, the workflow checks if the message sender is a bot using the "Check if Bot" node. If the sender is identified as a bot, the workflow terminates the process to avoid unnecessary actions. If the sender is a human, the workflow sends an acknowledgment message back to the user, confirming that their query is being processed. This is achieved through the "Send Initial Message" node, which posts a simple message like "On it!" to the user's Slack channel. The core functionality of the workflow is powered by the "AI Agent" node, which utilizes the OpenAI GPT-4 model to interpret and respond to the user's query. This AI-driven node processes the text of the received message, generating an appropriate response based on the context and information available. To maintain conversation context, the "Window Buffer Memory" node stores the last five messages from each user, ensuring that the AI agent can provide coherent and contextually relevant answers. Additionally, the workflow includes a custom Knowledge Base (KB) tool (see that tool template here) that integrates with the AI agent, allowing it to search the company's internal KB for relevant information. After generating the response, the workflow cleans up the initial acknowledgment message using the "Delete Initial Message" node to keep the conversation thread clean. Finally, the generated response is sent back to the user via the "Send Message" node, providing them with the information or assistance they requested. This workflow effectively automates the IT support process, reducing response times and improving efficiency. To quickly deploy the Knowledge Ninja app in Slack, use the app manifest below and don't forget to replace the two sample urls: { "display_information": { "name": "Knowledge Ninja", "description": "IT Department Q&A Workflow", "background_color": "005e5e" }, "features": { "bot_user": { "display_name": "IT Ops AI SlackBot Workflow", "always_online": true } }, "oauth_config": { "redirect_urls": [ "Replace everything inside the double quotes with your slack redirect oauth url, for example: https://n8n.domain.com/rest/oauth2-credential/callback" ], "scopes": { "user": [ "search:read" ], "bot": [ "chat:write", "chat:write.customize", "groups:history", "groups:read", "groups:write", "groups:write.invites", "groups:write.topic", "im:history", "im:read", "im:write", "mpim:history", "mpim:read", "mpim:write", "mpim:write.topic", "usergroups:read", "usergroups:write", "users:write", "channels:history" ] } }, "settings": { "event_subscriptions": { "request_url": "Replace everything inside the double quotes with your workflow webhook url, for example: https://n8n.domain.com/webhook/99db3e73-57d8-4107-ab02-5b7e713894ad", "bot_events": [ "message.im" ] }, "orgdeployenabled": false, "socketmodeenabled": false, "tokenrotationenabled": false } }

Angel MenendezBy Angel Menendez
39013

Publishing videos across multiple platforms with Blotato (Instagram, YouTube)

Description This workflow automates video distribution to 9 social platforms simultaneously using Blotato's API. It includes both a scheduled publisher (checks Google Sheets for videos marked "Ready") and a subworkflow (can be called from other workflows). Perfect for creators and marketers who want to eliminate manual posting across Instagram, YouTube, TikTok, Facebook, LinkedIn, Threads, Twitter, Bluesky, and Pinterest. --- How It Works Scheduled Publisher Workflow Schedule Trigger – Runs daily at 10 PM (configurable). Fetch Video – Pulls video URL and description from Google Sheets where "ReadyToPost" = "Ready". Upload to Blotato – Sends video to Blotato's media service. Broadcast to 9 Platforms – Publishes simultaneously to all connected social accounts. Update Sheet – Changes "ReadyToPost" to "Finished" so it won't repost. --- Subworkflow: Video Publisher (Reusable) Receive Input – Gets URL, title, and description from parent workflow. Fetch Credentials – Pulls Blotato API key from n8n Data Table. Upload & Distribute – Uploads to Blotato, then posts to all platforms. Completion Signal – Returns to parent workflow when done. > 💡 Tip: The subworkflow can be called from ANY workflow - great for posting videos generated by AI workflows, webhook triggers, or manual forms. --- Test Workflow (Optional) Form Submission – Upload a video file with title and description. Upload to Dropbox – Generates shareable URL via "[SUB] Dropbox Upload Link" subworkflow. Trigger Publisher – Calls the subworkflow above to distribute the video. --- Setup Instructions Estimated Setup Time: 20-25 minutes Step 1: Blotato Account Setup Create account at Blotato Dashboard Connect all your social media accounts (most time-consuming step) Go to Settings and copy your account IDs for each platform Go to API Settings and copy your API key Step 2: Configure Workflow Update Social IDs: Open "Assign Social Media IDs" node Replace placeholder IDs with your actual Blotato account IDs: json { "instagramid": "YOURID", "youtubeid": "YOURID", "tiktokid": "YOURID", ... } Create Data Table: Create n8n Data Table named "Credentials" Add columns: service and token Add row: service = blotato, token = YOURAPIKEY Set Up Google Sheet: Create sheet with columns: URL VIDEO, ReadyToPost, Description, Titre (Title) Add video data Set ReadyToPost to "Ready" for videos you want to post Connect Your Sheet: Update "Get my video" node with your Google Sheet ID > ⚙️ Pro Tip: If you don't need the scheduled version, just use the subworkflow and call it from other workflows. --- Use Cases AI Video Workflows: Automatically post videos generated by Veo, Sora, or other AI models to all platforms. Content Schedulers: Queue videos in Google Sheets, let the scheduler post them automatically. Batch Publishing: Generate 10 videos, mark them all "Ready", and let the workflow distribute them. Marketing Campaigns: Coordinate multi-platform launches with a single click. Agencies: Manage multiple client accounts by swapping Blotato credentials in the Data Table. --- Customization Options Remove Unused Platforms: Disconnect any social media nodes you don't use (speeds up execution). Change Schedule: Modify the Schedule Trigger to run multiple times per day or on specific days. Different File Hosts: Replace Dropbox with Google Drive, S3, or Cloudinary in the test workflow. Platform-Specific Captions: Add IF nodes before each platform to customize descriptions or add hashtags. Add Approval Step: Insert a WhatsApp or Telegram notification before posting for manual review. Watermarks: Add a Code node to overlay branding before uploading to Blotato. --- Important Notes ⚠️ Two Workflows in One File: Lines 1-600: Scheduled publisher (checks Google Sheets) Lines 600+: Subworkflow (called by other workflows) ⚠️ Data Table vs. Hardcoding: Scheduled workflow: Hardcoded API keys in HTTP nodes Subworkflow: Uses Data Table for API keys (recommended approach) ⚠️ Why Use the Subworkflow? Can be called from ANY workflow Easier to manage API keys (one place to update) More flexible for complex automation systems

AnthonyBy Anthony
159