by Aitor | 1Node
This n8n automation connects your Google Sheets to Vapi, enabling you to automatically call new contacts as soon as their information is added to your spreadsheet. Instantly reach out with a personalized voice call from a Vapi AI assistant, based on any event that adds a new row to your sheet. ๐งพ Requirements Google Sheets Google Sheets credentials** enabled and tested in n8n. A table in your Google Sheet formatted as follows: Required Columns & Data Types | Column Name | Example Value | Data Type | Notes | |---------------|----------------|-------------------|-----------------------------------------------| | phone_number | +11234567890 | Text (String) | Must include the + and country code, no spaces or dashes. Mandatory for workflow. | | (optional) | first_name | John | Text (String) | For call personalization. | | (optional) | email | test@email.com | Text (String) | For follow-ups or records. | | (additional)| Any extra info | | | Can be used for advanced customization. | Ensure all columns contain data in plain text format. Phone number field must never be empty and follow the E.164 international format: + + country code + phone number. Vapi A Vapi account with credit. A connected phone number (to originate calls). An assistant (AI voice agent) created and ready to make calls. Your Vapi API key. ๐ Useful Link Vapi Docs ๐ ๏ธ Comprehensive Setup Instructions 1. Prepare Your Google Sheet Create a Google Sheet with the required column names as listed above. Ensure your phone_number column is correctly formatted (international format, no spaces). Optionally, add columns such as first_name, email, or any field your workflow should use. 2. Set Up Google Sheets Credentials in n8n In n8n, go to "Credentials" and create Google Sheets credentials. Authenticate with your Google account and test the connection. 3. Configure the n8n Workflow Add a Google Sheets Trigger node: Set trigger mode to "New Row". Select your Google Sheet and worksheet. Add a Wait node: Configure a wait time (e.g., 4 minutes) between trigger and next action. 4. Map & Set Vapi Fields Add a Set node: Create fields required by the Vapi API: phone_number_id: Copy from your Vapi dashboard. assistant_id: Use the ID of your AI assistant. api_key: Store securely (see n8n secret management). to: Set as the Google Sheet's phone_number value. Example: {{ $json["phone_number"] }} (Optional) Map extra fields from Sheet (e.g., first_name, email) for personalized calls. 5. Add the HTTP Request to Vapi Add an HTTP Request node: Method: POST URL: https://api.vapi.ai/call Body parameters: Use all mapped fields from previous step. 6. Test the Workflow Add a new row to your Google Sheet. Verify that, after the wait period, Vapi attempts the call and uses personalized information. ๐จ Customization Options Personalize Calls Further:** Add additional columns like first_name, product, or appointment_time in Google Sheets. Map these into the API call so Vapi can use them for dynamic greetings or contextual responses. Conditional Flows:** Insert n8n logic nodes (IF, Switch) before making the Vapi call. For example, only call if a "Consent" column is TRUE, or select different assistants based on region or product interest. Multiple Assistants/Numbers:** Store different assistant IDs or phone number IDs in columns, and dynamically route calls based on sheet data (e.g., region-specific assistants). Advanced Field Mapping:** Pass any relevant sheet fields into the API payload and configure your Vapi assistant scripts to utilize these variables for high-touch, customized user interactions. ๐ Example Google Sheet Setup | phone_number | first_name | email | product | consent | |--------------|------------|------------------|------------|---------| | +11234567890 | John | j@email.com | Widget A | TRUE | | +44207123456 | Maria | maria@x.co.uk | Widget B | FALSE | In n8n, map only those rows where consent=TRUE. ๐โโ๏ธ Need Help? Feel free to contact us at 1 Node Get instant access to a library of free resources we created.
by Harry Gunadi Permana
Forex News Trading Result Data This n8n template simulates the results if we take every trade based on the previous workflow: https://n8n.io/workflows/8340-automated-forex-news-alert-system-with-forex-factory-and-telegram/ Use Cases Analyze which news events have a higher probability of generating profit. Decide on Take Profit and Stop Loss levels for specific currency pairs or news events. Currency Pairs EURUSD, GBPUSD, AUDUSD, NZDUSD, USDJPY, USDCHF, USDCAD, XAUUSD Limitations We use High, Low, and Live Prices from MyFxBook. These values may differ depending on the broker. Spread widening and slippage will vary across brokers. Price gaps may occur over weekends. Profit/Loss also depends on when the trade is closed. How It Works Each day, the workflow checks if the Sheets have empty High and Low Price values. It queries MyFxBook for updated High and Low Prices for Date+1 (the next trading day after opening a buy/sell position) using the HTTP Request node. The response from the HTTP Request is parsed. If new High and Low data are available, the workflow retrieves the date. It scrapes the new High and Low Price data and calculates the multiplier for the respective currency pair. Example: USDJPY prices have 3 decimals, so the multiplier is 1000. Sheets are updated with High, Low, Points Up, and Points Down. The workflow checks if the buy/sell position results in profit or loss. Example: if we have a EURUSD Buy position and Points Up > 0, then there is a possibility of profit. Points Up can be negative if the new High Price remains below the Buy position entry price. If we have a Buy position and Points Up โค 0, then there is a possibility of a loss. How to Use Enter all required credentials. Create or download a Google Sheets file (example): https://docs.google.com/spreadsheets/d/1OhrbUQEc_lGegk5pRWWKz5nrnMbTZGT0lxK9aJqqId4/edit?usp=drive_link Run the workflow. Requirements Enable the Google Drive API in Google Cloud Console. Provide Google Sheets credentials. Need Help? Join the Discord or ask in the Forum! Thank you!
by 1Shot API
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Self-Hosted x402 Facilitator In the x402 payment protocol, a facilitator is a role which helps sellers settle stablecoin payments onchain without dealing with blockchain complexities. This workflow allows you to run your own fully-featured, specification-compliant facilitator in n8n. You might want to do this if you want to accept payments in tokens not supported by existing facilitators or as your own business! Details A facilitator supports three routes: /verify, /settle, and /supported. These routes are all created for you in this workflow with proper error handling and responses. A seller will first hit /verify with their payment details to ensure the payment information is correct. Next they will hit the /settle endpoint with the same payment information to settle the paymet on the blockchain. The /supported endpoint is used to indicate to sellers which blockchains you choose to support in a programatic fashion. Setup Create a 1Shot API account Create 1Shot API wallets for the networks where you wish to facilitate token payments and load them with sufficient gas tokens. Using 1Shot Prompts, import the transferWithAuthorization functions for the tokens you will settle payments for. Import this workflow into n8n and create a credential to link the 1Shot API community node to your 1Shot API business account. Enter the token and network information into the payment token and network configuration nodes indicated by the sticky nodes. Turn on your workflow and settle payments!
by Omer Fayyaz
This n8n template implements a Calendly Availability Checker that provides real-time availability information for your Calendly event types via a simple API endpoint Who's it for This template is designed for developers, businesses, and service providers who need to programmatically check Calendly availability. It's perfect for: Web developers** building custom booking interfaces that need real-time availability data Chatbot developers** who want to suggest available times to users Website builders** who want to display available slots on their site Integration developers** who need to check availability before creating bookings Businesses** that want to build custom scheduling experiences on top of Calendly Service providers** who need availability data for their own applications or dashboards How it works / What it does This workflow creates a RESTful API endpoint that returns real-time availability information from your Calendly account. The system: Accepts webhook requests via POST with optional parameters: event_type_uri (optional) - Specific event type to check days_ahead (optional, default: 7) - Number of days to check ahead Authenticates with Calendly API using OAuth2 credentials to access your account Retrieves user information to get your Calendly user URI and account details Lists all active event types from your Calendly account Selects the target event type: Uses the event_type_uri from the request if provided Otherwise defaults to the first active event type Fetches available time slots from Calendly's availability API for the specified date range Formats the availability data into a structured response including: Total number of available slots Next available slot (formatted and ISO timestamp) Array of all available slots with formatted times and booking URLs Slots grouped by day for easy consumption Complete list of all event types Returns a comprehensive JSON response with all availability information ready for integration How to set up 1. Configure Calendly OAuth2 Credentials Go to calendly.com/integrations Click "API & Webhooks" Create an OAuth2 application or use Personal Access Token In n8n, create a new credential: Type: "Calendly OAuth2 API" Follow the OAuth flow to connect your Calendly account The credential will be used by all HTTP Request nodes in the workflow 2. Activate the Workflow Open the workflow in n8n Ensure the Calendly OAuth2 credential is properly configured Activate the workflow to make the webhook endpoint available 3. Test the Workflow Use the "Test workflow" button in n8n to manually trigger it Or send a POST request to the webhook URL: { "event_type_uri": "optional-event-uri", "days_ahead": 7 } Verify the response contains availability data Check that the "Get Current User" node successfully retrieves your account info 4. Customize (Optional) Adjust the default days_ahead value in the "Set Configuration" node (currently 7 days) Modify the date range calculation in "Get Available Times" node Customize the response format in "Respond with Availability" node Add filtering logic to select specific event types Add caching to reduce API calls Requirements Calendly account** with at least one active event type n8n instance** (self-hosted or cloud) Calendly OAuth2 API credentials** configured in n8n Webhook access** (if using n8n cloud, webhooks are automatically available) How to customize the workflow Modify Date Range Edit the "Set Configuration" node to change the default days_ahead value Update the start_time and end_time calculations in "Get Available Times" node Currently checks from tomorrow (1 day ahead) to 7 days ahead by default Adjust the date calculation expressions as needed Filter Specific Event Types Modify the "Select Event Type" node to add filtering logic Add an IF node to check event type names or slugs Filter by duration, active status, or custom criteria Return multiple event types if needed Customize Response Format Edit the "Respond with Availability" node to change the JSON structure Add or remove fields from the response Format dates/times differently Include additional metadata from event types Add pagination for large slot lists Add Caching Insert a Code node before "Get Available Times" to check cache Store availability data temporarily to reduce API calls Set appropriate cache expiration times Consider using n8n's built-in cache or external storage Add Error Handling Enhance error handling in HTTP Request nodes Add validation for request parameters Return meaningful error messages in the response Handle cases where no event types exist Handle cases where no availability exists Integrate with Other Services Add nodes to log availability checks to a database Send availability data to analytics platforms Trigger notifications when availability changes Sync availability with external calendars Build availability dashboards Key Features RESTful API endpoint** - Simple POST endpoint for checking availability Real-time availability** - Fetches current availability directly from Calendly API Flexible event type selection** - Supports specific event type or auto-selects first available Configurable date range** - Customizable number of days to check ahead Comprehensive response format** - Returns formatted and raw availability data Multiple data views** - Provides slots as array, grouped by day, and summary statistics Event type information** - Includes details about all available event types Human-readable formatting** - Formats dates and times for easy display Booking URLs included** - Each slot includes direct booking URL Error resilience** - Nodes configured with continueRegularOutput to handle API errors gracefully Use Cases Custom booking widgets** - Display available slots on your website without embedding Calendly Chatbot integration** - Let AI assistants suggest available times to users Mobile app integration** - Check availability before showing booking options in mobile apps Multi-calendar systems** - Aggregate availability from multiple Calendly accounts Availability dashboards** - Build internal dashboards showing team availability Smart scheduling** - Check availability before sending meeting invitations Booking confirmation flows** - Verify availability before processing bookings Calendar sync verification** - Ensure Calendly availability matches other calendar systems Analytics and reporting** - Track availability patterns and booking trends Custom scheduling UIs** - Build completely custom scheduling interfaces using availability data Data Fields Returned User Information User name, email, scheduling URL User URI and organization URI Event Type Information Event type name, duration (minutes), URI Complete list of all active event types with details Availability Summary has_slots - Boolean indicating if any slots are available total_slots - Total number of available slots next_available - Human-readable formatted string of next available slot next_available_iso - ISO 8601 timestamp of next available slot Available Slots Array Each slot includes: start_time - ISO 8601 timestamp formatted - Human-readable date/time string booking_url - Direct URL to book this specific slot Slots by Day Grouped object with days as keys Each day contains array of time slots with formatted times and booking URLs Format: { "Monday, Dec 2": [{ time: "10:00 AM", url: "..." }] } Metadata checked_at - ISO timestamp of when availability was checked success - Boolean indicating successful execution Workflow Architecture The workflow uses a linear processing pattern with data transformation at each step: Webhook Trigger โ Receives POST requests with optional parameters Set Configuration โ Extracts and sets default values for event_type_uri and days_ahead Get Current User โ Authenticates and retrieves Calendly user information Extract User Info โ Parses user data to extract URIs and account details Get Event Types โ Fetches all active event types for the user Select Event Type โ Chooses target event type (from request or first available) Get Available Times โ Queries Calendly API for available time slots Format Availability โ Transforms raw API data into structured, formatted response Respond with Availability โ Returns comprehensive JSON response to caller Example Scenarios Scenario 1: Check Default Availability Developer sends POST request to webhook endpoint with empty body Workflow uses default 7-day lookahead period Workflow selects first active event type automatically Returns availability for next 7 days with all slots formatted Developer displays slots in custom booking interface Scenario 2: Check Specific Event Type Developer sends POST request with specific event_type_uri Workflow uses provided event type instead of default Checks availability for that specific event type only Returns slots grouped by day for easy calendar display Developer shows availability in day-by-day calendar view Scenario 3: Extended Date Range Developer sends POST request with days_ahead: 30 Workflow checks availability for next 30 days Returns comprehensive list of all available slots Developer uses data to show monthly availability view User can see all available times for the next month Scenario 4: Chatbot Integration User asks chatbot "When are you available?" Chatbot calls webhook endpoint to get availability Workflow returns next available slot and total count Chatbot responds: "I have 15 slots available. Next available: Monday, Dec 2 at 10:00 AM" Chatbot offers to book the next available slot This template provides a powerful API endpoint for checking Calendly availability, enabling developers to build custom scheduling experiences while leveraging Calendly's robust scheduling infrastructure.
by Lorena
This workflow imports data from Google Sheets into a MySQL database.
by Jan Oberhauser
Read XLS from file Convert it to JSON Insert it in Postgres
by Dick
Basis workflow to convert FileMaker Data API ... to Flat File Array ...
by TUMUSIME David
Who's it for This template is perfect for sales teams, marketing professionals, recruiters, and business development specialists who need to efficiently collect targeted lead data from multiple sources. Whether you're building prospect lists, conducting market research, or expanding your contact database, this automated solution saves hours of manual data collection. How it works The workflow uses an n8n built-in form to collect search parameters, then automatically scrapes targeted leads from Google Maps and/or LinkedIn within Apify Actors based on your criteria. All collected data is cleaned, structured using Edit field nodes, and stored in your Supabase database for easy access and analysis. Key features: Interactive form for easy lead targeting Dual-source scraping (Google Maps + LinkedIn), you choose one or Both. Automatic data collection and cleaning, and structuring from Apify actors. Direct database storage in Supabase Flexible result limits and location targeting. How to set up Step 1: Set Up Apify Account Create account at apify.com Navigate to Settings > Integrations > API tokens Create new API token and copy it Ensure you have access to these actors: LinkedIn Profile Search Scraper (harvestapi/linkedin-profile-search) Google Maps Scraper (compass/crawler-google-places) Step 2: Configure Supabase Database Create new project at supabase.com Go to SQL Editor in your Supabase dashboard Run the SQL scripts from the Requirements section to create tables Navigate to Settings > API to copy: Project URL (starts with https://...) Service role key (secret key, not anon public) Step 3: Import and Configure Workflow Download the workflow JSON file In n8n Cloud, go to Workflows > Import from File Select the downloaded JSON file Configure credentials by clicking on each node that shows a warning: For Apify nodes (linkedin_dataset & googlemaps_dataset): Click "Create New Credential" Name: "Apify account" API Token: [Paste your Apify token from Step 1] Save credential For Supabase nodes (save_linkedin & save_googlemaps): Click "Create New Credential" Name: "Supabase account" Host: [Your Supabase project URL from Step 2] Service Role Secret: [Your service role key from Step 2] Save credential Step 4: Test the Workflow Click on the "On form submission" node Copy the Production URL (webhook link) Open this URL in a new browser tab Fill out the test form: Title/Industry: "restaurants" Location: "San Francisco, CA" Source: "Google Maps" Number of results: "3" Click Submit and wait for processing Check your Supabase tables to verify data was saved Step 5: Verify Setup Success In Supabase, go to Table Editor Check the googlemaps table for new entries Verify all fields are populated correctly Test with LinkedIn source to confirm both paths work The workflow is designed to be plug-and-play once credentials are configured. Simply share the form URL with your team or bookmark it for regular lead generation tasks. How to customize the workflow Search Parameters: Modify Apify actor configurations in the dataset nodes Adjust search query formats for better targeting Change result limits based on your needs Data Processing: Edit the Set nodes to extract additional fields Add data validation steps Implement duplicate detection logic Storage Options: Replace Supabase with other databases (Airtable, PostgreSQL) Add data export to CSV/Excel Implement real-time notifications Support: Check n8n community forum for help Review Apify actor documentation The workflow is designed to be plug-and-play once credentials are configured. Simply fill out the form with your target criteria and let the automation handle the rest. Requirements External Services: Apify account with credits (for web scraping) Supabase account (for data storage) Supabase Table Schemas: LinkedIn Table (LinkedIn): publicidentifier (text) linkedinurl (text) name (text) headline (text) about (text) premium (boolean) verified (boolean) openprofile (boolean) topskills (text) connectionscount (integer) followercount (integer) latest_experience (text) education (text) Google Maps Table (googlemaps): title (text) category_name (text) address (text) neighborhood (text) street (text) city (text) postal_code (text) state (text) country_code (text) website (text) phone (text) phone_unformatted (text) location (text) total_score (numeric) Node Requirements: Form Trigger (built-in), you may use others, or a webhook. Switch (built-in) Set (built-in) Supabase (built-in) Apify (community node), you'll have to install it first. How to customize the workflow Form Customisation: Modify form fields in the "On form submission" node to add additional search criteria if you want more. You may adjust dropdown options for different lead sources. Add validation rules for better data quality Search Parameters: Customize Apify actor configurations for different scraping behaviours. Modify the number of results per search. Add additional location targeting options Data Processing: Enhance the Set nodes to extract additional LinkedIn profile data Add data validation and cleaning steps Implement duplicate detection logic Storage Options: You may replace Supabase with other databases (Airtable, Google Sheets, etc.) Add data enrichment steps before storage Implement data export functionality Advanced Features: Add email notifications when scraping completes Implement error handling and retry logic Create data quality scoring mechanisms Let's connect: TUMUSIME David
by Lorena
This workflow exports the contents of a JSON file to Google Sheets.
by Teeflo
This Workflows share a Jokes on Twitter with DadJokes API or BlaBlagues API for ImageJokes
by amudhan
Companion workflow for Spreadsheet File node docs
by rrezart
Workflow JSON TO CSVWorkflow JSON TO CSVWorkflow JSON TO CSVWorkflow JSON TO CSV