by Felix
Quick overview This workflow watches a Slack channel for shared LinkedIn profile screenshots or PDFs, uses easybits Extractor to convert the file into structured candidate fields, deduplicates against a Google Sheets candidate database, and replies in the original Slack thread with either a confirmation or a duplicate warning. How it works Triggers when a file is shared in a specified Slack channel. Retrieves full Slack file metadata and downloads the file using the private download URL. Sends the downloaded LinkedIn screenshot or PDF to easybits Extractor to extract structured profile fields. Normalizes the extracted data into a consistent candidate schema, adds a source tag, and timestamps when the candidate was added. Reads the existing Google Sheets candidate list and checks for duplicates using a normalized key of candidate name plus current company. If a duplicate is found, posts a warning reply in the same Slack thread and does not write to Google Sheets. If no duplicate is found, appends the candidate as a new row in Google Sheets and posts a confirmation reply with a link to the sheet. Setup Connect Slack credentials with permission to read shared files and post messages, and select the Slack channel to watch in the trigger. Connect your easybits Extractor API credentials (and install @easybits/n8n-nodes-extractor if you are self-hosting). Connect Google Sheets OAuth2 credentials and set the spreadsheet document ID and sheet/tab name for both the read and append steps. Ensure your Google Sheet has headers matching the workflow fields (for example: name, current_title, current_company, location, total_years_experience, top_skills, last_roles, education, certifications, summary, source, added_at). Update the “Open candidate sheet” button URL in the Slack messages to point to your actual Google Sheets document.
by Hiroshi Hashimoto
AI Handwritten Memo Organizer – Overview This workflow receives handwritten memo images sent via LINE and automatically extracts, summarizes, and organizes the content using AI. Step-by-step process: User sends a handwritten memo image via LINE Webhook receives the image Immediate reply is sent: “Processing…” Image is saved to Google Drive AI performs OCR and generates structured data (title, category, summary, tags) The JSON response is safely parsed with error handling OCR failure is detected if text cannot be properly extracted If OCR fails: → User is notified with guidance for retaking the image If OCR succeeds: → Check if the category sheet exists in Google Sheets → If not, create a new sheet → Save the data (title, summary, tags, date, image URL) Completion message is sent to the user via LINE Setup Steps Create a LINE Messaging API channel and obtain the Channel Access Token Create a Google Spreadsheet for storing memo data Create a Google Drive folder to store uploaded images Set the following values in the Config node: o LINE_ACCESS_TOKEN o GOOGLE_SHEETS_ID Set the Webhook URL in the LINE Developers Console
by DataForSEO
This weekly workflow automatically discovers new high-volume, ranked keywords for your domain on Google without manual SERP monitoring. On each run, the workflow fetches the latest ranking and search volume data using the DataForSEO Labs API and stores a fresh snapshot in Google Sheets. It then compares this data with the previous run to identify any new keywords your domain started ranking for, focusing on queries with a search volume above 1,000. All newly ranked keywords that match this rule are added to a dedicated Google Sheet, along with their ranking position and search volume, creating a growing historical log you can use to analyze gains over time. Once new terms are identified, the workflow creates tasks in Asana to help your team act on them quickly, and sends you a Slack summary highlighting the latest changes. Who’s it for SEO professionals, marketers, and content teams who want an automated way to discover newly ranked, high-volume Google keywords and turn organic ranking gains into actionable content or optimization tasks. What it does This workflow automatically detects when your domain starts ranking for new high-volume keywords on Google, records them in Google Sheets, creates related tasks in Asana, and sends a weekly summary via Slack. How it works Runs on a predefined schedule (default: once a week). Reads your keywords and target domains from Google Sheets. Extracts the latest Google results and keyword metrics via DataForSEO API. Compares current data with the previous snapshot. Logs newly ranked keywords to a dedicated Google Sheet. Creates follow-up tasks in Asana for content team. Sends a Slack summary with key changes. Requirements DataForSEO account and API credentials Google Sheets spreadsheet with your keywords, following the required column structure (as in the example). Google Sheets spreadsheet with your target domains, following the required column structure (as in the example). Asana account Slack account Customization You can easily tailor this workflow to your needs by adjusting the run schedule, changing the minimum search volume threshold, exporting results to other tools (like Looker Studio or BigQuery), and customizing the content of the Asana task or Slack message to match your team’s workflow.
by Pawan
Who is this for? This workflow is designed for growth agencies, SaaS founders, and sales teams who want to move beyond static lead forms. It is ideal for those who need a "living" system that not only captures leads but also provides immediate value through AI-generated strategies and evolves based on performance data. How it works The template operates in two distinct phases: The Lead Engine**: A user interacts with a chat bubble. A Gemini-powered agent conversationally qualifies the lead (Name, Industry, Budget). A custom JavaScript node ensures data integrity before an "AI Council" node generates three industry-specific growth tactics. High-value leads are then routed to Slack and logged in Google Sheets. The Self-Optimization Loop**: A scheduled trigger audits lead data in Google Sheets daily. It uses Gemini to identify friction points and sends a "System Audit" report to Slack, suggesting prompt improvements to increase conversion rates. How to set up Credentials**: Connect your Google Gemini (API Key), Google Sheets (OAuth2), and Slack (OAuth2) accounts. Google Sheets**: Create a spreadsheet with headers: Lead, Suggestion, and Status. Copy the Spreadsheet ID into the Google Sheets nodes. Slack**: Invite your n8n bot to a specific channel (e.g., /invite @n8n) and select that channel in the Slack nodes. Memory**: Ensure the Window Buffer Memory node is connected to the AI Agent to maintain conversation state. Requirements Google AI (Gemini) API Key. Google Sheets for data logging. Slack for real-time notifications. n8n version 1.0+ (supporting AI Agent nodes). How to customize Scoring Logic: Adjust the Scoring Logic code node to change what constitutes a "Hot" lead. AI Strategist: Modify the prompt in the AI Council: Strategist node to provide different types of value (e.g., free audits instead of growth tactics).
by Intuz
This n8n template from Intuz provides a complete and automated solution for identifying high-intent leads from LinkedIn job postings and automatically generating personalized outreach emails. Disclaimer Community nodes are used in this workflow. Who’s this workflow for? B2B Sales Teams & SDRs Recruitment Agencies & Tech Recruiters Startup Founders Growth Marketing Teams How it works 1. Scrape Hiring Signals: The workflow starts by using an Apify scraper to find companies actively hiring for specific roles on LinkedIn (e.g., “ML Engineer”). 2. Filter & Qualify Companies: It automatically filters the results based on your criteria (e.g., company size, industry) to create a high-quality list of target accounts. 3. Find Decision-Makers: For each qualified company, it uses Apollo.io to find key decision-makers (VPs, Directors, etc.) and enrich their profiles with verified email addresses using user’s Apollo API. 4. Build a Lead List: All the enriched lead data—contact name, title, email, company info—is systematically added to a Google Sheet. 5. Generate AI-Powered Emails: The workflow then feeds each lead’s data to a Google Gemini AI model, which drafts a unique, personalized cold email that references the specific job the company is hiring for. 6. Complete the Outreach List: Finally, the AI-generated subject line and email body are saved back into the Google Sheet, leaving you with a fully prepared, hyper-targeted outreach campaign. Setup Instructions 1. Apify Configuration: Connect your Apify account in the Run the LinkedIn Job Scraper node. You’ll need an apify scrapper, we have used this scrapper In the Custom Body field, paste the URL of your target LinkedIn Jobs search query. 2. Data Enrichment: Connect your account API of data providers like Clay, Hunter, Apollo, etc. using HTTP Header Auth in the Get Targeted Personnel and Email Finder nodes. 3. Google Gemini AI: Connect your Google Gemini (or PaLM) API account in the Google Gemini Chat Model node. 4. Google Sheets Setup: Connect your Google Sheets account. Create a spreadsheet and update the Document ID and Sheet Name in the three Google Sheets nodes to match your own. 5. Activate Workflow: Click “Execute workflow” to run the entire lead generation and email-writing process on demand. Connect with us: Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Workflow Automation Click here- Get Started
by Fahmi Fahreza
Weekly SEO Watchlist Audit to Google Sheets (Gemini + Decodo) Sign up for Decodo HERE for Discount Automatically fetches page content, generates a compact SEO audit (score, issues, fixes), and writes both a per-URL summary and a normalized “All Issues” table to Google Sheets—great for weekly monitoring and prioritization. Who’s it for? Content/SEO teams that want lightweight, scheduled audits of key pages with actionable next steps and spreadsheet reporting. How it works Weekly trigger loads the Google Sheet of URLs. Split in Batches processes each URL. Decodo fetches page content (markdown + status). Gemini produces a strict JSON audit via the AI Chain + Output Parser. Code nodes flatten data for two tabs. Google Sheets nodes append Summary and All Issues rows. Split in Batches continues to the next URL. How to set up Add credentials for Google Sheets, Decodo, and Gemini. Set sheet_id and Sheet GIDs in the Set node. Ensure input sheet has a URL column. Configure your Google Sheets tabs with proper headers matching each field being appended (e.g., URL, Decodo Score, Priority, etc.). Adjust schedule as needed. Activate the workflow.
by iamvaar
Quick Overview This workflow collects end-of-day updates from team members in Slack, stores them in Google Sheets, and posts a concise executive summary back to Slack using Google Gemini. How it works Runs daily at 3pm, reads the team roster from Google Sheets, filters out people marked as on leave, and sends each active member an EOD update form in Slack. Receives Slack button/form submissions via a webhook, parses the interactive payload, and replaces the original message with a confirmation. Checks whether the submitted EOD date matches today’s date, and sends a private Slack alert to the owner if someone submits late. For on-time submissions, reads today’s entries from the EOD submissions Google Sheet, deduplicates by user and date, and appends the new submission to Google Sheets. Runs daily at 5pm, reads today’s submissions and yesterday’s “tomorrow plan” entries from Google Sheets and merges them per user. Aggregates the merged data, calculates attendance and expected submission counts from the team roster, and sends the dataset to Google Gemini to generate an executive summary. Posts the generated Slack-formatted summary message to the configured Slack channel. Setup Create or connect a Slack app for interactive messages, add Slack API credentials in n8n, and configure the workflow’s webhook URL as the Slack Interactivity Request URL. Add Google Sheets Service Account credentials, grant the service account access to your team roster sheet and your EOD submissions sheet, and update the spreadsheet IDs/sheet tabs where needed. Add Google Gemini (Google PaLM) API credentials and ensure the configured Gemini model is available in your Google project. Populate the team roster sheet with each person’s Slack user ID and a boolean “today_on_leave?” field so the workflow can decide who receives prompts and who is expected to submit. Replace the placeholder Slack user/channel IDs for the owner notification and the summary destination in the Slack nodes.
by Giovanni Abel
Quick overview This workflow runs on a schedule to sync files from a Google Drive folder into a Pinecone vector index for RAG, extracting text from PDFs, XLSX, Google Docs, and spreadsheets, generating embeddings with Google Gemini, and tracking file state in a Google Sheets log to handle updates and deletions. How it works Runs on a schedule and fetches the current file list from a target Google Drive folder and the existing file log from Google Sheets. Compares Google Drive files with the Google Sheets log to detect new/updated files to ingest and files that were deleted from Drive. For new or updated files, deletes any existing vectors in Pinecone for the file ID, downloads the file from Google Drive, and routes it by MIME type. Extracts text from PDFs, XLSX/Google Sheets, and plain text/Google Docs files and maps the extracted content with file metadata (file ID, name, modified time, and MIME type). Chunks the document text, generates embeddings with Google Gemini, and inserts the resulting vectors and metadata into a Pinecone index. Appends or updates the Google Sheets log with the latest file metadata, and for deleted Drive files it deletes matching vectors in Pinecone and removes the corresponding log rows. Setup Connect Google Drive OAuth2 credentials and set the folder ID to the Drive folder you want to sync. Connect Google Sheets OAuth2 credentials and set the spreadsheet/sheet used as the sync log (it must include at least file_id, name, and modifiedTIme columns). Create or select a Pinecone index (for example, gdrive-rag), add Pinecone API credentials, and ensure the Pinecone delete endpoint and API key header are configured correctly. Add Google Gemini (PaLM) API credentials for the embeddings model used by the workflow.
by Vuong Nguyen
How it works Reads product image links from a Google Sheet. Analyzes each image, generates an AI prompt, and combines the product with a human model image. Creates final AI advertising photos and: Saves images to Google Drive. Saves prompts + result links to a separate “output” sheet. Here’s an updated version of the note, optimized so the customer knows exactly what they must customize (no hard‑coded IDs assumed). One‑time setup for your own account Before using the workflow, you must point it to your Google Sheet, Drive folder, and model image. 2.1. Prepare your Google assets Google Sheet Create or copy a spreadsheet. Create two sheets, for example: Sheet A (input): e.g. “Product Images” Required column: Image-URL Sheet B (output): e.g. “Output Images” Required columns: Image-URL, Prompt, Output Google Drive Create a folder to store generated AI images (e.g. “AI Product Photos”). Upload one model image (e.g. Model.png) that will be used as the human model in all generated photos. n8n credentials In n8n, make sure you have: A Google Sheets credential (your Google account). A Google Drive credential. A Google Gemini / PaLM API credential. 2.2. Update the workflow nodes Open the workflow “Automated generation of AI advertising photos for product marketing” and update these nodes: Node: “Read Image URLs” (Google Sheets) Set Document / Spreadsheet to your product spreadsheet. Set Sheet to your input sheet (e.g. “Product Images”). Make sure that sheet has a column named exactly Image-URL. Node: “Insert Image URL in Table” (Google Sheets) Operation: appendOrUpdate (keep as is). Set Document / Spreadsheet to the same spreadsheet as above (or another one if you prefer). Set Sheet to your output sheet (e.g. “Output Images”). Make sure the output sheet has columns: Image-URL Prompt Output Matching column: Image-URL (keeps update‑by‑product behavior). Node: “Download model image” (Google Drive) Choose your model image file from Google Drive. This is the image of the human model that will appear in all generated photos. Node: “Upload to Drive” (Google Drive) Set Folder to your AI output folder (e.g. “AI Product Photos”) where you want all generated images to be saved. Credentials in each Google node For each Google Sheets / Drive node, select your Google accounts in the “Credentials” section if they are not already set. After these 4–5 fields are updated, the workflow is fully adapted to your environment. Daily usage (for business / marketing users) Open your Google Sheet. Go to the input sheet (e.g. “Product Images”). For each product, add a row with: Image-URL → a valid link to the product image. Do not edit the output sheet manually; it will be filled by the workflow. To generate images: Log into n8n. Open the workflow “Automated generation of AI advertising photos for product marketing”. Click “Test workflow” or “Execute workflow”. Wait until it finishes. Viewing results In Google Drive: Open your chosen output folder (e.g. “AI Product Photos”). All generated advertising photos are stored there. In Google Sheets (output sheet): Image-URL: product image link used as input. Prompt: the AI prompt used to generate the image. Output: a web link to the generated image on Google Drive. Re‑running the workflow with the same Image-URL will update the existing row instead of creating duplicates. Troubleshooting No image generated for a row Check that Image-URL opens correctly in a browser. No data written to output sheet Confirm the workflow nodes point to the correct spreadsheet and sheet names. Check that the columns Image-URL, Prompt, Output exist and are spelled exactly the same. General errors Open the last execution in n8n and review the error message. Share that message with your technical team for support.
by Club de Inteligencia Artificial Politécnico CIAP
Telegram Appointment Scheduling Bot with n8n 📃 Description Tired of managing appointments manually? This template transforms your Telegram account into a smart virtual assistant that handles the entire scheduling process for you, 24/7. This workflow allows you to deploy a fully functional Telegram bot that not only schedules appointments but also checks real-time availability in your Google Calendar, logs a history in Google Sheets, and allows your clients to cancel or view their upcoming appointments. It's the perfect solution for professionals, small businesses, or anyone looking to automate their booking system professionally and effortlessly. ✨ Key Features Complete Appointment Management:** Allows users to schedule, cancel, and list their future appointments. Conflict Prevention:** Integrates with Google Calendar to check availability before confirming a booking, eliminating the risk of double-booking. Automatic Logging:** Every confirmed appointment is saved to a row in Google Sheets, creating a perfect database for tracking and analysis. Smart Interaction:** The bot handles unrecognized commands and guides the user, ensuring a smooth experience. Easy to Adapt:** Connect your own accounts, customize messages, and tailor it to your business needs in minutes. 🚀 Setup Follow these steps to deploy your own instance of this bot: 1. Prerequisites An n8n instance (Cloud or self-hosted). A Telegram account. A Google account. 2. Telegram Bot Talk to @BotFather on Telegram. Create a new bot using /newbot. Give it a name and a username. Copy and save the API token it provides. 3. Google Cloud & APIs Go to the Google Cloud Console. Create a new project. Enable the Google Calendar API and Google Sheets API. Create OAuth 2.0 Client ID credentials. Make sure to add your n8n instance's OAuth redirect URL. Save the Client ID and Client Secret. 4. Google Sheets Create a new spreadsheet in Google Sheets. Define the column headers in the first row. For example: id, Client Name, Date and Time, ISO Date. 5. n8n Import the workflow JSON file into your n8n instance. Set up the credentials: Telegram: Create a new credential and paste your bot's token. Google Calendar & Google Sheets (OAuth2): Create a new credential and paste the Client ID and Client Secret from the Google Cloud Console. Review the Google Calendar and Google Sheets nodes to select your correct calendar and spreadsheet. Activate the workflow! 💬 Usage Once the bot is running, you can interact with it using the following commands in Telegram: To start the bot:** /start To schedule a new appointment:** agendar YYYY-MM-DD HH:MM Your Full Name To cancel an existing appointment:** cancelar YYYY-MM-DD HH:MM Your Full Name To view your future appointments:** mis citas Your Full Name 👥 Authors Jaren Pazmiño President of the Polytechnic Artificial Intelligence Club (CIAP)
by Danny
This workflow automates lead ingestion from Google Sheets and Telegram, leveraging Gemini AI and Lusha for intelligent matching and deep data enrichment. By normalizing incoming data into a standard structure, it uses custom fuzzy logic to identify existing HubSpot records—preventing duplicates and ensuring your CRM stays clean with validated contact and company details. Key Features: Agnostic Intake: Seamlessly processes leads from structured Google Sheets or raw Telegram messages parsed by Gemini AI. Intelligent Matching: Custom JS engine performs two-tier matching (hard & fuzzy) to save Lusha credits and keep CRM data integrity. Deep Enrichment: Automatically triggers Lusha API to find missing emails and update firmographic data like revenue and industry. Automated Sync: Closes the loop by notifying the team on Telegram and updating the spreadsheet status once a lead is processed. Setup Instructions: Connect your HubSpot, Lusha, Gemini, Google Sheets, and Telegram credentials. Input your Spreadsheet ID in the 'Trigger' and 'Acknowledge' nodes. Adjust the similarity threshold in the 'Switch Logic' node (default 80) based on your data needs.
by Cybernative Technologies
Quick Overview This workflow manually runs a company enrichment pipeline that reads companies from Google Sheets, uses SerpAPI web search plus Google Gemini to generate structured company details, writes the enriched data to a second Google Sheet, and marks the source rows as enriched to avoid reprocessing. How it works Starts when you run the workflow manually. Reads all rows from a source Google Sheets worksheet and keeps only the Company Name, Website, and Enriched fields. Skips any row where Enriched is already set to Yes. For each remaining company, uses SerpAPI web search and Google Gemini (via an AI agent) to research the company and return structured JSON fields such as industry, description, target customers, headquarters, and estimated size. Normalizes the AI output by converting the target_customers array into a comma-separated string. Appends the enriched company record to an output Google Sheets worksheet. Updates the original source row in Google Sheets to set Enriched = Yes based on the Company Name. Setup Add Google Sheets credentials and set the source spreadsheet ID and sheet name for reading companies, ensuring columns Company Name, Website, and Enriched exist. Set the output Google Sheets spreadsheet ID and sheet name for appending enriched results, ensuring columns Company Name, Website, Industry, Description, Target Customers, Headquarters, and Estimated Size exist. Add a SerpAPI credential for the web search tool. Add a Google Gemini API credential for the Gemini Flash model used by the AI agent. Confirm the “mark as enriched” update targets the same source sheet and that Company Name uniquely identifies rows for updating.