by ConnectSafely
Follow LinkedIn profiles from Google Sheets via ConnectSafely Who's it for This workflow is designed for sales professionals, recruiters, marketers, and business development teams who need to scale their LinkedIn networking efforts. Perfect for anyone managing lead generation campaigns, building industry connections, or conducting competitor research at scale. How it works The workflow automates LinkedIn profile following by reading a list of target profiles from Google Sheets, processing each profile through ConnectSafely.ai's platform-compliant automation, and tracking completion status back to your spreadsheet. The automation maintains LinkedIn's compliance standards while eliminating manual clicking. Watch the complete step-by-step implementation guide: Setup steps Step 1: Install ConnectSafely.ai n8n Package Install the official ConnectSafely.ai community node: Package name: n8n-nodes-connectsafely.ai Installation Methods: Option A: Via n8n Interface Navigate to Settings → Community Nodes Search for n8n-nodes-connectsafely.ai Click Install Option B: Via npm npm install n8n-nodes-connectsafely.ai Important: A complete n8n restart is required after installation for the nodes to appear. Step 2: Prepare Your Google Sheet Structure your Google Sheet with the following columns: | Column Name | Description | Required | |------------|-------------|----------| | LinkedIn Url | LinkedIn profile URL or ID | Yes | | First Name | Contact's first name | Optional | | Tagline | Contact's headline/title | Optional | | Status | Processing status (pending/done) | Yes | | row_number | Auto-generated row identifier | Yes | Sample Data Format: LinkedIn Url: https://www.linkedin.com/in/username Status: pending Step 3: Configure Google Sheets Integration Add Google Sheets node (Get Rows operation) Authenticate with Google OAuth: Client ID Client Secret OAuth Token Select your document and sheet Configure to pull all rows with pending status Step 4: Configure ConnectSafely.ai Credentials Obtain API Credentials Log into ConnectSafely.ai Dashboard Navigate to Settings → API Keys Generate a new API key Copy your Account ID from the Accounts section Configure n8n Node Add ConnectSafely LinkedIn node Select Follow a User operation Add credentials: API Key: Paste your ConnectSafely API key Account ID: Your LinkedIn account ID from dashboard Map Profile ID field: Use expression: {{ $json['LinkedIn Url'] }} This dynamically pulls the profile URL from each row Step 5: Configure Status Tracking Add a second Google Sheets node for status updates: Select Update Row operation Choose the same Google Sheet Configure column mapping: Matching Column: row_number Update Field: Status → done Map row_number expression: {{ $('Get row(s) in sheet').item.json.row_number }} This ensures accurate tracking of processed profiles and enables workflow resumption. Customization Add delay nodes for large batches (500+ profiles) Implement error handling for failed attempts Extend to CRM integration or connection requests Add analytics tracking for follow-back monitoring Use Cases Lead Generation**: Follow prospects and potential customers at scale Network Building**: Expand your LinkedIn network with relevant industry professionals Competitor Analysis**: Track and follow key players in your market Influencer Outreach**: Connect with thought leaders and content creators Event Networking**: Follow attendees and speakers from conferences and webinars Troubleshooting Common Issues & Solutions Issue: ConnectSafely node not appearing after installation Solution**: Ensure complete n8n restart (not just workflow refresh) Issue: Authentication errors with ConnectSafely API Solution**: Verify API key has proper permissions in dashboard Issue: Profile ID format errors Solution**: Ensure you're passing LinkedIn profile IDs or full URLs, not partial paths Issue: Google Sheets not updating status Solution**: Confirm row_number column exists and mapping is correct Issue: Workflow stops mid-execution Solution**: Check Google Sheets has Status column with "pending" values; verify rate limits Advanced Configuration Scaling Considerations Batch Processing**: Add delay nodes between executions for large lists (500+ profiles) Error Handling**: Implement error workflows for failed follow attempts Retry Logic**: Configure automatic retries for temporary failures Logging**: Add nodes to track execution metrics and performance Integration Extensions This workflow can be extended to include: CRM Integration**: Update contact records with follow status Connection Requests**: Modify to send personalized connection requests Engagement Tracking**: Monitor who follows back Multi-Platform**: Expand to other social networks Analytics Dashboard**: Feed data to BI tools for reporting Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs n8n Package Details**: https://connectsafely.ai/n8n-docs API Reference**: Available in ConnectSafely dashboard Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Custom Workflows**: Contact us for custom automation Connect With Us Stay updated with the latest automation tips, LinkedIn strategies, and platform updates: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai Facebook**: facebook.com/connectsafelyai X (Twitter)**: x.com/AiConnectsafely Bluesky**: connectsafelyai.bsky.social Mastodon**: mastodon.social/@connectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines Team collaboration and approval workflows
by ConnectSafely
Add LinkedIn Post Commenters to HubSpot CRM Who's it for This workflow is built for content creators, sales professionals, founders, and marketers who post regularly on LinkedIn and want to convert engaged commenters into CRM leads automatically. Perfect for anyone who gets decent engagement on their posts but struggles to manually capture and follow up with everyone who comments. If you're running thought leadership campaigns, generating inbound interest through content, or simply want to build relationships with people who engage with your posts, this automation captures every commenter and enriches them with full professional data before syncing to your CRM. How it works The workflow automatically captures LinkedIn post commenters and adds them to HubSpot CRM with enriched professional data. The process flow: Submit a LinkedIn post URL via a simple form trigger ConnectSafely.ai fetches all comments from the specified post Splits commenters into individual records for processing Loops through each commenter one at a time Apify actor enriches each profile with complete LinkedIn data (email, company, title, location) Email validation filters contacts - only those with valid emails proceed HubSpot integration creates or updates contacts with full enriched information Loop continues until all commenters are processed Watch the complete step-by-step implementation guide: Setup steps Step 1: Install the ConnectSafely Community Node This workflow requires the ConnectSafely community node, which is only available on self-hosted n8n instances. In n8n, go to Settings → Community Nodes Click Install a community node Enter: n8n-nodes-connectsafely-ai Click Install Restart n8n if prompted Note: Community nodes are not available on n8n Cloud. You'll need a self-hosted instance. Step 2: Configure ConnectSafely.ai API Credentials Obtain API Key Create an account at ConnectSafely.ai Connect your LinkedIn account in the dashboard Navigate to Settings → API Keys Generate a new API key Add Credential in n8n Go to Credentials in n8n Click Add Credential → Search for ConnectSafely API Paste your API key Save the credential Connect to the Node Open the 🔍 Fetch All Comments node Select your ConnectSafely API credential Step 3: Configure Apify Integration Get Apify API Key Sign up at Apify.com Go to Settings → Integrations → API Copy your API token Add Apify Credential in n8n Go to Credentials → Add Credential → Apify API Paste your Apify API token Save the credential Configure the Apify Node Open the Run an Actor and get dataset node Select your Apify credential The actor URL is pre-configured to use the LinkedIn enrichment actor: https://console.apify.com/actors/UMdANQyqx3b2JVuxg Step 4: Configure HubSpot Integration Create HubSpot App Token Go to HubSpot Settings → Integrations → Private Apps Click Create a private app Name it "n8n LinkedIn Commenters Sync" Under Scopes, enable: crm.objects.contacts.read crm.objects.contacts.write Click Create app and copy the access token Add HubSpot Credential in n8n Go to Credentials → Add Credential → HubSpot App Token Paste your access token Save the credential Connect to HubSpot Node Open the Create or update a contact node Select your HubSpot App Token credential Step 5: Test the Workflow Click Test Workflow to get the form URL Open the form URL in your browser Paste a LinkedIn post URL that has comments Submit the form Verify: Comments are fetched correctly Enrichment returns full profile data Contacts with emails are created in HubSpot Contacts without emails are skipped gracefully Customization Additional HubSpot Fields The Create or update a contact node maps these fields by default: First Name Last Name Email Job Title Company Name City Country Street Address To add more fields: Open the Create or update a contact node Click Add Field under Additional Fields Map Apify output fields to HubSpot properties Available Apify fields include: 06_Linkedin_url - LinkedIn profile URL 07_Title - Current job title 08_Summary - Profile summary 16_Company_name - Current company 17_Company_industry - Industry Add Lead Source Tracking To track that these contacts came from LinkedIn comments: Open the Create or update a contact node Add a custom field: leadSource = LinkedIn Post Comment Optionally add the post URL as a note Filter by Comment Quality Want to skip low-effort comments like "Great post!" or emoji-only responses? Add an IF node after 📤 Split Comments Array Filter based on comment text length or content Only process comments with meaningful engagement Different CRM Integration To use a different CRM instead of HubSpot: Delete the Create or update a contact node Add your CRM node (Salesforce, Pipedrive, Zoho, etc.) Map the enriched fields to your CRM's contact properties Connect it to the "Check if Contact is eligible" true output Add Slack Notifications Get notified when high-value commenters are captured: Add a Slack node after Create or update a contact Filter for specific job titles (VP, Director, CEO, etc.) Send a message to your sales channel with commenter details Use Cases Content-Led Sales**: Automatically capture decision-makers who engage with your thought leadership posts Event Promotion**: Sync everyone who comments on event announcements to your follow-up list Product Launches**: Build a list of interested prospects from launch announcement engagement Recruiting**: Capture professionals who engage with hiring posts or company culture content Community Building**: Track engaged community members across multiple posts over time Troubleshooting Common Issues & Solutions Issue: ConnectSafely node not appearing in n8n Solution**: Restart n8n after installing the community node. If still missing, verify the installation in Settings → Community Nodes. Issue: "Comments not loading" or empty results Solution**: Ensure the post URL is the full URL from LinkedIn (e.g., https://www.linkedin.com/posts/username_activity-1234567890/), not a shortened version. Also verify the post actually has comments. Issue: Apify enrichment returning empty results Solution**: Verify the LinkedIn URL format from the commenter profile is correct. Check your Apify actor is running properly and hasn't hit rate limits. Issue: HubSpot contact not created Solution**: Check that your HubSpot App Token has crm.objects.contacts.write scope enabled. Verify the email field is mapping correctly. Issue: Duplicate contacts in HubSpot Solution**: HubSpot uses email as the unique identifier. The node is configured to "Create or Update" so duplicates should be updated, not created. Issue: Rate limit errors from Apify Solution: The loop processes one commenter at a time, but you can add a **Wait node inside the loop with 2-5 second delays if needed. Issue: Missing email addresses for most commenters Solution**: This is normal - enrichment typically finds emails for 60-70% of profiles. Consider adding LinkedIn URL as a fallback identifier in your CRM. Costs & Considerations | Service | Cost | |---------|------| | ConnectSafely.ai | Free trial available, then subscription | | Apify Enrichment | ~$1 per 1,000 records | | HubSpot | Free tier works, or existing subscription | | n8n | Free (self-hosted required for community nodes) | Estimated cost per post with 50 commenters: ~$0.05 for Apify enrichment Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs Apify LinkedIn Actors**: https://apify.com/store HubSpot API**: https://developers.hubspot.com Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Custom Workflows**: Contact us for custom automation Connect With Us Stay updated with the latest automation tips and LinkedIn strategies: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai Facebook**: facebook.com/connectsafelyai X (Twitter)**: x.com/AiConnectsafely Bluesky**: connectsafelyai.bsky.social Mastodon**: mastodon.social/@connectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows AI-powered personalization at scale Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines
by Convosoft
Generate Secure User Authentication with One Webhook Streamline user onboarding and security for your applications using this n8n workflow. This template handles signup, login, and password resets through a single endpoint, making it ideal for developers building MVPs or scaling apps without a full authentication backend. Who Is This For? This workflow is designed for: Developers, indie hackers, and teams building web, mobile, or API-driven applications. Those who need a quick and secure authentication layer. Anyone tired of writing custom auth code or managing third-party services like Auth0 for simple needs. This template integrates seamlessly into your n8n setup. What Problem Does This Workflow Solve? Building authentication from scratch is time-consuming and complex: User Management: Managing registration, credential verification, and password recovery can take weeks of development time. Security: Ensuring secure password hashing, case-insensitive email matching, and robust error handling adds significant complexity. Integration: Creating consistent APIs for apps (e.g., React Native, Next.js, Flutter) is challenging. This workflow provides a battle-tested, webhook-based authentication system that is: Database-agnostic (works with PostgreSQL/Supabase). Extensible—deploy once and integrate across all your apps. What This Workflow Does The workflow handles authentication tasks through a single webhook endpoint, offering the following functionality: Webhook Entry: Listens for POST requests at /webhook/auth. Processes a simple JSON payload, routing actions via a "path" parameter (signup, signin, forgot). Signup: Inserts new users into your database. Uses bcrypt-hashed passwords (via pgcrypto). Returns user details in the response. Login: Queries for case-insensitive email matches. Verifies passwords securely. Returns user information on successful login. Forgot Password: Generates a random 8-character password. Updates the password hash in the database. Returns the new password (suitable for email delivery). Routing & Validation: Uses n8n Switch and IF nodes to securely handle paths and credentials. Standardized Responses: Outputs clean JSON with status, message, and data for easy frontend parsing. Error Handling: Gracefully manages invalid inputs, duplicate entries, or database errors. No more boilerplate—get authentication up and running in minutes! Setup Instructions Follow these steps to set up the workflow: Connect Your Accounts: Use PostgreSQL or Supabase for user storage (free tiers are sufficient). Enable the following PostgreSQL extensions: uuid-ossp and pgcrypto. Create the Users Table: sqlCREATE TABLE users ( id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), full_name text NOT NULL, email text UNIQUE NOT NULL, password_hash text NOT NULL, created_at timestamptz DEFAULT now() ); Configure Credentials : Add PostgreSQL credentials to the n8n nodes ("Signup", "Login", "Reset Password"). Import the JSON workflow into n8n. Activate the workflow. Test the Workflow: Use Postman or curl to send requests to the auto-generated webhook URL. How to Customize This Workflow Extend the workflow to fit your specific needs with these modifications: Add JWT Sessions: Insert a node after successful login to generate and sign JWT tokens (e.g., using the Crypto node). Email Integration: Add a SendGrid or Mailgun node to the "Forgot Password" flow to automatically send new credentials. Rate Limiting: Include an HTTP Request node to check usage quotas before processing requests. Multi-Database Support: Replace PostgreSQL with MySQL or MongoDB by updating the query nodes. Frontend Enhancements: Extend JSON responses to include user avatars or roles by joining additional tables in SQL queries. Triggers: Add a Schedule node for batch user imports. Include a webhook for external authentication calls.
by Oneclick AI Squad
Enhance event logistics with this automated n8n workflow. Triggered by seating requests, it fetches attendee data and venue templates from Google Sheets, calculates totals, and optimizes seating layouts. The workflow generates detailed recommendations, splits individual assignments, and sends alerts, ensuring efficient venue planning and real-time updates. 🎪📋 Key Features Optimizes seating arrangements based on attendee data and event type. Generates venue layouts with visual and statistical insights. Provides real-time alerts with comprehensive seating plans. Logs detailed assignments and layouts in Google Sheets. Workflow Process The Webhook Trigger node initiates the workflow upon receiving venue requirements and attendee data via webhook. Validate Request Data** ensures the incoming data is complete and accurate. Fetch Attendee Data** retrieves attendee information, including groups, accessibility needs, and VIP preferences from Google Sheets. Fetch Venue Templates** reads venue layout templates from Google Sheets. Calculate Totals** aggregates attendee data and venue constraints for optimal planning. Combine All Data** merges attendee and venue data for analysis. AI Optimization** uses algorithms to calculate optimal seating based on venue dimensions, attendee groups, accessibility needs, VIP placement, and aisle placement. Optimize Seating Layout** refines the seating plan for efficiency. Format Recommendations** structures the seating plan with visual layout map, seat assignments, statistics & metrics, and optimization tips. Split Seat Assignments** divides the plan into individual seat assignments. Send Response** returns the complete seating plan with visual layout map, seat assignment list, statistics & recommendations, and export-ready format. Send Alert** notifies organizers with the finalized plan details. Update Sheets** saves the master plan summary, individual seat assignments, and layout specifications to Google Sheets. Save Individual Assignments** appends or updates individual seat assignments to Google Sheets. Setup Instructions Import the workflow into n8n and configure Google Sheets OAuth2 for data access. Set up the Webhook Trigger with your event management system's API credentials. Configure the AI Optimization node with a suitable algorithm or model. Test the workflow by sending sample seating requests and verifying layouts. Adjust optimization parameters as needed for specific venue or event requirements. Prerequisites Google Sheets OAuth2 credentials Webhook integration with the event management system Structured attendee and venue data in a Google Sheet Google Sheet Structure: Attendee Data Sheet with columns: Name Group Accessibility Needs VIP Status Preferences Updated At Venue Templates Sheet with columns: Venue Name Capacity Dimensions Layout Template Updated At Modification Options Customize the Validate Request Data node to include additional validation rules. Adjust the AI Optimization node to prioritize specific criteria (e.g., proximity, accessibility). Modify the Format Recommendations node to include custom visual formats. Integrate with venue management tools for live layout updates. Set custom alert triggers in the Send Alert node. Discover more workflows – Get in touch with us
by Juan Carlos Cavero Gracia
This automated workflow template helps agencies and social media managers securely onboard clients by generating a branded Connect Accounts page where clients can link their social profiles without sharing passwords. The flow creates a user in Upload-Post and returns a one-hour magic link you can send to the client. Once connected, you can publish from the Upload-Post dashboard, via API, or from your own n8n automations using the created profile name. Note:* This workflow uses the **Upload-Post.com API to create the user and generate a time-limited JWT connect link. You can brand the connect page with your logo via the logoImage parameter (and optionally brandName, redirectUrl, or allowedPlatforms). Who Is This For? Marketing & Creative Agencies:** Onboard new clients quickly and securely without requesting credentials. Social Media Managers & Freelancers:** Standardize account connection across all clients in one simple step. SaaS & No-Code Builders:** Offer a white-label “connect your socials” experience inside your tools and client portals. In-House Marketing Teams:** Let internal stakeholders connect brand accounts without IT hand-offs. Why This Matters Collecting passwords is risky, slow, and non-compliant. Onboarding often means back-and-forth emails, shared logins, and manual setup. This template: Eliminates Password Sharing:** Clients connect through secure OAuth flows. Reduces Friction:** A single, short-lived link guides clients to connect supported platforms. Speeds Activation:** As soon as accounts are linked, you can publish from the dashboard, API, or n8n. Builds Trust & Compliance:** Brandable, auditable, and privacy-first onboarding. How It Works Trigger: Start the workflow in n8n. Create User: The Create user node provisions a client user in Upload-Post (use a unique handle/slug). Generate Connect Link: The Generate JWT for platform integration node returns a one-hour connect URL (plus metadata), brandable via logoImage. Share With Client: Send the link via your preferred channel (Email/Telegram/Slack/CRM). Client Connects Accounts: The client links their social profiles on the secure page—no passwords required. Start Publishing: Post from https://app.upload-post.com/dashboard, the Upload-Post API, or your n8n flows referencing the created profile name. Setup Upload-Post Account & Credentials Create an account at upload-post.com and add your API credentials in n8n. Configure Nodes Create user: Set newUser to a unique identifier (e.g., client email/slug). Generate JWT: Set user to the same identifier and (optionally) logoImage to a public logo URL. You can also pass brandName, redirectUrl, and allowedPlatforms. Branding (Optional) Use a square transparent PNG for best results on the connect page. Delivery (Optional) Add Email/Telegram/Slack nodes to automatically send the connect link to the client and log the action in your CRM. Requirements Accounts:** n8n, Upload-Post.com API Keys/Creds:** Upload-Post API credentials Social Media:** Clients must have the social accounts they want to connect Features Secure Client Onboarding:* One-click, *no-password** account linking via OAuth. Time-Limited Access:* *One-hour** magic link for safer sharing and compliance. Brandable Experience:** Show your own branding on the connect page with logoImage (plus brandName). Ready to Publish:** Post immediately from the dashboard, API, or n8n using the profile name. Scales With You:** Reuse the template for every client and integrate with your CRM and comms tools. Multi-Platform Support:** Works with all social platforms supported by Upload-Post (e.g., TikTok, Instagram, YouTube, Facebook, X, Threads, LinkedIn, Pinterest). Use this template to onboard clients in minutes and start publishing securely—without ever asking for a password.
by David Olusola
🚀 Auto-Save Instagram Leads to Google Sheets This workflow automatically captures leads submitted through an Instagram Form and saves the data directly to a Google Sheet. It ensures that every new lead is instantly logged, creating a centralized database for your marketing and sales teams. ⚙️ How It Works Receive Lead Data The workflow starts with an Instagram Lead Webhook that listens for new lead submissions from your Instagram account's lead form. Normalize Data A Code node processes the raw data received from Instagram. This node normalizes the lead information, such as name, email, and phone number, into a consistent format. It also adds a "Source" field to identify the lead as coming from Instagram and timestamps the entry. Save to Google Sheets Finally, the Save to Google Sheets node takes the normalized data and appends it as a new row in your designated Google Sheet. It uses the email field to check for existing entries and can either append a new row or update an existing one, preventing duplicate data. 🛠️ Setup Steps 1. Create Google Sheet Create a new Google Sheet with the following headers in the first row (A1): 2. Get Sheet ID Find your Sheet ID in the URL of your Google Sheet. It's the long string of characters between /d/ and /edit. Example: Replace YOUR_GOOGLE_SHEET_ID in the Save to Google Sheets node with your actual ID. 3. Connect Instagram Form Copy the Webhook URL from the "Instagram Lead Webhook" node. In your Instagram lead form settings, paste this URL as the webhook destination. Ensure your form fields are mapped correctly (e.g., name, email, phone, message). ✅ Once configured, every Instagram lead will instantly appear in your Google Sheet — organized, timestamped, and ready for follow-up.
by Alexander Schnabl
Audit external sharing in SharePoint to ensure compliance This workflow audits your SharePoint Online environment for external sharing risks by identifying files and folders that are shared with anonymous links or external/guest users. It is designed to traverse SharePoint recursively, giving you full visibility into sharing across all sites, document libraries, folders and files. What it does Scans all SharePoint sites in the tenant. Traverses SharePoint recursively** through every folder and file, starting at the root of each drive. Fetches permissions for every item (files and folders). Detects and flags: Anonymous sharing links (anyone links) External or guest users, identified by: SharePoint guest login markers (#ext#, urn:spo:guest) Email domains not matching your internal tenant domains Outputs only items that are externally shared, including detailed metadata and permission evidence. How it works In the Set Variables node you define your internal tenantDomains, used to distinguish internal users from external ones. Microsoft Graph** is used to: Fetch all SharePoint sites Retrieve drives (document libraries) per site Each drive triggers a recursive subworkflow that: Starts at the root level Determines whether an item is a folder or a file If a folder, drills down into its children Keeps both folders and files, since both can have unique permissions For every discovered item: Permissions are retrieved via Microsoft Graph Item metadata and permissions are merged A custom filtering step analyzes permissions and: Flags anonymous links and external principals Drops items with no external exposure The final output is a clean, normalized list of externally shared SharePoint items, enriched with: Item name, type, URL and last modified date Site, drive, and parent identifiers Detailed lists of anonymous links and external users found Setup Create a Microsoft Entra ID (Azure AD) App Registration. Grant Microsoft Graph – Application permissions: Sites.Read.All Configure an OAuth2 Client Credentials credential in n8n and assign it to all HTTP Request nodes. Update the Set Variables node: Add all internal tenant domains (e.g. yourDomain.onmicrosoft.com, yourDomain.com) Run the workflow manually or attach a Schedule Trigger for recurring audits. Notes The workflow traverses SharePoint recursively, ensuring no nested folder or file is missed. Both folders and files are included because permissions can be broken at any level. External users are detected defensively using both login-name patterns and email domain checks.
by Geoffroy
🪐 Use case Automatically surface and insert the three most relevant “Related articles” at the end of every Shopify blog post to boost session depth, SEO, and reader engagement. ⚙️ What this workflow does Pulls all published articles from a selected Shopify Blog using the Admin API. Cleans the HTML content (removes existing .related-articles blocks) and extracts text for embeddings. Generates OpenAI embeddings (text-embedding-3-small) and stores them in n8n Data Tables. Calculates semantic similarity (cosine distance) between articles to identify the top matches. Selects the Top 3 most relevant related posts for each article (configurable). Dynamically builds a `` HTML section and updates the article on Shopify. Runs on a weekly schedule to keep relations fresh as new content is added. 🧩 Setup Create 3 Data Tables: articles article_relations article_related_links_snapshot Add credentials: Shopify Admin API Access Token OpenAI API Key Set environment variables in the Workflow Configuration node: shopifyBlogId shopifyBlogDomain shopifyStoreName shopApiVersion percent_minimum_similarity (default 70) (Optional) Keep or modify the Schedule Trigger (default: every week at 20:00). 🛠️ How to adjust this template Modify the similarity threshold or number of related posts displayed. Edit the HTML snippet or CSS classes for the related section. Integrate a second OpenAI model to rewrite link titles or summaries for better UX. 💡 Ideal for Shopify content teams and SEO strategists who want automated, context-aware internal linking to improve engagement and organic ranking.
by Masaki Go
What it does This workflow automates your X (Twitter) engagement by acting as an auto-responder. It runs on a schedule, searches for new tweets based on a specific query (like a hashtag, keyword, or mention), and automatically sends a reply. How it works Schedule Trigger: Runs the workflow automatically at your chosen interval (e.g., every 15 minutes). Search Tweets (HTTP): Uses the X (Twitter) API v2 to find recent tweets matching your search query. Error & Success Handling: If the search is successful, it proceeds to prepare a reply. It includes error handling for common issues like Rate Limits or if No Tweets are found. Send Reply (HTTP): Posts the reply to the tweet. Duplicate Check: Includes logic to check if a reply has already been sent to avoid spamming. How to set up Credentials: You must have an X (Twitter) Developer Account (v2). Add your credentials to n8n. Search Node: In the "Search Tweets" node, update the query parameter with your own search terms (e.g., #n8n or from:username). Reply Node: In the "Prepare Reply" node, customize the text you want to send. Activate: Set your desired schedule in the "Schedule Trigger" node and activate the workflow. Requirements An active n8n instance. An X (Twitter) Developer Account with Elevated (v2) access. X (Twitter) API v2 credentials. How to customize the workflow Change Schedule:** Modify the "Schedule Trigger" to run more or less frequently. Dynamic Replies:** Enhance the "Prepare Reply" node with an AI node (like OpenAI) to generate unique replies instead of static text. Add Filters:** Add an "IF" node after "Search Tweets" to filter out tweets you don't want to reply to.
by Open Paws
Multi-Version Content Generator with AI Scoring & Advocacy Preference Ranking ✍️ Who’s it for 🐾 This workflow is ideal for animal advocates, campaign managers, and content creators who want to generate multiple versions of written content—such as blog posts, emails, or social media captions—and identify the most effective and persuasive options using advanced AI scoring models. How it works / What it does ⚙️ The flow takes user input specifying content type, tone, style, and topic. It calls a powerful research and content generation subworkflow to produce five fully written content variations. These are split and passed to a scoring subworkflow that uses Open Paws AI models trained on real-world social media and email marketing data, combined with evaluations from animal advocacy experts. Finally, it aggregates the content with their performance and prediction scores, outputting a ranked list of content options. How to set up 🛠️ Add the following subworkflows to your n8n instance before running this flow: Multi-Tool Research Agent for Animal Advocacy Evaluate Animal Advocacy Text with Hugging Face & Open Paws AI Models Requirements 📋 n8n instance API key for OpenRouter The linked research and scoring subworkflows installed and accessible How to customize the workflow 🎨 Modify the user input fields to change content type, tone, style, and topic. You can extend the scoring node or integrate this flow as a subworkflow within larger automation pipelines—for example, to schedule posting or feed an AI agent for content selection.
by Geoffroy
This n8n template saves you hours of manual SEO work by automatically parsing your sitemap and submitting updated URLs to Google and Bing (IndexNow). Who’s it for Site owners, SEOs, and marketers who want a single automation to notify Google (Indexing API) and Bing (via IndexNow) whenever site URLs are added or updated. No more need to update it manually. Hours saved What it does This workflow parses your sitemap.xml, and for each URLs that have been changed on the last X days (this is a setting from Config node), submit them to Google and Bing via IndexNow. Before submitting to Google it checks the status. For IndexNow it just submits based on the last updated date it can find on the sitemap. How it works Parses your sitemap(s)to generate a list of urls ordered by lastmod date. Create a batch of the urls updated in the last X days (settings DAYS_BACK from the "Config" node) For Google, it first aks the current indexing notification status of this exact URL. If the sitemap shows the page was modified after the last submission, the workflow sends a new "URL_UPDATED" notification to Google. If Google has no record (404), it means the URL was never submitted and the workflow treats it as new and submits it. For Bing through IndexNow, it only sends “recently changed URLs” based on the sitemap’s <lastmod> and the variable DAYS_BACK from the Config Node, by batches of 500 (current limit recommendation by Bing). IndexNow doesn't have an API to check the status of the url. Requirements Google Indexing API credentials (Service Account with https://www.googleapis.com/auth/indexing scope, added as Owner in Search Console). IndexNow API key: you can create it here https://www.bing.com/indexnow/getstarted. How to use Edit the "Config" node with your data & preferences (everything explain in the workflow). Edit the "Check status (Google)" and "URL updated (Google)" node with your Google service account credentials. Execute the workflow to test it Set up a cron with the "Schedule Trigger" node depending on your needs
by Muhammad Anas Farooq
n8n Self-Updater Workflow > An automated n8n workflow originally built for DigitalOcean-based n8n deployments, but fully compatible with any VPS or cloud hosting (e.g., AWS, Google Cloud, Hetzner, Linode, etc.) where n8n runs via Docker. This workflow checks for the latest Docker image of n8n, notifies you via email for approval, and securely updates your n8n instance via SSH once approved. How It Works Trigger: The workflow runs automatically every 3 days at 4 PM UTC (or manually if triggered). Check Version: It retrieves your current n8n Docker version and image digest via SSH. Compare: Fetches the remote digest from Docker Hub and compares it with the local one. Notify via Email: If a new update is available, an approval email is sent with details: Current version Local digest Remote digest What will happen after approval Approval Logic: Approve → Workflow connects via SSH and updates the n8n container automatically. Decline → Workflow ends; next check occurs in the next cycle. Auto Update Execution: Creates (if missing) a update_docker.sh script on the server. Runs it in the background (nohup) to: cd /opt/n8n-docker-caddy docker compose pull docker compose down docker compose up -d The delay ensures n8n restarts only after workflow completion. Requirements SSH Access** to your server (where n8n runs). Add your credentials in n8n under Credentials → SSH Password. SMTP Connection** for email notifications. Configure in Credentials → SMTP. Fill in: From Email → e.g., info@yourdomain.com To Email → your email for receiving approvals Docker-based n8n Deployment**, e.g., n8n-docker-caddy setup. Docker and docker-compose** installed on the server. How to Use Import the Workflow: Copy the provided JSON file. In your n8n instance → click Import Workflow → paste the JSON. Set Up Credentials: Create two credentials in n8n: SSH Password → Your server's SSH credentials. SMTP → Your email provider's SMTP credentials. Edit the Email Node: Replace: fromEmail: info@yourdomain.com → with your email. toEmail: youremail@yourdomain.com → with your desired recipient. Enable Auto Trigger (optional): Go to the Schedule Trigger node and set your desired interval/time. Run the Workflow: Test manually first. Once verified, activate it for automatic checks. Notes Originally designed for DigitalOcean VPS setups, but can run on any Docker-based n8n server. The workflow avoids duplicate updates by comparing digests instead of version tags. If the update_docker.sh file already exists, it reuses it safely. Approval emails include full details for transparency. Background execution ensures no interruptions during restart. Example Behavior Day 1**: Workflow checks → detects update → sends email → user approves. 30 seconds later**: Workflow runs update script → n8n restarts with latest Docker image. Day 4**: Workflow checks again → digests match → silently completes (no email sent). Author: Muhammad Anas Farooq