by Arthur Dimeglio
🎧 Automated Spotify Playlist Organizer — Sort and Queue Tracks by Popularity 🧠 Overview This workflow acts as your AI-powered Spotify DJ assistant. It retrieves your playlists, cleans and organizes them, sorts tracks by popularity, and automatically queues them for playback — creating a ready-to-play, personalized listening session. ⸻ ⚙️ Step-by-Step Breakdown Manual Trigger Node: When clicking ‘Execute workflow’ Starts the workflow manually when you click “Execute” in n8n. ⸻ Get User’s Playlists Node: Get a user’s playlists • Uses your Spotify OAuth credentials. • Calls Spotify’s API to retrieve all playlists from your account (returnAll: true). • Output: an array of playlists (name, URI, number of tracks, etc.). 🟢 This is your raw data source. ⸻ Clean & Deduplicate Node: Clean & Deduplicate (Code node) This JavaScript block: • Normalizes input (handles arrays and multiple items). • Extracts only useful fields: name, uri, total. • Filters out playlists missing data. • Removes duplicates by URI. 🧹 Result: a clean, uniform list of your playlists. ⸻ Get a Playlist’s Tracks Node: Get a playlist’s tracks by URI or ID • Fetches all tracks from a specific playlist. • Returns detailed info: name, popularity, artists, album, added date, etc. 🎵 This retrieves the actual songs from your chosen playlist. ⸻ Playlist Reorganizer Node: Playlist reorganizer (Code node) This JavaScript block: • Collects all tracks from the selected playlist. • Avoids duplicates with seenTrackIds. • Extracts key fields: id, name, popularity, artists, album, added_at, url, etc. • Sorts songs by ascending popularity (less popular first). 📊 Result: playlist reorganized by song popularity. ⸻ Loop Over Items Node: Split in Batches • Iterates over each track one by one. • Sends each song sequentially to the next node (“Add a song to a queue”). 🔁 Allows each song to be processed individually. ⸻ Add a Song to a Queue Node: Add a song to a queue • Uses each song’s Spotify ID to add it to your Spotify playback queue (spotify:track:{{ $json.id }}). • Connected to the “Loop Over Items” node to continue until all songs are queued. 🎶 Result: your Spotify queue fills automatically with the reorganized tracks. ⸻ ✅ Final Result When you execute this workflow: It fetches all your playlists. Cleans and filters them. Extracts tracks from one selected playlist. Sorts them by popularity. Adds them to your playback queue. 🎧 End result: a fully automated “AI DJ” that reorganizes your playlists and lines up your music session — from discovery to playback. ⸻ 🪪 Prerequisites Before using this workflow: • You must have a Spotify account. • You need to set up Spotify OAuth credentials in n8n (Client ID, Client Secret, Redirect URI). • Ensure you have Spotify Premium (API queueing only works on Premium accounts). ⸻ 🛠️ Setup Instructions Import this workflow into your n8n instance. Go to the Spotify OAuth2 API credentials section and connect your account.
by Jose Castillo
Overview This workflow acts as an AI-powered smart time tracker for employees or personal use. It records work sessions via a webhook, logs start/end/break times into n8n Data Tables, and uses OpenAI to automatically summarize working patterns and send reminders or monthly reports via Gmail. How It Works Webhook /track-time → Receives a POST request with a method (start, break, or end) and duration if applicable. Switch Logic → Directs the request to create or update the appropriate record in your Data Table. Data Tables → Store timestamps, break durations, and worker IDs in a secure local table. Schedule Triggers Daily (10:00) → Checks if today’s shift was not started and sends a reminder. Monthly (Day 1, 06:00) → Compiles last month’s working data and sends an AI report to management. OpenAI Analysis Summarizes working hours and productivity trends. Detects missed clock-ins or irregular patterns. Gmail Integration → Sends formatted daily or monthly reports to both employees and supervisors. Example Webhook Requests Start work POST /track-time { "method": "start", "headers": { "id": "EMP001" } } Log a break POST /track-time { "method": "break", "duration": 15, "headers": { "id": "EMP001" } } End work POST /track-time { "method": "end", "headers": { "id": "EMP001" } } Example Email Output Subject: “Workday Summary – EMP001” 🕒 Workday completed successfully Start: 09:00 Break: 15 minutes End: 17:45 AI Summary: Consistent work pattern detected this week. Consider shorter but more frequent breaks.
by Didarul
Description This workflow automates lead collection from WordPress Elementor Forms, stores form submissions in an Excel/Google Sheet CRM, sends emails to both admin and the customer, and also performs recurring promotional email campaigns. Ideal for anyone using: Elementor Pro Form Widget Elementor-based WordPress websites Webhook-enabled contact forms This system replaces multiple plugins and services (Mailchimp, CRM plugins) with a simple, fully automated workflow. 🌐 What This Template Does 🟦 1. Captures Elementor Form Submissions The workflow starts with a Webhook Trigger connected to your Elementor form’s “Webhook” action. It collects: Name Email WhatsApp number Budget Project details Any custom field from Elementor 🟩 2. Saves Each Lead to Excel / Google Sheets Using the Sheets/Excel node, every form submission is stored as a new row in your CRM sheet. This helps you maintain: Lead database Contact history Budget details Customer inquiry info 🟧 3. Sends Notification Email to the Website Owner A Gmail node sends a fully formatted email to the site admin with all submission details. Useful for: Quick follow-up Lead tracking Team notifications 🟨 4. Sends Auto-Reply Email to Customer A thank-you / confirmation email is automatically sent to the customer who submitted the Elementor form. This creates: Professional communication Instant acknowledgment Trust and credibility 🟫 5. Updates Excel Sheet with Email Status After sending each email (admin & customer), an update is written back to the Excel sheet: “Owner Mail Sent: YES” “Customer Mail Sent: YES” or error logs if needed. This allows full auditability. 🟣 6. Scheduled Marketing Email Campaigns A Schedule Trigger (daily/weekly/monthly) runs your promotional email batch. It: Reads email list from your Excel/Sheet Loops through each row Sends email using Gmail node Logs “Campaign Email Sent” for each contact This gives you a built-in email marketing engine using your CRM sheet as a source. 🟤 7. Loop + Gmail Email Sender The workflow loops over each row and sends individual emails instead of bulk mailing. Benefits: Higher inbox delivery Less spam detection Personalized messaging 🛠️ Use Cases Elementor Pro Form submissions WordPress business or agency website Auto CRM creation in Excel/Google Sheets Auto-responses for submitted forms Monthly email campaigns Lead database + tracking Replace Mailchimp or CRM plugins 🚀 Features 100% No-code Works with Elementor Pro Webhook Easy to customize Full automation chain Reliable email notifications Marketing-ready system 📝 Tags #wordpress #elementor #form #automation #webhook #excel #googlesheets #crm #leadmanagement #emailautomation #gmail #marketing #promotion #autoresponder #webflow #website #automation
by youpath
📋 What this workflow does This automated workflow streamlines the process of responding to leads who submit a Google Form. It instantly sends a personalized confirmation email to the lead and notifies your internal team with the submission details — ensuring no lead goes unnoticed. It’s perfect for freelancers, agencies, small businesses, or any team collecting lead information through Google Forms and looking to reduce response time while staying organized. ⚙️ Workflow Overview Trigger**: A new row is added to a connected Google Sheet via Google Forms Email to lead**: Sends a custom confirmation message using Gmail Email to team**: Notifies internal staff with all the lead’s submitted details The entire process happens instantly and automatically, creating a better user experience and improving lead management. 🛠️ Setup Instructions Connect your Google Form to a Sheet In Google Forms, click the green Sheets icon under “Responses” Create or connect Gmail & Google Sheets credentials in n8n Update node field references if needed Your Google Sheet must include these columns: Timestamp Full Name Email Phone Number (optional) What are you interested in? Additional message or query Edit the Gmail nodes Replace the placeholder email your@email.com with your actual sending address Personalize the subject and body text if desired Add your own notification recipient in the internal email node 🗒️ Notes This workflow uses Spanish field labels — adapt field names if your form is in another language Sticky notes inside the workflow explain where to update text and variables All personal data has been removed from this public version ✅ Tools Used Google Forms Google Sheets Gmail n8n core nodes (no external APIs)
by Oneclick AI Squad
This n8n workflow automates attendance tracking for construction workers at a designated site in Thaltej, Ahmedabad (GPS coordinates: 23.0489, 72.5118). Using geofencing technology, it logs "Punch In" and "Punch Out" times when workers enter or exit a predefined 100-meter radius around the site, requiring no manual input. Attendance data is stored in Google Sheets for easy access and reporting, and error notifications are sent via email to ensure reliable operation. Good to Know Fully Automated**: Tracks attendance without worker intervention using GPS data from a mobile app. Geofence-Based**: Only logs entries/exits within the Thaltej, Ahmedabad site radius. Structured Logs**: Stores data in Google Sheets with columns for User ID, Punch Type, Punch Date, and Punch Time. Error Handling**: Sends email notifications for any issues in the workflow. Scalable**: Supports multiple workers with unique IDs sent by the GPS app. Real-Time**: Processes location updates instantly for accurate time tracking. How It Works Attendance Tracking Flow Webhook Trigger: Listens for POST requests from a GPS tracking app at the endpoint /webhook/geofence-thaltej-attendance. Expects a JSON payload with: { "latitude": 23.0489, "longitude": 72.5118, "event": "enter", // or "exit" "userId": "worker123" } Validate Geofence & Format Log: Validates the received payload for required fields (latitude, longitude, event, userId). Uses the Haversine formula to check if the coordinates are within 100 meters of Thaltej, Ahmedabad (23.0489, 72.5118). Maps event ("enter" to "in", "exit" to "out") and formats the log with current date and time (e.g., Punch Type: "in", Punch Date: "2025-08-01", Punch Time: "11:53:07"). Skips invalid or out-of-geofence data. Save to Google Sheets: Appends the formatted log to a Google Sheet in the "Attendance" tab, under columns: User ID, Punch Type, Punch Date, Punch Time. Error Notification via Email: Sends an email to a specified address if the workflow encounters errors (e.g., invalid payload or geofence mismatch). Includes error details for troubleshooting. Example Log Output in Google Sheets | User ID | Punch Type | Punch Date | Punch Time | |------------|------------|-------------|------------| | worker123 | in | 2025-08-01 | 11:53:07 | | worker123 | out | 2025-08-01 | 13:30:20 | | worker123 | in | 2025-08-01 | 13:50:21 | How to Use Import Workflow: Copy the workflow JSON (provided below) and import it into n8n via the "Import Workflow" feature. Configure GPS Tracking App: Use a GPS app (e.g., allGeo, Truein, or a custom solution) that supports geofencing and webhook integration. Set the geofence to Thaltej, Ahmedabad (latitude: 23.0489, longitude: 72.5118, radius: 100 meters). Configure the app to send POST requests to the n8n webhook URL (/webhook/geofence-thaltej-attendance) with the payload: { "latitude": 23.0489, "longitude": 72.5118, "event": "enter", // or "exit" "userId": "worker123" } Ensure the app is installed on workers’ devices and running in the background. Set Up Google Sheets: Create a Google Sheet with a tab named "Attendance". Add headers in columns A to D: User ID, Punch Type, Punch Date, Punch Time. Copy the Sheet ID from the URL (e.g., https://docs.google.com/spreadsheets/d/[your_sheet_id]/edit). In n8n, configure Google Sheets OAuth2 credentials and update the sheetId in the workflow. Configure Email Notifications: Set up an email service (e.g., Gmail, SendGrid) in n8n with appropriate credentials. Update the email node with your recipient email address and SMTP settings. Activate Workflow: Save and activate the workflow in n8n. Test by simulating a webhook call or using the GPS app to send a sample payload. Monitor and Verify: Check Google Sheets for attendance logs after workers enter/exit the geofence. Verify error emails are received if issues occur. Requirements n8n Instance**: Self-hosted or cloud-based n8n setup. GPS Tracking App**: A mobile app or service (e.g., allGeo, Truein) that sends geofence events via webhooks. Google Sheets API**: Google Cloud project with Sheets API enabled. OAuth2 credentials configured in n8n. Email Service**: SMTP credentials for an email provider (e.g., Gmail, SendGrid). Worker Devices**: Smartphones with GPS enabled and the tracking app installed. Customizing This Workflow Adjust Geofence Radius**: Modify the radius value in the Function node (e.g., change from 100 meters to 200 meters). Change Location**: Update latitude and longitude in the Function node for a different site. Alternative Storage**: Replace Google Sheets with a database (e.g., MySQL, PostgreSQL) by adding a database node. Custom Email Content**: Modify the email node’s message template for specific error details or branding. Add Authentication**: Secure the webhook with an API key or basic auth in the Webhook node. Multi-Site Support**: Add a Switch node to handle multiple geofence locations by checking coordinates against different sites.
by Javier Quilez Cabello
Automatically register new volunteers in SinergiaCRM when they submit a form, creating or updating contacts and relationships, and sending a confirmation email to your team. Who is this workflow for? This workflow is ideal for nonprofit organizations that manage volunteer registrations and use SinergiaCRM as their CRM system. It helps automate the data entry process, ensuring volunteers are quickly added and tracked in the CRM. What it does / How it works Triggers when a new volunteer submits a form. Checks if the volunteer already exists in SinergiaCRM (matched by NIF). If found: adds a “volunteer” relationship to the existing contact. If not found: creates the contact and then adds the relationship. Sends an email notification to your team with the volunteer’s information. Requirements A working SinergiaCRM instance with the following modules enabled: Contacts stic_Contacts_Relationships The field stic_identification_number_c must exist and be used to identify contacts by NIF. Active Gmail (or other email provider) integration in n8n. Valid OAuth credentials for SinergiaCRM and your email provider. How to set up Connect your SinergiaCRM account using OAuth in the credentials section. Update the recipient email address in the Gmail node. Ensure your CRM contains the field stic_identification_number_c. Optionally adjust the value of assigned_user_id to reflect your CRM configuration. How to customize the workflow Modify the form fields in the Form Trigger node to match your registration form. Customize the volunteer relationship parameters (e.g. type or assigned user). Change the email content in the Gmail node to fit your organization’s tone. Replace Gmail with another email node (Outlook, SMTP, etc.) if needed. 📌 Category: CRM & Customer Management 📘 Learn more about SinergiaCRM
by Viktor Klepikovskyi
Simple REST API with Google Sheets Introduction This workflow template demonstrates how to quickly and easily create a simple REST API using n8n and a Google Sheet as a no-code database. It's a perfect starting point for building a backend for small applications, prototypes, or internal tools without writing any code. Purpose The purpose of this template is to provide a complete, ready-to-use n8n workflow that handles all fundamental CRUD (Create, Read, Update, Delete) operations. The workflow uses a single Webhook trigger to handle POST, GET, PUT, and DELETE requests, allowing you to manage data in your Google Sheet through standard API calls. Setup Instructions To get started with this template, follow these steps: Prepare your Google Sheet: Create a new Google Sheet and add the following column headers in the first row: name, email, and status. You can use this example Google Sheet as a starting point. This sheet will serve as your database. Authenticate: In the n8n workflow, connect your Google Account credentials to the Google Sheets nodes. Select your data: Choose the Google Sheet and the corresponding sheet name from the drop-down lists in each of the Google Sheets nodes. Activate: Save and activate the workflow. Test the API: Use a tool like curl, Postman, or Insomnia to test your new API endpoints. The base URL will be your n8n webhook URL followed by /items. Example curl Commands: POST (Create):** curl -X POST YOUR_N8N_WEBHOOK_URL/items -H "Content-Type: application/json" -d '{"name": "Alice", "email": "alice@example.com", "status": "active"}' GET (Read All):** curl -X GET YOUR_N8N_WEBHOOK_URL/items/all GET (Read Single):** curl -X GET YOUR_N8N_WEBHOOK_URL/items?id=2 PUT (Update):** curl -X PUT YOUR_N8N_WEBHOOK_URL/items?id=2 -H "Content-Type: application/json" -d '{"status": "inactive"}' DELETE (Delete):** curl -X DELETE YOUR_N8N_WEBHOOK_URL/items?id=2 For more detailed instructions, including building the workflow in n8n, check out the full blog post: Build a Simple REST API in 10 Minutes with n8n & Google Sheets
by Ivan Maksiuta
Overview This template allows you to automatically post messages from Telegram directly to Facebook using Airtop no-code browser automation. It is designed for creators, social media managers, and businesses that want to streamline their cross-posting workflow without coding. Why this is valuable Manually copying messages from Telegram to Facebook can be time-consuming and error-prone. With this automation: Every Telegram message you send to your bot can instantly appear on Facebook. You save time, reduce repetitive manual work, and ensure consistent messaging across platforms. Perfect for community managers, marketing teams, and content creators who want to grow their Facebook presence while engaging Telegram followers. How it works A Telegram Trigger listens for incoming messages to your bot. Airtop starts a browser session and opens Facebook. The bot clicks into the composer, types your Telegram message, and presses Publish. (Optional) It can also tag followers or add extra text. Finally, Telegram sends you a confirmation: “✅ Facebook: post published.” Setup Connect your Telegram Bot credentials. Add your Airtop API key/account. On first run, log in to Facebook inside Airtop (it will reuse the session later). Customization Change selectors or text if your Facebook interface differs. Add more automation steps (like attaching images, tagging pages, or posting into groups). Adjust Wait nodes if your connection is slower.
by Yves Tkaczyk
Use cases Ensure that the calls to the workflow's webhook are (a) originating from the correct GitHub repository and (b) haven't been tampered with. How it works When a secret is provided in a GitHub webhook configuration, a x-hub-signature-256 header is added to the webhook. Compute HMAC256 computes the HMAC256 signature similarly to how it was computed by GitHub. Validate HMAC256 tests for the equality of the computed value and the value provided by the header. If the values are equal then 200 is returned to GitHub and the workflow continues If the values are NOT equal then 401 is returned and the workflow ends. Note: The Stop and Error step is optional and can be removed. Removing it means that the workflow completes successfully while still returning 401 to GitHub. This means that you will not be able to easily track malicious or incorrect calls to your webhook from n8n. How to use Add the steps (1) and (2) of the workflow to your current workflow receiving webhook calls from GitHub. Update the Secret field in the Compute HMAC256 node with the same value as the secret stored in the Secret field in the GitHub webhook definition. Requirements GitHub account and repository. GitHub webhook setup with a Secret key. Key can be of any length and should be generated with a key or password generator. Who’s it for Developers or DevOps engineers who want to ensure secure webhook communication between GitHub and n8n. How to customize the workflow This is a building block for your own workflow. If you use this workflow as a base, replace step (3) with your own business logic. You can modify the Stop and Error node to log unauthorized requests or trigger alerts. ⚠️ Warning The secret is stored in plain text in the workflow. You should take this into consideration if the workflow is committed to source control or shared in any other way. Need Help? Reach out on LinkedIn or Ask in the Forum!
by KlickTipp
Community Node Disclaimer This workflow uses KlickTipp community nodes, available for self-hosted n8n instances only. Who’s it for Marketing teams, agencies, and content creators who want to turn Instagram post comments into automated conversations — capturing leads, sending personalized DMs, and enriching contacts in KlickTipp without manual work. How it works This workflow automates engagement between Instagram users and your marketing funnel. It listens for new Instagram comments, validates the Meta webhook, and sends personalized DMs with form links. The workflow then stores and syncs user data for tagging and enrichment in KlickTipp. When a new comment appears, it: Validates the webhook setup via the Meta hub.challenge Captures the commenter’s username and ID Sends a personalized DM with a form link for lead capture Stores the data in Google Sheets for tracking Updates or tags the contact in KlickTipp The result: every Instagram comment turns into a structured, tagged lead for your marketing automation. How to set up Connect accounts for Meta (Instagram), Google Sheets, and KlickTipp. Set up your Meta App webhook for Instagram comments, using your workflow’s webhook URL and verify token (e.g., KlickTipp). Create a Google Sheet as a matching table with the columns: Instagram username Instagram ID Authenticate KlickTipp with API credentials and ensure your subscriber fields are configured. Test by commenting on a connected Instagram post to trigger the workflow. 💡 Pro Tip: Customize the DM to include your brand’s tone and lead form link for higher engagement. Requirements Meta (Instagram) Business Account Facebook Graph API with pages_messaging permission Google Sheets OAuth connection KlickTipp account with API access How to customize Replace the default form link with your own JotForm or landing page URL. Adjust DM content to fit your tone and campaign messaging. Add logic to send different DMs based on comment keywords. Integrate with KlickTipp tags for automatic segmentation. Expand the workflow to handle repeat commenters or trigger follow-ups.
by masaya kawabe
Auto-like and repost latest tweets from accounts in Google Sheets Who’s it for Teams and solo creators who manage multiple X (Twitter) accounts they follow and want consistent engagement with minimal effort. Ideal for social managers, community leads, and campaign operators who need safe, repeatable automation. What it does / How it works On a schedule, the workflow reads a Google Sheet of screen names, fetches each account’s latest tweets, then likes and reposts them. A Limit node caps daily actions to respect rate limits and reduce risk. Every step includes Sticky notes: a yellow Overview (full description + safety notes) and white per-step notes (setup tips, filters, and expansion ideas). How to set up Add Credentials for X (Twitter) OAuth2 and Google Sheets (no hardcoded tokens). Point the Google Sheets node to your sheet (header アカウントID, screen names without @). Adjust the search query (e.g., -is:reply -is:retweet) and results per run. Set the Schedule Trigger cadence and Limit (start with 1–3). Test with a staging account, then enable scheduling. Requirements n8n 1.x+ X (Twitter) OAuth2 and Google Sheets OAuth2 credentials A Google Sheet with column アカウントID How to customize the workflow Add a dry-run flag (Set → IF) to skip actions in testing. Insert IF filters for NG words, language, or tweet age (created_at). Add a Wait node between Like and Repost for cooldowns. Append logs to another Google Sheet (status, URL, timestamp). Security & quality: Use Credentials only, avoid personal IDs in nodes, and keep actions modest to respect API limits.
by System Admin
Tagged with: , , , ,