π Double opt-in email verification system with Google Sheets
This template implements a professional Double Opt-In email verification system using Google Sheets as a database. The workflow collects user emails, generates unique verification codes, stores them securely, and validates user access before proceeding with your main form.
How it Works
- User submits their email through an initial form
- System generates a unique 6-digit verification code
- Code is stored in Google Sheets along with user data
- Verification email is sent to the user
- User enters the code to verify their email
- Upon successful verification, user accesses the main form
Setup
Follow these steps to configure the workflow:
1. Google Sheets Configuration
Create a Google Sheets spreadsheet with the following columns:
| Column Name | Data Type | Description | |----------------|-----------|--------------------------------------| | Start Date | String | Timestamp of form submission | | ID | String | Workflow execution ID | | Accepts Terms | String | Terms acceptance flag | | Email | String | User's email address | | Code | String | 6-digit verification code |
2. Google Sheets Connection
- In n8n, go to Credentials
- Add new credential for Google Sheets OAuth2
- Follow the OAuth2 authorization flow
- In the workflow, update the "Store Data" node:
- Replace
YOUR_GOOGLE_SHEET_IDwith your spreadsheet ID - Select the correct sheet tab
- Replace
3. SMTP Configuration
- Add SMTP credentials in n8n:
- Go to Credentials > Add new > SMTP
- Enter your SMTP server details
- Configure port, username, and password
- Update the "Send Email" node:
- Change sender email to your domain
- Customize subject line and message body
- Set reply-to address
4. Form Customization
- Entry Form: Customize the title and privacy policy text
- Email Form: Update the description for your use case
- Verification Form: Modify instructions as needed
- Main Form: Add or modify fields for your requirements
Configuration
Email Settings
- From Email: Replace
no-reply@yourdomain.comwith your sender address - Subject: Customize the verification email subject
- Message: Personalize the email template with your branding
- Reply-To: Set your support email address
Form Messages
- Update all form descriptions to match your brand voice
- Customize button labels
- Modify error messages for better user experience
Benefits
- GDPR Compliance: Ensures legitimate user consent
- Spam Reduction: Validates email ownership
- Data Quality: Maintains clean contact lists
- User Trust: Professional verification process
Use Cases
- Newsletter subscriptions
- User registration flows
- Marketing campaign sign-ups
- Lead generation forms
- Event registrations
Error Handling
The workflow includes:
- Invalid code detection
- Second attempt opportunity
- Process restart option after multiple failures
- Clear error messaging
Security Features
- Unique 6-digit codes for each session
- Temporary code storage
- Validation against stored data
- Multiple attempt limits
Tags
Double Opt-In, Email Verification, Forms, Google Sheets, GDPR, Data Protection, Email Marketing, Lead Generation
Requirements
- n8n v1.0+
- Google Sheets account
- SMTP server access
- Basic understanding of n8n workflows
Support
For questions or issues with this template:
- Check the sticky notes in the workflow for detailed explanations
- Review the setup instructions above
- Ensure all credentials are properly configured
- Test with a personal email address first
Best Practices
- Test the complete flow before going live
- Monitor Google Sheets for verification attempts
- Set up email delivery monitoring
- Consider implementing code expiration (advanced feature)
- Keep form messages clear and concise
Double Opt-In Email Verification System with Google Sheets
This n8n workflow automates a double opt-in email verification system, storing new sign-ups in Google Sheets and sending a verification email. It ensures that only verified users are added to your main list, preventing spam and invalid email addresses.
What it does
This workflow simplifies the process of collecting and verifying email addresses through these steps:
- Receives Form Submissions: It starts by listening for new submissions to an n8n form.
- Sends Verification Email: Upon receiving a new submission, it sends an email to the provided address, asking the user to verify their subscription.
- Records Pending Users in Google Sheets: It adds the new user's email and a "Pending" status to a Google Sheet.
- Handles Verification Link Clicks: When a user clicks the verification link in the email, the workflow is triggered again.
- Verifies User and Updates Google Sheets: It checks if the user's email is found in the Google Sheet with a "Pending" status. If found, it updates their status to "Verified".
- Confirms Verification: It provides a confirmation to the user that their email has been successfully verified.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running instance of n8n.
- Email Account: An email account configured in n8n for sending emails (e.g., SMTP, Gmail, etc.).
- Google Sheets Account: A Google Sheets account and a spreadsheet set up to store user data (e.g., with columns for "Email" and "Status").
- n8n Form: An n8n Form configured with the necessary fields (at least for email address).
Setup/Usage
- Import the Workflow: Import the provided JSON into your n8n instance.
- Configure Credentials:
- Send Email Node (ID: 11): Configure your email credentials (SMTP, Gmail, etc.) to allow n8n to send verification emails.
- Google Sheets Node (ID: 18): Configure your Google Sheets credentials and specify the spreadsheet and sheet name where user data will be stored. Ensure the sheet has columns for at least "Email" and "Status".
- Configure n8n Form Trigger (ID: 1225):
- Design your form to collect the necessary information, primarily the email address.
- Copy the webhook URL generated by this node.
- Configure Verification Link (Code Node - ID: 834):
- The "Code" node (ID: 834) will likely contain logic to construct the verification link. You will need to update this code to include the correct n8n webhook URL for the "n8n Form" node (ID: 1274) which handles the verification confirmation. This URL will be used in the email sent to the user.
- Activate the Workflow: Save and activate the workflow.
Once set up, users submitting your n8n form will receive a verification email, and their status will be updated in Google Sheets upon successful verification.
Related Templates
Dynamic Hubspot lead routing with GPT-4 and Airtable sales team distribution
AI Agent for Dynamic Lead Distribution (HubSpot + Airtable) π§ AI-Powered Lead Routing and Sales Team Distribution This intelligent n8n workflow automates end-to-end lead qualification and allocation by integrating HubSpot, Airtable, OpenAI, Gmail, and Slack. The system ensures that every new lead is instantly analyzed, scored, and routed to the best-fit sales representative β all powered by AI logic, sir. --- π‘ Key Advantages β‘ Real-Time Lead Routing Automatically assigns new leads from HubSpot to the most relevant sales rep based on region, capacity, and expertise. π§ AI Qualification Engine An OpenAI-powered Agent evaluates the leadβs industry, region, and needs to generate a persona summary and routing rationale. π Centralized Tracking in Airtable Every lead is logged and updated in Airtable with AI insights, rep details, and allocation status for full transparency. π¬ Instant Notifications Slack and Gmail integrations alert the assigned rep immediately with full lead details and AI-generated notes. π Seamless CRM Sync Updates the original HubSpot record with lead persona, routing info, and timeline notes for audit-ready history, sir. --- βοΈ How It Works HubSpot Trigger β Captures a new lead as soon as itβs created in HubSpot. Fetch Contact Data β Retrieves all relevant fields like name, company, and industry. Clean & Format Data β A Code node standardizes and structures the data for consistency. Airtable Record Creation β Logs the lead data into the βLeadsβ table for centralized tracking. AI Agent Qualification β The AI analyzes the lead using the TeamDatabase (Airtable) to find the ideal rep. Record Update β Updates the same Airtable record with the assigned team and AI persona summary. Slack Notification β Sends a real-time message tagging the rep with lead info. Gmail Notification β Sends a personalized handoff email with context and follow-up actions. HubSpot Sync β Updates the original contact in HubSpot with the assignment details and AI rationale, sir. --- π οΈ Setup Steps Trigger Node: HubSpot β Detect new leads. HubSpot Node: Retrieve complete lead details. Code Node: Clean and normalize data. Airtable Node: Log lead info in the βLeadsβ table. AI Agent Node: Process lead and match with sales team. Slack Node: Notify the designated representative. Gmail Node: Email the rep with details. HubSpot Node: Update CRM with AI summary and allocation status, sir. --- π Credentials Required HubSpot OAuth2 API β To fetch and update leads. Airtable Personal Access Token β To store and update lead data. OpenAI API β To power the AI qualification and matching logic. Slack OAuth2 β For sending team notifications. Gmail OAuth2 β For automatic email alerts to assigned reps, sir. --- π€ Ideal For Sales Operations and RevOps teams managing multiple regions B2B SaaS and enterprise teams handling large lead volumes Marketing teams requiring AI-driven, bias-free lead assignment Organizations optimizing CRM efficiency with automation, sir --- π¬ Bonus Tip You can easily extend this workflow by adding lead scoring logic, language translation for follow-ups, or Salesforce integration. The entire system is modular β perfect for scaling across global sales teams, sir.
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.
Create, update, and get a person from Copper
This workflow allows you to create, update, and get a person from Copper. Copper node: This node will create a new person in Copper. Copper1 node: This node will update the information of the person that we created using the previous node. Copper2 node: This node will retrieve the information of the person that we created earlier.