by Jonathan Bennetts
> This has been updated to support the Query feature added to the Zendesk node in 0.144.0 This workflow will post all New and Open tickets without an agent assigned to a Slack channel on a schedule. The function node is used in this example to merge multiple inputs into one output message which is then used as the Slack message. The output in Slack will be similar to the below message, The "TICKET_ID" will be a link to the ticket. > Unassigned Tickets TICKET_ID [STATUS] - TICKET_SUBJECT Usage Update the Cron schedule, The default value is 16:30 daily. Update the Credentials in the Zendesk nodes Update the Credentials and Channel in the Slack Node Grab a coffee and enjoy! Zendesk Query In the Zendesk node we are using the query assignee:none status<pending this returns all New and Open tickets with no assignee allowing us to remove the extra nodes.
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 Joachim Brindeau
Are you looking to install external libraries for your self-hosted N8N instance? This automated workflow makes adding npm packages to your N8N environment quick and effortless. Beware, this workflow only works on self-hosted instances. What This Workflow Does This solution automatically installs npm packages like axios, cheerio, or node-fetch in your self-hosted N8N Docker container, making them immediately available in Code nodes. Key features β Automated Installation: No manual npm commands needed β Daily Updates: Scheduled trigger keeps packages current β Smart Installation: Only installs missing packages β Multiple Triggers: Manual, scheduled, and on startup of the N8N instance so you can upgrade your N8N version without worrying about external libraries. How to install and update external libraries automatically Step 1: Setting Up Your Environment Variables Before using external libraries in N8N Code nodes, configure these environment variables in your Docker comppose file. Option A to allow specific external npm packages in N8N Code nodes NODE_FUNCTION_ALLOW_EXTERNAL=axios,cheerio,node-fetch Option B to allow all external npm packages in Code nodes NODE_FUNCTION_ALLOW_EXTERNAL=* Step 2: Import the external packages workflow Import the workflow into your N8N instance by copy pasting all nodes. Step 3: Input the list of external libraries you need Edit the libraries_set node Change the comma-separated list (e.g., axios,cheerio,node-fetch). If you chose Option A above, update your NODE_FUNCTION_ALLOW_EXTERNAL variable with the same packages Step 4: Start the workflow! Run the workflow manually or let it trigger automatically Why use this to install NPM packages in N8N? Managing external packages manually in N8N can be time-consuming. This workflow automates the entire process, making sure your libraries are always installed and up-to-date.
by Habeeb Mohammed
Who's it for This workflow is perfect for individuals who want to maintain detailed financial records without the overhead of complex budgeting apps. If you prefer natural language over data entry forms and want an AI assistant to handle the bookkeeping, this template is for you. It's especially useful for: People who want to track cash and online transactions separately Anyone who lends money to friends/family and needs debt tracking Users comfortable with Slack as their primary interface Those who prefer conversational interactions over manual spreadsheet updates What it does This AI-powered finance tracker transforms your Slack workspace into a personal finance command center. Simply mention your bot with transactions in plain English (e.g., "βΉ500 cash food, borrowed βΉ1000 from John"), and the AI agent will: Parse transactions using natural language understanding via Google Gemini Calculate balance changes for cash and online accounts Show a preview of changes before saving anything Update Google Sheets only after you approve Track debts (who owes you, who you owe, repayments) Send daily reminders at 11 PM with current balances and active debts The workflow maintains conversational context using PostgreSQL memory, so you can say things like "yesterday's transactions" or "that payment to Sarah" and it understands the context. How it works Scheduled Daily Check-in (11 PM) Fetches current balances from Google Sheets Retrieves all active debts Formats and sends a Slack message with balance summary Prompts you to share the day's transactions AI Agent Transaction Processing When you mention the bot in Slack: Phase 1: Parse & Analyze Extracts amount, payment type (cash/online), category (food, travel, etc.) Identifies transaction type (expense, income, borrowed, lent, repaid) Stores conversation context in PostgreSQL memory Phase 2: Calculate & Preview Reads current balances from Google Sheets Calculates new balances based on transactions Shows formatted preview with projected changes Waits for your approval ("yes"/"no") Phase 3: Update Database (only after approval) Logs transactions with unique IDs and timestamps Updates debt records with person names and status Recalculates and stores new balances Handles debt lifecycle (Active β Settled) Phase 4: Confirmation Sends success message with updated balances Shows active debts summary Includes logging timestamp Requirements Essential Services: n8n instance (self-hosted or cloud) Slack workspace with admin access Google account Google Gemini API key PostgreSQL database Recommended: Claude AI model (mentioned in workflow notes as better alternative to Gemini) How to set up 1. Google Sheets Setup Create a new Google Sheet with three tabs named exactly: Balances Tab: | Date | Cash_Balance | Online_Balance | Total_Balance | |------|--------------|----------------|---------------| Transactions Tab: | Transaction_ID | Date | Time | Amount | Payment_Type | Category | Transaction_Type | Person_Name | Description | Added_At | |----------------|------|------|--------|--------------|----------|------------------|-------------|-------------|----------| Debts Tab: | Person_Name | Amount | Type | Date_created | Status | Notes | |-------------|--------|------|--------------|--------|-------| Add header rows and one initial balance row in the Balances tab with today's date and starting amounts. 2. Slack App Setup Go to api.slack.com/apps and create a new app Under OAuth & Permissions, add these Bot Token Scopes: app_mentions:read chat:write channels:read Install the app to your workspace Copy the Bot User OAuth Token Create a dedicated channel (e.g., #personal-finance-tracker) Invite your bot to the channel 3. Google Gemini API Visit ai.google.dev Create an API key Save it for n8n credentials setup 4. PostgreSQL Database Set up a PostgreSQL database (you can use Supabase free tier): Create a new project Note down connection details (host, port, database name, user, password) The workflow will auto-create the required table 5. n8n Workflow Configuration Import the workflow and configure: A. Credentials Google Sheets OAuth2**: Connect your Google account Slack API**: Add your Bot User OAuth Token Google Gemini API**: Add your API key PostgreSQL**: Add database connection details B. Update Node Parameters All Google Sheets nodes: Select your finance spreadsheet Slack nodes: Select your finance channel Schedule Trigger: Adjust time if you prefer a different check-in hour (default: 11 PM) Postgres Chat Memory: Change sessionKey to something unique (e.g., finance_tracker_your_name) Keep tableName as n8n_chat_history_finance or rename consistently C. Slack Trigger Setup Activate the "Bot Mention trigger" node Copy the webhook URL from n8n In Slack App settings, go to Event Subscriptions Enable events and paste the webhook URL Subscribe to bot event: app_mention Save changes 6. Test the Workflow Activate both workflow branches (scheduled and agent) In your Slack channel, mention the bot: @YourBot βΉ100 cash snacks Bot should respond with a preview Reply "yes" to approve Verify Google Sheets are updated How to customize Change Transaction Categories Edit the AI Agent's system message to add/remove categories. Current categories: travel, food, entertainment, utilities, shopping, health, education, other Modify Daily Check-in Time Change the Schedule Trigger's triggerAtHour value (0-23 in 24-hour format). Add Currency Support Replace βΉ with your currency symbol in: Format Daily Message code node AI Agent system prompt examples Switch AI Models The workflow uses Google Gemini, but notes recommend Claude. To switch: Replace "Google Gemini Chat Model" node Add Claude credentials Connect to AI Agent node Customize Debt Types Modify AI Agent's system prompt to change debt handling logic: Currently: I_Owe and They_Owe_Me You can add more types or change naming Add More Payment Methods Current: cash, online To add more (e.g., credit card): Update AI Agent prompt Modify Balances sheet structure Update balance calculation logic Change Approval Keywords Edit AI Agent's Phase 2 approval logic to recognize different approval phrases. Add Spending Analytics Extend the daily check-in to calculate: Weekly/monthly spending summaries Category-wise breakdowns Use additional Code nodes to process transaction history Important Notes β οΈ Never trigger with normal messages - Only use app mentions (@botname) to avoid infinite loops where the bot replies to its own messages. π‘ Context Awareness - The bot remembers conversation history, so you can reference "yesterday", "last week", or previous transactions naturally. π Data Privacy - All your financial data stays in your Google Sheets and PostgreSQL database. The AI only processes transaction text temporarily. π Backup Regularly - Export your Google Sheets periodically as backup. Pro Tips: Start with small test transactions to ensure everything works Use consistent person names for debt tracking The bot understands various formats: "βΉ500 cash food" = "paid 500 rupees in cash for food" You can batch transactions in one message: "βΉ100 travel, βΉ200 food, βΉ50 snacks"
by algopi.io
Who is this template for? This workflow template is designed for Marketing and pre-Sales to get prospects from a form like Tally, decline data in the famous opensource CRM (SuiteCRM), synchronize contact in Brevo with linking the id from CRM, and then notify in NextCloud. Bonus : validate email with ++CaptainVerify++ and notify in NextCloud depending on response How it works For each submission in the form, a webhook is triggered. A check of the email is done with CaptainVerify. Depending on the response, and if it is ok, then a Lead is created in SuiteCRM. Else, a message in your selected discussion is sent. As the lead has been created, we can create a contact in Brevo (for future campain), ank link this contact with the lead_id from the CRM in a dedicated field. Finaly, a message in your selected discussion in NextCloud informs you about the lead. Set up instructions Complete the Set up credentials step when you first open the workflow. You'll need a CaptainVerify account (Api Key), a dedicated SuiteCRM user with Oauth, a Brevo account (Api Key) and a Nextcloud account. Set up the Webhook in the form's tool of your choice (why not Tally ?). Set each node with the explanations in sticky Notes. Enjoy ! Template was created in n8n v1.44.1
by Prompt and Paste
Transform your lead generation process with this powerful n8n workflow that automatically captures form submissions from Google Forms and creates organized lead cards in Trello. π― Who Is This For? This workflow is perfect for: Sales teams who need to quickly organize and track incoming leads. Marketing professionals running lead generation campaigns Small business owners wanting to streamline their customer acquisition process Consultants and service providers collecting client information through forms Anyone who wants to eliminate manual data entry between forms and project management tools π οΈ Tools Involved & Prerequisites Required Tools: n8n Google Forms - for lead capture forms Trello - for lead management and organization Prerequisites: Active Google account with Forms access Trello account with board creation permissions βοΈ How It Works This workflow automatically transforms Google Form submissions into organized Trello cards for lead management: Form Trigger: When someone submits your Google Form, the workflow instantly captures all their information Data Mapping: The system takes the form responses and maps them to the appropriate Trello card fields Trello Card Creation: Each lead becomes a structured Trello card with the person's name and company as the title, plus all form data organized in custom fields π Setup Instructions Import the workflow template into your n8n instance Access the set up instructions here: https://www.notion.so/Google-Forms-to-Trello-Automation-Setup-Instructions-213718e8c6ba807f9972ff2f81f1057a?source=copy_link
by Ricardo Espinozaas
Use Case When having a call with a new potential customer, one of the keys to getting the most out of the call is to find out as much information as you can about them before the call. Normally this involves a lot of manual research before every call. This workflow automates this tedious work for you. What this workflow does The workflow runs every time a new call is booked via your Calendly. It then filters out personal emails, before enriching the email. If the email is attached to a company it enriches the company and upserts it in your Hubspot CRM. Setup Add Clearbit, Hubspot, and Calendly credentials. Click on Test workflow. Book a meeting on Calendly so the event starts the workflow. Be aware that you can adapt this workflow to work with your enrichment tool, CRM, and booking tool of choice.
by Ricardo Espinozaas
Use Case Whenever someone shows interest in your offerings by subscribing to a list in ConvertKit it could be a potential new customer. Typically you need to gather more detailed information about them (data enrichment) and finally update their profile in your CRM system to better manage and nurture your relationship with them. This workflow does this all for you! What this workflow does The workflow runs every time a user is subscribed to a ConvertKit list. It then filters out personal emails, before enriching the email. If the email is attached to a company it enriches the company and upserts it in your Hubspot CRM. Setup Add Clearbit, Hubspot, and ConvertKit credentials. Click on Test workflow. Subscribe to a list on ConvertKit to trigger the workflow. Be aware that you can adapt this workflow to work with your enrichment tool, CRM, and email automation tool of choice.
by Candice Capelle
Who is this template for? This template is for everyone who has to take notes during a call: Talent Acquisition Managers / Talent Acquisition Specialists / Recruiters HR professionals Sales teams, customer success teams Product teams / User Experience Designers / anyone conducting user research interviews Use case This workflow allows specific events created on Google Calendar (or any other meeting scheduling tool like Calendly) to trigger the duplication and renaming of a specific template document. Example: For each new screening call that is scheduled in your calendar, you want to create a draft of your screening interview template for the role, titled "{Name of the candidate} | {Date of the interview}", and located in your Google Drive in a specific folder This workflow could then be extended to copy the link to the file on a Notion database that is shared with the team (check "To go further" section). This workflow ensures that if you're jumping from calls to calls, you're already set up to take notes, and every document is tidied up and sorted in a structured way! How it works The workflow starts when a new event is created in Google Calendar The Filter node then selects a specific type of events, depending on a chosen pattern (title includes a specific term, organizer is X, attendees include Y, etc.) The workflow then searches for a specific folder in your Google Drive, where the file you want to duplicate is located The workflow then searches for the specific file you want to duplicate The last step allows to duplicate and rename the file with variables from your Google Calendar event Set up Set up credentials for Google Calendar, Google Drive, and Google File. You'll need a Google Workspace account. Set up the Filter node with the pattern you want to look for to retreive specific events in your calendar Set up the Google Drive you want to search in Set up the Google File you want to duplicate Set up variable at the last step to rename your duplicated file however you want it, or add a description To go further Here's a few idea to enhance this workflow depending on your specific needs: Instead of a filter, separate your flow depending on your use case (ex: you have want to fetch different templates depending on the type of call it'll be). Switch Google Calendar for another trigger (Calendly, Hubspot..) 10 minutes before the event, send the duplicate Google File to the meeting organizer through Slack The day after the event, if the event hasn't been cancelled, add the link to the Google File to your ATS, Hubspot, etc.
by Niklas Hatje
Use case To guarantee an effective sales process deals must be distributed between sales reps in the best way. Normally, this involves manually assigning new deals that have come in. This workflow automates it for you! What this workflow does This workflow runs once a day and checks for unassigned deals in your Hubspot CRM. Once it finds one, it enriches the deal with information about the assigned contact and their company. It then checks the region of the assigned company before looking at the company's employee size. Based on this, it assigns the deal to the right sales rep within your company. Requirements New deals in Hubspot need to be unassigned in the beginning New deals have to have an attached contact that has an attached company in Hubspot The company needs to have values for region and employee count in Hubspot Setup The setup is quite straight forward and will probably take a few minutes only. Add your Hubspot credentials Customize your criterias for assigning deals in the Assign by Region and the following Assign nodes Make sure deals are assigned to the right salesrep in the Hubspot nodes at the end Activate the workflow Customizing this to your needs Adjust the trigger interval to your needs. Currently, it defaults to once a day Adjust your region settings by adding/updating/removing options in the respective node Adjust your employee size settings by adding/updating/removing options in the respective node Ideas to enhance this flow Wrap each region's assigned criteria into different sub-workflows for easier maintainability. This will not consume additional execution counts. Add more logic on what happens once a deal does not match any criteria you've set
by Andrew
Who is this for? This workflow is ideal for n8n self-hosted users, DevOps engineers, and automation developers who want to automatically back up their n8n workflows to GitHub on a regular basis. What problem is this workflow solving Manually backing up n8n workflows can be time-consuming and prone to human error. This workflow automates the backup process, ensuring that all workflows are safely stored in a version-controlled GitHub repository every 24 hours. What this workflow does This automation runs daily to back up all workflows from your n8n instance to a specified GitHub repository. Each workflow is saved as a .json file using its unique ID, organized into a folder path defined by repo_path. The workflow is designed to manage memory usage efficiently by recursively calling itself. Once the backup is complete, it optionally sends a Slack notification to confirm success. Setup Configure the Config node in the subworkflow to set: GitHub Repo Owner GitHub Repo Name Main folder path (repo_path) Connect your GitHub and (optionally) Slack credentials. Set the workflow to run on a daily cron schedule. Test the workflow manually to confirm the GitHub integration works. Sign up for a free consultation and find out how n8n can help you.
by Javier Hita
Who is this for? This workflow is perfect for sales teams, business development professionals, recruitment agencies, and fractional CFO service providers who need to identify and qualify companies actively hiring. Whether you're prospecting for new clients, building a database of potential customers, or researching market opportunities, this automated solution saves hours of manual research while delivering high-quality, AI-analyzed leads. What problem is this workflow solving? Finding qualified prospects in the finance sector is time-consuming and often inefficient. Traditional methods involve: Manually browsing LinkedIn job postings for hours Difficulty distinguishing between genuine opportunities and recruitment spam Inconsistent lead categorization and qualification Risk of contacting the same companies multiple times Lack of structured data for sales team follow-up This workflow automates the entire lead generation process, from data collection to AI-powered qualification, ensuring you focus only on the most promising opportunities. What this workflow does This comprehensive lead generation system performs six key functions: Automated LinkedIn Job Scraping: Uses Apify's reliable LinkedIn Jobs Scraper to extract detailed job postings for finance positions, including company information, job descriptions, and contact details. Smart Data Processing: Removes duplicates, filters companies by size, and structures data for consistent analysis across all leads. Intelligent Lead Categorization: Compares new leads against your existing database to optimize processing and avoid duplicate work. AI-Powered Qualification: Leverages OpenAI's GPT-4 Mini to analyze each lead and determine: Company Category: Consumer companies, Fractional CFO services, Recruiting agencies, or Other Finance Role Validation: Confirms the position is genuinely finance-related Seniority Level: Entry, Mid, Senior, Director, or C-Level classification Job Summary: Concise description for quick sales team review Automated Database Management: Stores qualified leads in Airtable with comprehensive profiles, preventing duplicates while maintaining data integrity. Lead Scoring & Routing: Prioritizes leads based on processing status and qualification results for efficient sales team follow-up. Setup Prerequisites You'll need accounts for three services: Airtable** (Free tier supported) - For lead storage and management Apify** (14-day free trial available) - For LinkedIn job scraping OpenAI** (Pay-per-use) - For AI-powered lead analysis Step 1: Create Required Credentials Apify API Credential Sign up for an Apify account at apify.com Navigate to Settings β Integrations β API tokens Create a new API token In n8n, create a new Apify API credential with your token OpenAI API Credential Create an account at platform.openai.com Generate an API key in the API section In n8n, create a new OpenAI credential with your key Airtable Personal Access Token Go to airtable.com/create/tokens Create a personal access token with the following scopes: data.records:read data.records:write schema.bases:read In n8n, create a new Airtable Personal Access Token credential Step 2: Set Up Airtable Base Create a new Airtable base with the following structure: Table Name: Qualified Leads Required Fields: Company Name (Single line text) Job Title (Single line text) Is Finance Job (Checkbox) Seniority Level (Single select: Entry, Mid, Senior, Director, C-Level) Company Category (Single select: Consumer, Recruiting, Fractional CFO, Other) Job Summary (Long text) Company LinkedIn (URL) Job Link (URL) Posted Date (Date) Location (Single line text) Industry (Single line text) Company Employees (Number) Step 3: Configure the Workflow Import the Workflow: Copy the JSON and import it into your n8n instance Update Credentials: Replace placeholder credential IDs with your actual credential IDs in: "Scrape LinkedIn Jobs" node (Apify credential) "OpenAI GPT-4 Mini" node (OpenAI credential) "Save to Airtable" and "Get Existing Leads" nodes (Airtable credential) Configure Airtable Connection: Update the base ID and table ID in both Airtable nodes Set Search Parameters: In the "Edit Variables" node, configure: linkedinUrls: Your target LinkedIn job search URLs maxEmployees: Maximum company size filter (default: 200) batchSize: Processing batch size for API efficiency (default: 5) Step 4: Test the Workflow Start with a small test by setting count: 50 in the HTTP Request node Use a specific LinkedIn job search URL (e.g., "CFO jobs in New York") Execute the workflow manually and verify results in your Airtable base Review the AI categorization accuracy and adjust prompts if needed How to customize this workflow to your needs Targeting Different Roles Modify the LinkedIn search URLs in the "Edit Variables" node to target different positions: "https://www.linkedin.com/jobs/search/?keywords=Controller" "https://www.linkedin.com/jobs/search/?keywords=Finance%20Director" "https://www.linkedin.com/jobs/search/?keywords=VP%20Finance" Adjusting Company Size Filters Change the maxEmployees parameter to focus on different company segments: Startups: 1-50 employees SMBs: 51-500 employees Enterprise: 500+ employees Customizing AI Analysis Enhance the GPT-4 prompt in the "AI Lead Analyzer" node to include: Industry-specific criteria Geographic preferences Technology stack requirements Company growth stage indicators Integration Options Extend the workflow by adding: Slack notifications** for new qualified leads Email alerts** for high-priority prospects CRM integration** (Salesforce, HubSpot, Pipedrive) Lead enrichment** with additional data sources Scheduling Automation Set up the workflow to run automatically: Daily**: For active prospecting campaigns Weekly**: For ongoing market research Monthly**: For periodic database updates Performance & Cost Optimization API Efficiency**: The workflow processes leads in batches to optimize API usage Smart Deduplication**: Avoids re-processing existing leads to reduce costs Configurable Limits**: Adjust batch sizes and employee count filters based on your needs Expected Costs**: Approximately $0.05-$0.20 per 100 analysed leads (OpenAI costs) Troubleshooting Common Issues: Rate Limiting**: Increase delays between API calls if you encounter rate limits Data Quality**: Review LinkedIn search URLs for relevance to your target market AI Accuracy**: Adjust prompts if categorisation doesn't match your criteria Airtable Errors**: Verify field names match exactly between workflow and base structure Support Resources: Apify LinkedIn Scraper Documentation OpenAI API Documentation Airtable API Reference Transform your lead generation process with this powerful, AI-driven workflow that delivers qualified prospects ready for immediate outreach.