by Sirhexalot
This n8n workflow automates the assignment of existing users to organizations in Zammad based on their email domains, utilizing Zammad’s "domain-based assignment" feature. Use Case Automate the post-hoc assignment of existing users to organizations in Zammad by leveraging their email domains. This ensures efficient management of user-organization relationships using Zammad’s "domain-based assignment" feature. Requirements An active Zammad account with API access. Existing users and organizations in Zammad with proper email and domain configurations. Zammad organizations must have domain-based assignment enabled. Credentials Set up your Zammad API credentials in n8n to allow the workflow to interact with your Zammad instance securely. If you have found an error or have any suggestions, please report them here on Github.
by Akhil Varma Gadiraju
Bulk Contact Deletion from HubSpot via Uploaded Excel / CSV File This workflow allows you to automate the deletion of HubSpot contacts based on email addresses provided in an uploaded Excel (.xlsx) file. It's ideal for bulk-cleaning outdated or invalid contact data. ✅ Prerequisites Before using this workflow, ensure you have the following: A valid HubSpot App Token with permissions to search and delete contacts. An Excel (.xlsx) file with a column labeled emails containing the contact emails to be deleted. n8n self-hosted or cloud environment with: Webhook node enabled and accessible. HubSpot node credentials configured. Basic familiarity with n8n node configuration for custom adjustments (optional). 📃Sample Document Download 🧠 n8n Workflow: Delete HubSpot Contacts from an Uploaded Excel File This n8n workflow allows you to upload an Excel file containing contact email addresses. It will check each one in HubSpot and delete the contact if it exists. 🔗 Workflow Overview 📥 1. Trigger via Webhook (POST) The workflow starts when a .xlsx file is uploaded via an HTTP POST request to the webhook. This Excel file should contain a column with contact email addresses. 📄 2. Extract Data from Excel The uploaded file is parsed, and its rows are converted into structured JSON items, making each email address available for further processing. 🧹 3. Normalize Data The data is cleaned and normalized — for example, mapping column headers (e.g., emails) into a standard email field, ensuring consistent downstream logic. 🔁 4. Loop Through Contacts Each row (contact) is processed individually using batch looping. This allows for fine-grained error handling and sequential processing. 🔎 5. Search for Contact in HubSpot For each contact, a search query is made in HubSpot based on the email address. The workflow only fetches the first result (if any). 🧪 6. Check if Contact Exists An IF condition checks whether the contact was found (i.e., if a HubSpot contact ID exists): ✅ Yes → proceed to delete the contact. ❌ No → skip deletion and continue to the next. 🗑️ 7. Delete Contact If a contact exists, it is deleted from HubSpot using its internal contact ID. 🛠️ 8. Optional Placeholder for Post-Processing A placeholder node named “Replace Me” is included for any custom logic you may want to add after the deletion step, such as: Logging Notifications Writing to external storage ✅ Use Cases Bulk delete old or bounced email addresses from HubSpot. Clean up contacts based on external suppression lists. Automate regular CRM hygiene processes. 💡 Suggested Enhancements ✍️ Log results to Google Sheets or a database 📬 Send completion report via email or Slack 🔁 Add retry logic for temporary API failures 🔍 Validate email format before making requests 📎 Requirements n8n (self-hosted or cloud) HubSpot App Token (set up in n8n credentials) Excel file (.xlsx) with a column for email 📦 Files No external files are required. All logic is contained within the n8n workflow. 🚀 Getting Started Deploy the workflow in n8n. Copy the webhook URL and use it in your app or API client (like Postman). Upload an Excel file containing contact emails via POST request. Watch as it searches and deletes matches in HubSpot.
by Jordan Haisley
Overview: Automate Your Google OAuth2 Credential Creation This workflow template streamlines the process of creating and naming individual Google OAuth2 credentials for multiple Google services within n8n. By automating tasks typically done manually, it saves significant time and reduces the risk of errors. Who Is This For? This template is perfect for: Marketers who frequently use Google Docs, Google Sheets, Google Slides, and Google Drive for document automation. Developers or technical users who manage numerous integrations and need to minimize credential creation overhead. Teams or solo users with multiple Google accounts who want to eliminate repetitive Google OAuth2 credential creation tasks. Prerequisite Knowledge • Basic familiarity with n8n, including how to configure nodes and connect services. • A Google OAuth JSON file (client ID, client secret, etc.) already set up in your Google Cloud Console. • An understanding of Google services (Docs, Sheets, Slides, Drive, Gmail, Calendar, Contacts and others) and which you may need for your use cases What Problem Does It Solve? Manually creating and naming separate OAuth2 credentials for each Google service can be time-consuming and prone to errors. For instance, if you manage 16 Google accounts, you might need to create 112 credentials manually. This workflow automates that process by using your Google OAuth JSON file and email address, generating uniquely named OAuth2 credentials for each Google service in just a single run per account. Key Features Manual Trigger – Start the workflow on demand to generate new credentials. Set Node for Google OAuth Details – Store your client ID, client secret, and other JSON info securely in one place. Automated Naming Convention – Use your Google email address to create distinct names for each credential, simplifying organization. Array of Google Services – Customize which services to create credentials for, such as Docs, Sheets, Slides, Drive, Gmail, Calendar, or Contacts. Batch Credential Creation – Split the array of Google services and automatically create separate OAuth2 credentials for each. Seamless OAuth2 Integration – Effortlessly authenticate all generated credentials within n8n. How to Set Up Insert Your JSON Details – Paste your Google OAuth 2.0 JSON data into the “Google JSON” node. Add Your Google Email Address – Specify your email address in the “Google Email” node to personalize the naming convention. Configure n8n Account Credentials – In the “n8n Create Credentials” node, select or add proper credentials (e.g., n8n API credentials). Execute the Workflow – Run the workflow to automatically generate individual OAuth2 credentials. Finalize in n8n – Visit your n8n Credentials dashboard to complete the OAuth sign-in for each newly created credential. Customization Options Modify the Services Array** – Easily add or remove Google products based on your workspace needs by editing the array in the “Services” node. Adjust Naming Logic** – Tailor the credential naming convention in the “n8n Create Credentials” node to match your organization’s style or best practices. Set Role-Based Access** – In n8n, control who can view and use these automatically generated credentials by adjusting user permissions. Time-Saving Example I initially had 16 Google accounts, requiring 112 credentials if done manually. With this workflow, I needed just one run per account—saving around two hours of repetitive data entry. Yes, I spent three hours building and documenting this, but it pays off quickly for anyone managing multiple accounts or large teams.
by Itamar
🧠 ICP Scoring Agent (n8n + Explorium + LLM) This workflow automates Ideal Customer Profile (ICP) scoring for any company using a combination of Explorium data and an LLM-driven evaluation framework. 🔧 How It Works Input: Company name is submitted via form. Data Enrichment: Explorium's MCP Server is used to fetch firmographic, hiring, and tech data about the company. Scoring Logic: An AI agent (LLM) applies a 3-pillar framework to assess and score the company. Output: A structured JSON or Google Doc summary is generated using the AgentGeeks formatter. 📊 Scoring System (100 points total) | Pillar | Max Points | |------------------------------|------------| | Strategic Fit | 40 | | AI / Tech Readiness | 40 | | Engagement & Reachability | 20 | 🧠 Scoring Criteria Strategic Fit**: Industry, size, use case, buyer roles Tech Readiness**: AI maturity, hiring trends, stack visibility Reachability**: Geography, contactability, data quality 🎯 Verdict Scale 🟩 90–100: Ideal ICP ✅ 70–89: Good Fit 🟨 40–69: Medium Fit ❌ < 40: Poor Fit 📦 Workflow Components Trigger**: Form submission via webhook MCP Client**: Pulls enriched company data via Explorium's MCP API AI Agent**: Uses Anthropic Claude (or other LLM) to calculate scores Output**: Results are posted to a structured endpoint (e.g. Google Doc or JSON API) 🧰 Dependencies n8n (self-hosted or cloud) Explorium MCP credentials and access LLM API (e.g., Anthropic Claude, OpenAI, etc.) Optional: AgentGeeks formatter or similar doc generator 💼 Use Case This ICP scoring system is designed for GTM and sales teams to: Automate lead prioritization Qualify accounts before outbounding Sync ICP data into CRMs, routing systems, or reporting layers 📈 Example Output in Google Doc { "company": "Acme Inc.", "score": 87, "verdict": "Good Fit", "pillars": { "strategic_fit": 35, "tech_readiness": 37, "reachability": 15 }, "summary": "Acme Inc. is a mid-sized SaaS company with strong AI hiring activity and a buyer profile aligned to enterprise IT. Moderate reachability via firmographic signals." }
by Adnan
This workflow allows users to generate beautifully stylized 3D-rendered food emoji icons based on a simple text prompt. It combines user input, structured visual design generation, and image rendering using OpenAI’s GPT models. ✨ What It Does Collects user input via a form: e.g. "green apple" Generates a structured JSON specification describing the emoji’s form, lighting, texture, and color scheme Uses AI to render an image based on that spec—styled like a high-quality emoji icon with a transparent background 🧠 Use Case This template is ideal for: Designers or creators needing icon ideas or drafts for food items Developers building emoji packs or digital stickers Inspiration for AI-assisted product illustration or branding 💡 Why It's Useful Instead of prompting a model directly with vague terms, this flow creates a structured visual spec tailored to food items. The final emoji-style icon is polished, modern, and downloadable. ✅ Requirements To get started with this workflow, follow these steps: 🔑 Configure Credentials: Set up your API credentials for OpenAI and Google Drive 💳 Add OpoenAI Credit: Make sure to add credit to your OpenAI account, verify your organization (required for generating images) 📊 Connect Google Drive: Authenticate your Google Drive account ⚙️ (Optional) Customize Prompts: Adjust the prompts within the workflow to better suit your specific needs Note: Each image generation will cost you about $0.17
by Rahul Joshi
SEO-Optimized Description: Streamline your interview scheduling process with this intelligent n8n automation template powered by Google Calendar, Google Sheets, and GPT-4. This workflow reads candidate information from a spreadsheet, automatically schedules interviews in Google Calendar, and sends personalized interview invitation emails—all without manual input. What This Template Does: 📋 Monitors a Google Sheet for new candidate entries every minute 🕒 Auto-selects the next available interview slot (Mon/Wed/Fri at 3 PM) 📅 Creates a calendar invite in your Google Calendar ✍️ Uses GPT-4 to generate personalized emails based on candidate data 📧 Sends the email invite with the interview link via Gmail Built-in logic ensures: Candidates never get same-day interviews AI-generated emails are concise, polite, and professionally formatted Scheduling remains conflict-free and easy to manage Requirements: Google Calendar API credentials Google Sheets with candidate info (Name, Email, Background) Gmail account with OAuth2 Azure OpenAI API (GPT-4o recommended) Perfect For: Startups, HR teams, and recruiters looking to automate interview scheduling, eliminate back-and-forth emails, and deliver a professional candidate experience—all with zero hassle.
by Miquel Colomer
Disclaimer: This template contains a community node and therefore only works for n8n self-hosted users== This is Miquel from Aprende n8n and Automate with n8n. We have created a new community node Document Generator that generates dynamic content using templates. You can compose complex content with no SETs or FUNCTION ITEMs nodes using this node, like: Send one email with a list of items in the body (i.e., one email with the last entries of an RSS feed). Send one email per item (i.e., one invoice per email). Emails are just a sample. You can create complex dynamic content to: Send messages to Telegram/Slack. Create WordPress entries. Create HTML pages for your website. Create tickets. And more! The sky is your limit ;) If you want to use this workflow, install the community node n8n-nodes-document-generator from Settings > Community nodes. Type "n8n-nodes-document-generator", check "I understand the risks..." and click on "Install": Later, copy and paste this workflow into your n8n. You will get this workflow: This workflow uses the Customer Datastore node to generate sample input items. You can render one template with all items (enable "Render All Items with One Template"): or one template per input item: Visit the oficial NPM page to see more samples. Learning n8n by yourself is nice, but a bit tricky :) We offer n8n training video courses at Aprende n8n. If you need custom trainings, let us know. Additionally, you can contact us at Automate with n8n if you need the next services: Custom installations. Custom nodes. Monitor and alarms. Delegate 12/5 or 24/7 workflow issue resolutions. Automated backups of your workflows. HTTP integrations of non-supported APIs. Complex workflows. I hope you will enjoy this new node and this workflow. Automate your life! Automate it with n8n!
by Elliot Scribner
> Disclaimer: this workflow template uses the n8n-nodes-couchbase community package. Community nodes are unverified and usage of them comes with some risks. See here for instructions on installing n8n community nodes. This template is intended for use by those interested in learning more about Agentic AI workflow development, as well as those interested in learning how to use the Couchbase Search Vector Store node for practical applications. This workflow helps users decide on travel destinations based on descriptions of several points of interest loaded into Couchbase and retrieved using Vector Search. How it Works This template contains two workflows: The Data Ingestion workflow uses the following nodes Webhook node (to listen for HTTP requests) OpenAI Embeddings node (to generate embeddings on document insertion) Note: You’ll need to configure OpenAI credentials for this node Couchbase Vector node (configured for document insertion) Default Data Loader and Recursive Character Text Splitter The Chat Application workflow uses the following nodes Chat Trigger node AI Tools Agent node connect to: Gemini (as the Chat Model, for generating responses) Note: You will have to configure Gemini credentials for this node Simple Memory (as the Memory, to maintain conversation context) Couchbase Search Vector node (as the Tool, for search) OpenAI Embeddings node (as the Embedding model for the Couchbase Search Vector node, to convert queries to vectors) Note: You’ll need to configure OpenAI credentials for this node Set up Setting up this workflow is easy and only takes around 10 minutes. Prerequisites A Couchbase Cluster running the Search Service, and corresponding database access credentials Be sure the Couchbase cluster allows the incoming IP address for n8n Create a Vector Search Index using this index definition Create a bucket (called travel-agent), scope (called vectors), and collection (called points-of-interest) in your Cluster OpenAI API Key Gemini API Key Steps Configure all necessary credentials (Couchbase, OpenAI, and Gemini) Select your bucket, scope, and collection for each of the Couchbase vector nodes Ingest data, either using the cURL statements found on the sticky note within the workflow, or using this shell script to ingest 6 points of interest Open the chat and test out your travel agent! Customization and Next Steps This workflow template can be made more robust by enhancing the data model to include more information about each point of interest. For example, the addition of price ranges, ideal seasons to visit, activity types, and accomodation options can help inform the LLM further about each destination, and in turn allow it to provide a more tailored response and be more helpful for travel planning. Alternatively, the data model could be entirely re-configured to suit a wide variety of other use cases. This template can serve as a building block for all sorts of AI Agent applications using RAG and is not limited to only travel recommendations.
by David Olusola
🚀 Automated Lead Scraper Workflow (Apify + n8n + Google Sheets) 🧠 What It Does This n8n workflow automates the process of scraping leads using Apify, cleaning the extracted data, and exporting it to Google Sheets—ready for use in outreach, prospecting, or CRM pipelines. 🔄 Workflow Steps ✅ Start – Manually triggers the workflow. 🧩 Set Variables – Stores required Apify credentials: APIFY_TOKEN: Your Apify token. APIFY_TASK_ID: The Apify task to run. 🕸️ Run Apify Scraper – Launches the scraper and fetches the dataset. 🧹 Clean Data – Processes scraped results to: ✂️ Strip non-numeric characters from phone numbers. ✉️ Format emails (lowercase + trimmed). 📊 Export to Google Sheets – Appends clean data to your spreadsheet: 🏢 company name → from title 📞 phone → cleaned number 📍 address → from scraped info 🛠️ Requirements 🕷️ Apify Account A valid APIFY_TOKEN An existing Apify task (APIFY_TASK_ID) 📗 Google Sheets Access OAuth2 credentials set up in n8n (e.g., "Google Sheets account 2") 🚦 How to Use ⚙️ Open the Variables node and plug in your Apify credentials. 📄 Confirm the Google Sheets node points to your desired spreadsheet. ▶️ Run the workflow manually from the Start node. 📥 Output A ready-to-use sheet of cleaned lead data containing: Company names Phone numbers Addresses 💼 Perfect For: Sales teams doing outbound prospecting Marketers building lead lists Agencies running data aggregation tasks
by Daniel Nolde
What it does This is a simplistic demo workflow showing how to extract a license plate number from an image of a car submitted via a form – or in more general terms showcasing how you can: use a form trigger to upload files and feed it into an LLM use a changeable LLM model for image-to-text analysis Set up steps Import the workflow Ensure you have registered and account, purchased some credits and created and API key for OpenRouter.ai Create/adapt the OpenRouter credential with your indivial API key for OpenRouter "Test workflow" and submit an image of a car with license plate to extract its number How to adapt By changing the "prompt" in th "Settings" node you can quickly adapt this exemplatory workflow to other image-to-text use cases, such as: summarization: "summarize what's seen in the image" location finding: "identify the location where the image was taken" text extraction: "extract all text from the image and return it as markdown" Thanks to using OpenRouter, you also can quickly experiment with finding good model choices by simply changing the "model" in the "Settings" node. The following models gave good results for this demo use-case: google/gemini-2.0-flash-001 meta-llama/llama-3.2-90b-vision-instruct openai/gpt-4o The llama-3.2-11b and even claude-3.5-sonnet didn't recognize all characters in all test images. Using a generic LLM-model offers a quick way of prototyping an image-to-text application. For specific use cases in serious and scalable production deployments, consider using an API based service specifically made to that purpose, such as: Google Cloud Vision API Microsoft Azure Computer Vision Azure AI Document Intelligence Amazon Textract
by Sirhexalot
This n8n workflow allows you to reset all user roles in Zammad to specified default roles. It ensures consistency in role management across your Zammad instance. Features Retrieve all active users from Zammad. Update each user's roles to predefined default role IDs. Exclude specific users by their IDs from the update process. Simple configuration for default roles and excluded users. Usage Import the Workflow: Upload the provided .json file into your n8n instance. Configure Variables: zammad_base_url: Your Zammad instance URL. zammad_api_key: Your Zammad API key. default_roles: List of default role IDs to apply to all users. exclude_zammad_users_by_id: List of user IDs to exclude from the update. Run the Workflow: Execute the workflow to update roles automatically. Issues and Suggestions For issues or suggestions, visit the GitHub Repository.
by Oneclick AI Squad
This n8n workflow monitors email alerts for disk utilization exceeding 80%, extracts the server IP, logs into the server, and purges logs from Nginx, PM2, Docker, and system files to clear disk space. Key Insights Ensure email alerts are consistently formatted with server IP details. SSH access must be properly configured to avoid authentication failures. Workflow Process Initiate the workflow with the Check Disk Alert Emails node when an email triggers on high disk usage. Parse the email to extract the server IP using the Extract Server IP from Email node. Set up SSH credentials and paths manually with the Prepare SSH Variables node. Execute cleanup commands to delete logs from Nginx, PM2, Docker, and system files using the Run LogCleanup Commands via SSH node. Usage Guide Import the workflow into n8n and configure email and SSH credentials. Test with a sample email alert to verify IP extraction and log deletion. Prerequisites Email service (e.g., IMAP or API) for alert monitoring SSH access with valid credentials Customization Options Modify the Prepare SSH Variables node to target specific log directories or adjust cleanup commands for different server setups.