by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by Bedrijfautomatiseren.nl
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. ## Scrape Google Maps leads to Google Sheets via Apify Who's it for This workflow is ideal for marketers, sales professionals, and solo entrepreneurs who want to collect local leads based on Google Maps search terms. For example, restaurants in North Holland. What it does This workflow uses an Apify actor to scrape business details from Google Maps and automatically appends them to a Google Sheet with the following fields: Business name Street Postal code City Website Phone number How it works The workflow starts with a manual trigger (you can replace it with any other trigger). The Google Maps Scraper Apify actor is launched. A short wait ensures the actor completes the task (you can increase the wait time for more extensive outputs). The resulting dataset is retrieved from Apify. Data is mapped and added into a connected Google Sheet. How to set up Step 1: Configure the “Run Apify scraper” node Go to the Google Maps Scraper actor on Apify. Create a new Task with your search term. Find your actor from list. Step 2: Edit the “Find your last run” node Select the correct actor (Google Maps Scraper) from the dropdown in this node. Step 3: Fetch the dataset In the “Get the data from Apify” node, use {{$json.defaultDatasetId}} to dynamically pull the correct dataset. Step 4: Connect your Google Sheet Link your Google account and select the desired spreadsheet and tab (for example, Leads). Make sure the column headers match the data fields. Current column headers: Title Street Postcode City Website Phone If you have any questions, feel free to reach out to info@ai-amigos.com
by DataForSEO
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Who’s it for SEO analysts and marketers who want to capture and analyze source references from Google’s AI Mode answers, track competitor mentions or measure brand visibility in generative search features. Note: this template uses DataForSEO community node and works for self-hosted n8n instances only.* What it does This workflow automates the process of gathering source references from Google’s AI Mode results. Using the DataForSEO SERP API, it extracts the source title, URL, and domain, and records that data in Google Sheets. You can use this template to monitor how often your site appears in AI-generated answers or what competitor domains get mentioned for your target keywords. How it works Triggers on your chosen schedule (default: every 7 days). Calls the DataForSEO SERP API for your keyword. Extracts and cleans Google AI Mode results. Stores the data in a Google Sheet. Requirements Self-hosted n8n instance DataForSEO account A Google Sheet that contains the Source, Domain, URL, Title, and Text columns (as in the example: https://docs.google.com/spreadsheets/d/1XCjkjyVxrtpTUQenHeR3B07xfEZ489mhuVidjhGOO7I/edit?usp=sharing). Customization You can change the schedule or swap the Google Sheet for BI dashboards or reporting tools.
by Oneclick AI Squad
SmartPoll Automator is an n8n-powered workflow that automatically creates and publishes polls in Telegram. It helps teams, communities, and businesses run polls without manual work. You simply send a command or submit a form — the workflow creates the poll and posts it in your selected Telegram group/channel. Key Features Create polls automatically from a webhook or form input Support for single-choice and multi-vote polls Option to schedule polls Logs all poll requests and results Sends confirmation and status updates Works across multiple Telegram groups/channels Use Cases Daily team check-in polls Customer feedback polls Community/Q&A voting Training/quiz polls Opinion surveys for Telegram groups Marketing campaign polls Workflow Steps | Step | Action | Description | | ---- | ---------------------- | ----------------------------------------------- | | 1 | Webhook Trigger | Receives poll request data (question + options) | | 2 | Data Validation | Checks if poll question & options are valid | | 3 | Poll Formatting | Structures poll text and options | | 4 | Telegram API Poll Send | Sends poll to selected Telegram group/channel | | 5 | Optional Scheduler | Delay or schedule poll time | | 6 | Logging | Stores poll details for logs | | 7 | Confirmation | Sends success message to user or admin | Input Format Example JSON input via webhook: { "poll_question": "Which feature should we build next?", "options": [ "AI Email Assistant", "Scraper Automation", "DevOps Bot" ], "multiple_answers": false, "target_chat_id": "123456789", "schedule_time": "" } Output Poll posted in Telegram group Confirmation message returned Log entry stored Example confirmation response: Poll successfully created and posted to Telegram! Requirements Telegram Bot Token Telegram Chat ID n8n instance Webhook URL or Google Form/CRM connection Benefits Saves time Ensures consistent poll format Improves engagement in Telegram communities Enables automated market research & internal feedback No coding required after setup Enhancement Ideas Add AI to generate poll questions Add Google Sheets poll request form Add analytics dashboard Trigger polls from Slack/CRM Status ✅ Fully Automated ✅ Multi-group support ✅ Real-time logging 🕒 Optional scheduling
by DataForSEO
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Who’s it for SEOs and digital marketers who want to track the sources Google cites in its AI Overview SERP feature for specific keywords, monitor competitor visibility, or their website’s presence in AI-generated snippets. Note: this template uses DataForSEO community node and works for self-hosted n8n instances only.* What it does This workflow automatically collects all source references from Google’s AI Overview results using the DataForSEO SERP API. It extracts the source title, URL, and domain, and logs that data in Google Sheets for easy filtering and analysis. You can use this template to monitor how often your site appears in AI-generated summaries or to discover high-authority domains mentioned for your target keywords. How it works Triggers on your chosen schedule (default: every 7 days). Calls the DataForSEO SERP API for your keyword. Parses AI Overview results to extract source citations. Saves the structured data in a Google Sheet. Requirements Self-hosted n8n instance DataForSEO account A Google Sheet that contains the Source, Domain, URL, Title, and Text columns (as in the example: https://docs.google.com/spreadsheets/d/1XCjkjyVxrtpTUQenHeR3B07xfEZ489mhuVidjhGOO7I/edit?usp=sharing). Customization You can change the schedule or swap the Google Sheet for BI dashboards or reporting tools.
by Ruslan Elishev
🛡️ BotGuard - Telegram Bot Authorization Layer What This Workflow Does Ever noticed how most Telegram bot tutorials assume everyone can just... use your bot? No questions asked, no protection, nothing. That's fine for a simple "Hello World" bot, but the moment you connect AI APIs, paid services, or sensitive operations - you're in trouble. Anyone who discovers your bot can drain your API credits, overload your systems, or access things they shouldn't. BotGuard fixes this in the simplest way possible: a whitelist. Only User IDs you explicitly allow can interact with your bot. Everyone else gets a polite "access denied" message. Plus, you get instant notifications when someone unauthorized tries to use your bot - complete with their User ID, so you can add them if they're legit. Think of it as a bouncer for your bot. No fancy authentication flows, no databases, no complexity. Just a clean authorization check that sits between the Telegram trigger and your actual workflow. Your expensive AI calls, paid API requests, and sensitive operations stay protected. 🚀 Getting Started in 2 Minutes Step 1: Import and Configure Import this workflow into n8n and connect your Telegram bot credentials. You'll see a clean workflow with sticky notes explaining everything. Step 2: Add Your User ID Don't know your Telegram User ID? No problem. Just message your bot - you'll get denied, but the message will show: Your User ID: 123456789. Copy that number. Open the "BotGuard Authorization" node and add yourself: const AllowedUsers = [ { userId: 222222222, userName: 'allowed_user_name', subscriptionType: 'admin' }, { userId: YOUR_USER_ID_HERE, userName: 'your_username', subscriptionType: 'premium' } ]; Step 3: Test It Save, activate the workflow, and message your bot again. You're in! Try from another account - denied. Check your admin account for the unauthorized access notification. 🎨 Making It Yours Want to Change the Messages? All user-facing messages are in the BotGuard Authorization node. Look for these lines: authorizedMessage - What approved users see (default: "✅ Authorization Successful...") userMessage - What denied users see (default: "🚫 Access Denied...") adminMessage - What you receive for each unauthorized attempt Make them friendlier, add your support contact, suggest a /request command - whatever fits your bot's personality. Need Subscription Tiers? The workflow already supports it! Each user has a subscriptionType field (basic/premium/admin). Use this in your main workflow to enable/disable features based on their tier. The BotGuard passes all this data forward in the botGuard object. Want Multiple Admins? Just add more entries to the Administrators array. Every admin receives notifications when unauthorized users attempt access: const Administrators = [ { userId: 111111111, userName: 'admin_user_name', chatId: 111111111 }, { userId: 333333333, userName: 'your_cofounder', chatId: 333333333 } ]; 💡 Why This Workflow Exists I built this after watching someone's OpenAI credits get drained in 3 hours because their bot went viral on a Telegram group. No authorization, no rate limiting, nothing. Just a helpful bot that cost them $200 before they noticed. Most tutorials skip authorization entirely - it's not sexy, not what people want to learn. But the moment you deploy something real, you need it. Instead of everyone reinventing the wheel with complex databases and auth systems, here's a simple pattern you can copy-paste into any bot workflow. The multi-admin notification system came from needing to know WHO was trying to access our bots. Sometimes it's legitimate users who found your bot organically. Sometimes it's automated scanners. Either way, if you want to know, now you can. 🔧 Real-World Tips After protecting dozens of production bots: Do: Keep the User ID list in code for small teams (5-50 users) - it's simple and works Set up admin notifications - you'll catch legitimate users before they give up Include the User ID in denial messages - makes it easy for users to request access Test with an unauthorized account first - make sure the denial flow is clear Don't: Hard-code thousands of users - if you're that big, use a database instead Skip the admin notifications - they're your early warning system Forget to update the placeholder IDs (111111111, etc.) - those won't work! Share your workflow publicly with real User IDs - privacy matters
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 System Admin
Tagged with: , , , ,
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!