by System Admin
No description available
by MD Faizan Uzzaman
Quick overview This workflow receives appointment requests via webhook, checks slot availability, then creates/updates a contact and books a 30-minute appointment in GoHighLevel (HighLevel). It also creates or updates a related opportunity with custom fields and triggers follow-up sub-workflows for background processing and error handling. How it works Receives a POST webhook request with the patient’s name, phone, address, service type, and preferred date/time. Calls a separate n8n workflow to check whether the requested time slot is available. If the slot is unavailable, returns a response indicating the appointment was not booked and the slot is unavailable. If the slot is available, builds a 30-minute start/end time window from the preferred date/time and creates or updates the contact in GoHighLevel. Books the appointment in the specified GoHighLevel calendar and then searches the GoHighLevel pipeline for an existing opportunity matching the contact/phone. Updates the existing opportunity stage or creates a new opportunity, then uses the LeadConnector/GoHighLevel API to set custom fields (service type, preferred date/time, and event ID). Returns a “booked” response payload and triggers a separate background workflow with the booking details, while routing any GoHighLevel failures to an error workflow. Setup Add GoHighLevel (HighLevel) OAuth2 credentials for the contact, calendar appointment, and opportunity actions. Add a GoHighLevel/LeadConnector private integration bearer token for the HTTP request that updates opportunity custom fields. Update the GoHighLevel location ID, calendar ID, pipeline ID, stage ID, and custom field IDs to match your GoHighLevel account. Publish and configure the dependent sub-workflows (“Ray - Check Slot Availability”, “Ray - Background Workflow”, and “Ray - Error Workflow”) and ensure their workflow IDs are correct. Copy the webhook URL for POST /ray/book-appointment and configure the calling system to send the required request body fields.
by Robert Breen
A minimal, plug-and-play workflow that generates sample data using n8n’s Code node (both JavaScript and Python versions included) and then fans out those records into individual items with Split Out. Perfect for testing downstream nodes, mapping, pagination, or prototyping list-based logic without connecting to real data sources. ✅ What this template does Generates 20 sample records** with fields: index, num, and test Writes the array to item.json.barr Uses Split Out to convert the array into one item per record Includes both JavaScript and Python implementations side-by-side 👤 Who’s it for Builders who need mock data to test mappings and loops Educators/demo makers who want a simple fan-out pattern Anyone who wants a clean scaffold for list processing in n8n ⚙️ How it works / What it does Generate Data Javascript**: Produces barr = [{ index, num, test }, ...] for 20 rows Generate Data Python**: Same output, written in Python Split Out Javascript / Python: Takes barr and emits **one item per element > Use either branch (JS or Python) depending on your preference. 🛠️ How to set up No external setup required. Import the workflow and Execute. Select either the JavaScript or Python branch to see fan-out items. 📋 Requirements n8n (Cloud or self-hosted) No credentials or third-party services 🎛️ Customize the workflow Change the number of rows: adjust the loop range (0..N) Rename or add fields to each record (e.g., name, price, tags) Replace the static array with generated or randomized data Pipe the Split Out output into Set, Function, HTTP, or Sheets nodes for further testing 🗒️ Notes Sticky notes are included for in-editor guidance. Both implementations return the same structure so you can swap freely. 📬 Contact Need help customizing this (e.g., shaping fields, adding randomizers, or exporting to CSV/Sheets)? 📧 rbreen@ynteractive.com 🔗 Robert Breen — https://www.linkedin.com/in/robert-breen-29429625/ 🌐 ynteractive.com — https://ynteractive.com
by Kevin Yu
Quick overview This workflow runs every morning, scans a Notion tasks database for overdue, unfinished items, rolls their due dates forward, increments a roll counter, and marks tasks as stale once they have been rolled too many times. How it works Runs every morning at 7:00 based on a schedule. Retrieves all pages from the selected Notion database. Filters for tasks with a due date before today and a status that is not in the configured “done” list. Sets each overdue task’s due date to today (or the next business day), increments its Rolled counter, and marks it Stale when the roll count exceeds the threshold. Updates the matching Notion pages with the new due date, Rolled number, and Stale checkbox values. Setup Add your Notion API credentials and share the target Notion database with the Notion integration. Select your tasks database in the Notion “Get Open Tasks” step. Ensure your database has matching properties (Due date, Status select/status, Rolled number, and Stale checkbox) and update the property names, DONE_VALUES, STALE_THRESHOLD, and ROLL_TO settings in the code to match your schema. Requirements A Notion internal integration credential, with the tasks database shared with the integration A tasks database with a Date property (due date), a Status or Select property, a Number property (roll counter), and a Checkbox property (stale flag) Customization Set ROLL_TO to roll dates to today or to the next business day Edit DONE_VALUES to define which statuses count as finished and are never touched Change STALE_THRESHOLD to control how many rolls mark a task stale Rename the property keys in the code config to match your own schema Adjust the schedule to run at a different time Additional info Overdue is judged by calendar date, so a task due earlier today is left alone until tomorrow. Rows that would not change are skipped before the update step, so the workflow is idempotent and safe to run repeatedly. Fully deterministic, no AI. Test on a copy of your database first.
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 Johnpaul Nwagwu
Use this workflow to book, cancel, or reschedule appointments using Vapi and Google Calendar How it works The Check Availability workflow checks if appointments exist on Google Calendar and returns a response to Vapi. The Book Appointment workflow schedules an appointment on Google Calendar. The Manage Appointments workflow updates or cancels appointments based on the user’s request. Key Features: Ability to book, update, or cancel an appointment Validates required fields before booking Handles errors with helpful user messages Returns a Vapi-compatible response format Set up steps Prerequisites Vapi.ai account Google Calendar n8n instance - Self-hosted or cloud Steps Step 1: Configure Google Calendar Access Step 2: Import and Configure Workflows Step 3: Create Vapi Custom Tools Step 4: Configure Vapi Assistant Use Cases Appointment booking automation for service businesses
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. Introduction This workflow automates Zoom recurring webinar registrations by capturing form submissions from a KlickTipp Landingpage and enriching contacts with webinar details. Depending on the registrant’s webinar choice (for example “E-Mail Zustellung für Anfänger” or “E-Mail Zustellung für Experten”), the system fetches the correct Zoom webinar info and writes it into KlickTipp. Ideal for running scalable webinar funnels without manual data entry. Benefits Instant contact enrichment**: Automatically populates KlickTipp with Zoom join links and session times. Dynamic segmentation**: Applies specific tags for “Beginner” or “Expert” webinar participants. Scalable structure**: Router logic allows easy extension for more webinar types. Key Features KlickTipp Trigger**: Starts the workflow when a landing-page form is submitted via outbound webhook. Switch Router**: Routes based on the webinar selection. Supports multiple webinar options. Zoom API Integration**: Retrieves recurring webinar data including join URL and future occurrences. webinar IDs are set per path (Beginner vs Expert). KlickTipp Contact Sync**: Updates or subscribes contacts in the correct list. Writes custom fields for join link and next session timestamp. Applies topic-specific tags for segmentation. Custom Fields (KlickTipp Setup) | Name | Field type | |---------------------------------|----------------| | Zoom \| webinar choice | Line Text | | Zoom \| webinar start timestamp | Date & Time | | Zoom \| Join URL | URL | | Zoom \| Registration ID | Line Text | | Zoom \| Duration webinar | Line Text | Tags (Segmentation) Zoom webinar E-Mail Zustellung für Anfänger Zoom webinar E-Mail Zustellung für Experten Setup Instructions KlickTipp Preparation Create the custom fields above. Add dropdown for webinar choice on landing page. Configure outbound webhook to n8n. Credential Configuration Authenticate KlickTipp API. Connect Zoom via OAuth2 (webinar:write:registrant scope). Insert correct Zoom webinar IDs in workflow nodes. Field Mapping Map the zoom data to the newly created KlickTipp custom fields. Ensure tags match campaign setup. Testing and Deployment Submit a registration form. Confirm workflow triggers and Zoom data is fetched. Verify KlickTipp contact is updated with: Join URL Start timestamp Correct segmentation tag ⚠️ Note: Zoom OAuth tokens may expire — refresh when needed. Zoom may also enforce API rate limits. Campaign Expansion Ideas Add more webinar types and extend router. Build reminder and follow-up campaigns in KlickTipp by tag. Track attendance tags for automated post-event actions. Customization Adapt Zoom nodes for webinars. Add fallback logic if Zoom data is missing. Trigger cross-tool automations (CRM, Slack, invoicing). Resources: Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Matan Grady
Auto-resolve Jira tickets with coding agents Improve issue resolution by assigning Jira tickets to coding agents with full operational context from Port, ensuring faster, accurate, and context-aware development How it works Listen for Jira ticket updates and detect when an issue moves to In Progress with the label product_approved and without copilot_assigned. Query the Port catalog to extract only contextual information relevant to the Jira issue (services, repos, docs, resources, dependencies). Generate a concise GitHub issue title and a self-contained issue body that summarizes the Jira description and includes any found Port context. Create the GitHub issue in the target repository and post a comment that requests Copilot to take ownership. Write the GitHub link back to the Jira ticket and add the copilot_assigned label so the ticket is marked as handled. Setup [ ] Connect your Jira Cloud account and enable issue_updated events [ ] Register for free on Port.io [ ] Connect your Port.io account and add the API key [ ] Connect your GitHub account and select the target repository [ ] Ensure a Copilot bot or @copilot user has access to the repository [ ] Confirm the workflow webhook or Jira trigger URL is active [ ] Test by moving a product_approved ticket to In Progress.
by Piotr Sobolewski
How it works This intelligent workflow allows you to generate new tweets that closely mimic the unique style of any public Twitter user. It's perfect for content creators, marketers, or anyone wanting to create engaging content with a specific brand voice or personal flair. It automatically: Fetches recent tweets from a specified Twitter handle to understand their distinctive writing style. Analyzes the stylistic patterns (tone, vocabulary, common phrases, emoji use, brevity, etc.) of these tweets using advanced AI. Generates new tweet content on your desired topic, reapplying the learned style. Provides the AI-generated tweet for your review, ready to be copied or directly published. Unleash your content's potential by speaking in a voice that resonates, even if it's not your own! Set up steps Setting up this sophisticated workflow takes around 20-30 minutes, as it involves Twitter API integration and advanced AI prompting. You'll need to: Authenticate your Twitter account (required to fetch tweets). Obtain API keys for your preferred AI service (e.g., OpenAI, Google AI). Provide the Twitter handle of the user whose style you want to copy. Input the new content/topic you want to generate a tweet about. All detailed setup instructions and specific configuration guidance are provided within the workflow itself using sticky notes.
by Patrick Jennings
Sleeper NFL Players Sync This template uses the Sleeper API to fetch the complete list of NFL players and stores them in an Airtable base. It’s built to run daily and ensures you have the most up-to-date player list for fantasy football workflows What it Does Maintain a current player list for fantasy league automations for Sleeper app users / NFL fantasy football managers Pull Sleeper player IDs once daily instead of every request Build smarter workflows using Airtable as your structured dataset Create a subworkflow in n8n for even more Sleeper app workflows Setup Instructions Install n8n (Cloud or self-hosted) Import the template JSON Create Airtable Credentials: Generate an API key at airtable.com/account Connect your base and table (you’ll be prompted to do this in n8n) If you would like to customize how you store data please feel free to use what works best for you Match your fields with the data you're storing: player_id (text/number) full_name position team etc. Activate your workflow Remember, you can customize how you trigger this workflow and where you store the data if you choose to do so. Notes Sleeper's player API returns 6,000+ entries, including inactive players, retired players, etc. You can filter this down as needed via position, status, or metadata. Airtable record limit on the free tier is 1,000 rows per base — consider upgrading or filtering further. Be careful of rate limits: both Sleeper and Airtable have them (but this workflow stays well within safe boundaries). The Airtable node can be replaced with other data storage nodes (Google Sheets, Excel, etc) if you prefer Difficulty Rating & Comment (from the author) 2 out of 10 if this ain't you're first rodeo, respectfully. If you use Sleeper for fantasy football, lets go win some games!