by Incrementors
๐ฆ Twitter Profile Scraper via Bright Data API with Google Sheets Output A comprehensive n8n automation that scrapes Twitter profile data using Bright Data's Twitter dataset and stores comprehensive tweet analytics, user metrics, and engagement data directly into Google Sheets. ๐ Overview This workflow provides an automated Twitter data collection solution that extracts profile information and tweet data from specified Twitter accounts within custom date ranges. Perfect for social media analytics, competitor research, brand monitoring, and content strategy analysis. โจ Key Features ๐ Form-Based Input: Easy-to-use form for Twitter URL and date range selection ๐ฆ Twitter Integration: Uses Bright Data's Twitter dataset for accurate data extraction ๐ Comprehensive Data: Captures tweets, engagement metrics, and profile information ๐ Google Sheets Storage: Automatically stores all data in organized spreadsheet format ๐ Progress Monitoring: Real-time status tracking with automatic retry mechanisms โก Fast & Reliable: Professional scraping with built-in error handling ๐ Date Range Control: Flexible time period selection for targeted data collection ๐ฏ Customizable Fields: Advanced data field selection and mapping ๐ฏ What This Workflow Does Input Twitter Profile URL**: Target Twitter account for data scraping Date Range**: Start and end dates for tweet collection period Custom Fields**: Configurable data points to extract Processing Form Trigger: Collects Twitter URL and date range from user input API Request: Sends scraping request to Bright Data with specified parameters Progress Monitoring: Continuously checks scraping job status until completion Data Retrieval: Downloads complete dataset when scraping is finished Data Processing: Formats and structures extracted information Sheet Integration: Automatically populates Google Sheets with organized data Output Data Points | Field | Description | Example | |-------|-------------|---------| | user_posted | Username who posted the tweet | @elonmusk | | name | Display name of the user | Elon Musk | | description | Tweet content/text | "Exciting updates coming soon..." | | date_posted | When the tweet was posted | 2025-01-15T10:30:00Z | | likes | Number of likes on the tweet | 1,234 | | reposts | Number of retweets | 567 | | replies | Number of replies | 89 | | views | Total view count | 12,345 | | followers | User's follower count | 50M | | following | Users they follow | 123 | | is_verified | Verification status | true/false | | hashtags | Hashtags used in tweet | #AI #Technology | | photos | Image URLs in tweet | image1.jpg, image2.jpg | | videos | Video content URLs | video1.mp4 | | user_id | Unique user identifier | 12345678 | | timestamp | Data extraction timestamp | 2025-01-15T11:00:00Z | ๐ Setup Instructions Prerequisites n8n instance (self-hosted or cloud) Bright Data account with Twitter dataset access Google account with Sheets access Valid Twitter profile URLs to scrape 10-15 minutes for setup Step 1: Import the Workflow Copy the JSON workflow code from the provided file In n8n: Workflows โ + Add workflow โ Import from JSON Paste JSON and click Import Step 2: Configure Bright Data Set up Bright Data credentials: In n8n: Credentials โ + Add credential โ HTTP Header Auth Enter your Bright Data API credentials Test the connection Configure dataset: Ensure you have access to Twitter dataset (gd_lwxkxvnf1cynvib9co) Verify dataset permissions in Bright Data dashboard Step 3: Configure Google Sheets Integration Create a Google Sheet: Go to Google Sheets Create a new spreadsheet named "Twitter Data" or similar Copy the Sheet ID from URL: https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit Set up Google Sheets credentials: In n8n: Credentials โ + Add credential โ Google Sheets OAuth2 API Complete OAuth setup and test connection Prepare your data sheet with columns: Use the column headers from the data points table above The workflow will automatically populate these fields Step 4: Update Workflow Settings Update Bright Data nodes: Open "๐ Trigger Twitter Scraping" node Replace BRIGHT_DATA_API_KEY with your actual API token Verify dataset ID is correct Update Google Sheets node: Open "๐ Store Twitter Data in Google Sheet" node Replace YOUR_GOOGLE_SHEET_ID with your Sheet ID Select your Google Sheets credential Choose the correct sheet/tab name Step 5: Test & Activate Add test data: Use the form trigger to input a Twitter profile URL Set a small date range for testing (e.g., last 7 days) Test the workflow: Submit the form to trigger the workflow Monitor progress in n8n execution logs Verify data appears in Google Sheet Check all expected columns are populated ๐ Usage Guide Running the Workflow Access the workflow form trigger URL (available when workflow is active) Enter the Twitter profile URL you want to scrape Set the start and end dates for tweet collection Submit the form to initiate scraping Monitor progress - the workflow will automatically check status every minute Once complete, data will appear in your Google Sheet Understanding the Data Your Google Sheet will show: Real-time tweet data** for the specified date range User engagement metrics** (likes, replies, retweets, views) Profile information** (followers, following, verification status) Content details** (hashtags, media URLs, quoted tweets) Timestamps** for each tweet and data extraction Customizing Date Ranges Recent data**: Use last 7-30 days for current activity analysis Historical analysis**: Select specific months or quarters for trend analysis Event tracking**: Focus on specific date ranges around events or campaigns Comparative studies**: Use consistent time periods across different profiles ๐ง Customization Options Modifying Data Fields Edit the custom_output_fields array in the "๐ Trigger Twitter Scraping" node to add or remove data points: "custom_output_fields": [ "id", "user_posted", "name", "description", "date_posted", "likes", "reposts", "replies", "views", "hashtags", "followers", "is_verified" ] Changing Google Sheet Structure Modify the column mapping in the "๐ Store Twitter Data in Google Sheet" node to match your preferred sheet layout and add custom formulas or calculations. Adding Multiple Recipients To process multiple Twitter profiles: Modify the form to accept multiple URLs Add a loop node to process each URL separately Implement delays between requests to respect rate limits ๐จ Troubleshooting Common Issues & Solutions "Bright Data connection failed" Cause: Invalid API credentials or dataset access Solution: Verify credentials in Bright Data dashboard, check dataset permissions "No data extracted" Cause: Invalid Twitter URLs or private/protected accounts Solution: Verify URLs are valid public Twitter profiles, test with different accounts "Google Sheets permission denied" Cause: Incorrect credentials or sheet permissions Solution: Re-authenticate Google Sheets, check sheet sharing settings "Workflow timeout" Cause: Large date ranges or high-volume accounts Solution: Use smaller date ranges, implement pagination for high-volume accounts "Progress monitoring stuck" Cause: Scraping job failed or API issues Solution: Check Bright Data dashboard for job status, restart workflow if needed Advanced Troubleshooting Check execution logs in n8n for detailed error messages Test individual nodes by running them separately Verify data formats and ensure consistent field mapping Monitor rate limits if scraping multiple profiles consecutively Add error handling and implement retry logic for robust operation ๐ Use Cases & Examples 1. Social Media Analytics Goal: Track engagement metrics and content performance Monitor tweet engagement rates over time Analyze hashtag effectiveness and reach Track follower growth and audience interaction Generate weekly/monthly performance reports 2. Competitor Research Goal: Monitor competitor social media activity Track competitor posting frequency and timing Analyze competitor content themes and strategies Monitor competitor engagement and audience response Identify trending topics and hashtags in your industry 3. Brand Monitoring Goal: Track brand mentions and sentiment analysis Monitor specific Twitter accounts for brand mentions Track hashtag campaigns and user-generated content Analyze sentiment trends and audience feedback Identify influencers and brand advocates 4. Content Strategy Development Goal: Analyze successful content patterns Identify high-performing tweet formats and topics Track optimal posting times and frequencies Analyze hashtag performance and reach Study audience engagement patterns 5. Market Research Goal: Collect social media data for market analysis Gather consumer opinions and feedback Track industry trends and discussions Monitor product launches and market reactions Support product development with social insights โ Advanced Configuration Batch Processing Multiple Profiles To monitor multiple Twitter accounts efficiently: Create a master sheet with profile URLs and date ranges Add a loop node to process each profile separately Implement delays between requests to respect rate limits Use separate sheets or tabs for different profiles Adding Data Analysis Enhance the workflow with analytical capabilities: Create additional sheets for processed data and insights Add formulas to calculate engagement rates and trends Implement data visualization with charts and graphs Generate automated reports and summaries Integration with Business Tools Connect the workflow to your existing systems: CRM Integration**: Update customer records with social media data Slack Notifications**: Send alerts when data collection is complete Database Storage**: Store data in PostgreSQL/MySQL for advanced analysis BI Tools**: Connect to Tableau/Power BI for comprehensive visualization ๐ Performance & Limits Expected Performance Single profile**: 30 seconds to 5 minutes (depending on date range) Data accuracy**: 95%+ for public Twitter profiles Success rate**: 90%+ for accessible accounts Daily capacity**: 10-50 profiles (depends on rate limits and data volume) Resource Usage Memory**: ~200MB per execution Storage**: Minimal (data stored in Google Sheets) API calls**: 1 Bright Data call + multiple Google Sheets calls per profile Bandwidth**: ~5-10MB per profile scraped Execution time**: 2-10 minutes for typical date ranges Scaling Considerations Rate limiting**: Add delays for high-volume scraping Error handling**: Implement retry logic for failed requests Data validation**: Add checks for malformed or missing data Monitoring**: Track success/failure rates over time Cost optimization**: Monitor API usage to control costs ๐ค Support & Community Getting Help n8n Community Forum**: community.n8n.io Documentation**: docs.n8n.io Bright Data Support**: Contact through your dashboard GitHub Issues**: Report bugs and feature requests Contributing Share improvements with the community Report issues and suggest enhancements Create variations for specific use cases Document best practices and lessons learned ๐ Quick Setup Checklist Before You Start โ n8n instance running (self-hosted or cloud) โ Bright Data account with Twitter dataset access โ Google account with Sheets access โ Valid Twitter profile URLs ready for scraping โ 10-15 minutes available for setup Setup Steps โ Import Workflow - Copy JSON and import to n8n โ Configure Bright Data - Set up API credentials and test โ Create Google Sheet - New sheet with proper column structure โ Set up Google Sheets credentials - OAuth setup and test โ Update workflow settings - Replace API keys and sheet IDs โ Test with sample data - Add 1 Twitter URL and small date range โ Verify data flow - Check data appears in Google Sheet correctly โ Activate workflow - Enable form trigger for production use Ready to Use! ๐ Your workflow URL: Access form trigger when workflow is active ๐ฏ Happy Twitter Scraping! This workflow provides a solid foundation for automated Twitter data collection. Customize it to fit your specific social media analytics and research needs. For any questions or support, please contact: info@incrementors.com or fill out this form: https://www.incrementors.com/contact-us/
by Extruct AI
Whoโs it for: Investors, analysts, and startup enthusiasts who need a complete overview of startups, including industry, product, funding, and leadership information. How it works / What it does: Enter a startupโs name into the form, and the workflow will automatically collect and organize details such as the companyโs industry, product, investors, and key decision-makers. All this information is neatly updated in your Google Sheet, making it easy to track and compare startups. How to set up: Sign up for Extruct at www.extruct.ai/. Open the Extruct table template, copy the table ID from the URL, and save it. Copy the Google Sheets template to your own Drive. Paste the table ID into the variables node in your n8n flow. Set up Bearer authentication in each HTTP Request node using your Extruct API token. In the Google Sheets node, paste your template link and connect your Google account. Run the flow once to reveal the mapping fields, then match each field to the correct column. Activate the flow and add startups via the form. Requirements: Extruct account and API token Extruct table template Google account with Google Sheets How to customize the workflow: Add new columns in both the Extruct table and your Google Sheet, then map them in the Google Sheets node to track additional startup data.
by Dominik Baranowski
N8N for Beginners: Looping Over Items Description This workflow is designed for n8n beginners to understand how n8n handles looping (iteration) over multiple items. It highlights two key behaviors: Built-In Looping:** By default, most n8n nodes iterate over each item in an input array. Explicit Looping:* The *Loop Over Items* node allows controlled iteration, enabling *custom batch processing** and multi-step workflows. This workflow demonstrates the difference between processing an unsplit array of strings (single item) vs. a split array (multiple items). Setup 1. Input Data To begin, paste the following JSON into the Manual Trigger node: { "urls": [ "https://www.reddit.com", "https://www.n8n.io/", "https://n8n.io/", "https://supabase.com/", "https://duckduckgo.com/" ] } ๐ Steps to Paste Data: Double-click** the "Manual Trigger" node. Click "Edit Output" (top-right corner). Paste the JSON and Save. The node turns purple, indicating that test data is pinned. 1. Click "Test Workflow" button at the bottom of the canvas Explanation of the n8n Nodes in the Workflow | Node Name | Purpose | Documentation Link | |-----------|---------|--------------------| | Manual Trigger | Starts the workflow manually and sends test data | Docs | | Split Out | Converts an array of strings into separate JSON objects | Docs | | Loop Over Items (Loop Over Items 1) | Demonstrates how an unsplit array is treated as one item | Docs | | Loop Over Items (Loop Over Items 2) | Iterates over each item separately | Docs | | Wait | Introduces a delay per iteration (set to 1 second) | Docs | | Code | Adds a constant parameter (param1) to each item | Docs | | NoOp (Result Nodes) | Displays output for inspection | Docs | Execution Details 1. How the Workflow Runs Manual Trigger starts execution** with the pasted JSON data. The workflow follows two paths: Unsplit Array Path โ Loop Over Items 1 Processes the entire array as a single item. Result1 & Result5: Show that the array was not split. Split Array Path โ Split Out โ Loop Over Items 2 Splits the array into separate objects. Result2, Result3, Result4: Show that each item is processed individually. A Wait node (1 sec delay) demonstrates controlled execution. Code nodes modify the JSON, adding a parameter (param1). 2. What You Will See | Node | Expected Output | |------|---------------| | Result1 & Result5 | The entire array is processed as one item. | | Result2, Result3, Result4 | The array is split and processed as individual items. | | Wait Node | Adds a 1-second delay per item in Loop Over Items 2. | Use Cases This workflow is useful for: โ API Data Processing: Loop through API responses containing arrays. โ Web Scraping: Process multiple URLs individually. โ Task Automation: Execute a sequence of actions per item. โ Workflow Optimization: Control execution order, delays, and dependencies. Notes Sticky notes are included in the workflow for easy reference. The Wait node is optionalโremove it for faster execution. This template is structured for beginners but serves as a building block for more advanced automations.
by Ranjan Dailata
Notice Community nodes can only be installed on self-hosted instances of n8n. Who this is for? This workflow template enables intelligent data extraction from ProductHunt using Bright Dataโs Model Context Protocol (MCP) and processes search results with Google Gemini. This workflow is designed for individuals and teams who need automated, intelligent discovery and analysis of new tech products. It's especially valuable for: Startup Analysts & VC Researchers Growth Hackers & Marketers Recruiters & Tech Scouts Product Managers & Innovation Teams AI & Automation Enthusiasts What problem is this workflow solving? Traditional product discovery on ProductHunt is constrained by limited descriptions and requires repeated manual validation through web searches. Manually extracting and enriching this data is slow, repetitive, and error-prone. This workflow solves the problem by: Extracting real-time ProductHunt data using Bright Dataโs MCP infrastructure to mimic real-user behavior and avoid blocks. Performing contextual searches on Google for a specific product on ProductHunt to gather use cases, reviews, and related information. Structuring results using Google Gemini LLM to provide human-readable insights and reduce noise. Delivering results seamlessly by saving output to disk, updating Google Sheets, and sending Webhook alerts. What this workflow does Input Field Node Define the ProductHunt category with the search term(s) you want to target. This is used to drive extraction and search operations. Agent Operation Node The agent performs two major tasks: Extract from ProductHunt Retrieves trending products from ProductHunt using Bright Data MCP Contextual Google Search for the product the agent searches Google for deeper context, including: Reviews Competitor mentions Real-world usage examples LLM Node (Google Gemini) Analyzes and summarizes extracted web content Removes noise (ads, menus, etc.) Structures content into bullet points, insights, or JSON objects Pre-conditions Knowledge of Model Context Protocol (MCP) is highly essential. Please read this blog post - model-context-protocol You need to have the Bright Data account and do the necessary setup as mentioned in the Setup section below. You need to have the Google Gemini API Key. Visit Google AI Studio You need to install the Bright Data MCP Server @brightdata/mcp You need to install the n8n-nodes-mcp Setup Please make sure to setup n8n locally with MCP Servers by navigating to n8n-nodes-mcp Please make sure to install the Bright Data MCP Server @brightdata/mcp on your local machine. Sign up at Bright Data. Create a Web Unlocker proxy zone called mcp_unlocker on Bright Data control panel. Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions. In n8n, configure the Google Gemini(PaLM) Api account with the Google Gemini API key (or access through Vertex AI or proxy). In n8n, configure the credentials to connect with MCP Client (STDIO) account with the Bright Data MCP Server as shown below. Make sure to copy the Bright Data API_TOKEN within the Environments textbox above as API_TOKEN=<your-token> How to customize this workflow to your needs This workflow is flexible and modular, allowing you to adapt it for various research, product discovery, or trend analysis use cases. Below are the key customization points and how to modify them. Define Your Target Products or Topics: Change the input parameter to a specific ProductHunt category, tag, or keyword (e.g., "AI tools", "SaaS", "DevOps") Change Output Destinations : Save to Disk**: Change the file format (.json, .csv, .md) or directory path Google Sheet**: Modify sheet name, structure (columns like Product, Summary, Link) Webhook Notification**: Point to a Slack/Discord/CRM/Webhook URL with payload mapping
by Jez
This n8n workflow template uses community nodes and is only compatible with the self-hosted version of n8n. This workflow demonstrates how to build and expose a sophisticated n8n AI Agent as a single, callable tool using the Multi-Agent Collaboration Protocol (MCP). It allows external clients or other AI systems to easily query software library documentation via Context7, without needing to manage the underlying tool orchestration or complex conversational logic. Core Idea: Instead of building complex agentic loops on the client-side (e.g., in Python, a VS Code extension, or another AI development environment), this workflow offloads the entire agent's reasoning and tool-use process to n8n. The client simply sends a natural language query (like "How do I use Flexbox in Tailwind CSS?") to an SSE endpoint, and the n8n agent handles the rest. Key Features & How It Works: Public MCP Endpoint: The main workflow uses the Context7 MCP Server Trigger node to create an SSE endpoint. This makes the agent accessible to any MCP-compatible client. The path for the endpoint is kept long and random for basic 'security by obscurity'. Tool Workflow as an Interface: A Tool Workflow node (named call_context7_ai_agent in this example) is connected to the MCP Server Trigger. This node defines the single "tool" that external clients will see and call. Dedicated AI Agent Sub-Workflow: The call_context7_ai_agent tool invokes a separate sub-workflow which contains the actual AI logic. This sub-workflow starts with a Context7 Workflow Start node to receive the user's query. A Context7 AI Agent node (using Google Gemini in this example) is the brain, equipped with: A system prompt to guide its behavior. Simple Memory to retain context for each execution (using {{ $execution.id }} as the session key). Two specialized Context7 MCP client tools: context7-resolve-library-id: To convert library names (e.g., 'Next.js') into Context7-specific IDs. context7-get-library-docs: To fetch documentation using the resolved ID, with options for specific topics and token limits. Seamless Tool Use: The AI Agent autonomously decides when and how to use the resolve-library-id and get-library-docs tools based on the user's query, handling the multi-step process internally. Benefits of This Approach: Simplified Client Integration:** Clients interact with a single, powerful tool, sending a simple query. Reduced Client-Side Token Consumption:** The detailed prompts, tool descriptions, and conversational turns are managed server-side by n8n, saving tokens on the client (especially useful if the client is another LLM). Centralized Agent Management:** Update your agent's capabilities, tools, or LLM model within n8n without any changes needed on the client side. Modularity for Agentic Systems:** Perfect for building complex, multi-agent systems where this n8n workflow can act as a specialized "expert" agent callable by others (e.g., from environments like Smithery). Cost-Effective:** By using a potentially less expensive model (like Gemini Flash) for the agent's orchestration and leveraging the free tier or efficient pricing of services like Context7, you can build powerful solutions economically. Use Cases: Providing an intelligent documentation lookup service for coding assistants or IDE extensions. Creating specialized AI "micro-agents" that can be consumed by larger AI applications. Building internal knowledge base query systems accessible via a simple API-like interface. Setup: Ensure you have the necessary n8n credentials for Google Gemini (or your chosen LLM) and the Context7 MCP client tools. The Path in the Context7 MCP Server Trigger node should be unique and secure. Clients connect to the "Production URL" (SSE endpoint) provided by the trigger node. This workflow is a great example of how n8n can serve as a powerful backend for building and deploying modular AI agents. I've made a video to try and explain this a bit too https://www.youtube.com/watch?v=dudvmyp7Pyg
by ist00dent
This n8n template allows you to perform real-time currency conversions by simply sending a webhook request. By integrating with the ExchangeRate.host API, you can get up-to-date exchange rates for over 170 world currencies, making it an incredibly useful tool for financial tracking, e-commerce, international business, and personal budgeting. ๐ง How it works Receive Conversion Request Webhook: This node acts as the entry point for the workflow, listening for incoming POST requests. It's configured to expect a JSON body containing: from: The 3-letter ISO 4217 currency code for the source currency (e.g., USD, PHP). to: The 3-letter ISO 4217 currency code for the target currency (e.g., EUR, JPY). amount: The numeric value you want to convert. Important: The ExchangeRate.host API access_key is handled securely by n8n's credential system and should not be included in the webhook body or headers. Convert Currency: This node makes an HTTP GET request to the ExchangeRate.host API (api.exchangerate.host). It dynamically constructs the URL using the from, to, and amount from the webhook body. Your API access key is securely retrieved from n8n's pre-configured credentials (HTTP Query Auth type) and automatically added as a query parameter (access_key). The API then performs the conversion and returns a JSON object with the conversion details. Respond with Converted Amount: This node sends the full currency conversion result received from ExchangeRate.host back to the service that initiated the webhook. ๐ค Who is it for? This workflow is ideal for: E-commerce Platforms: Display prices in local currencies on the fly for international customers. Convert incoming international payments to your local currency for accounting. Calculate shipping costs in different currencies. Financial Tracking & Budgeting Apps: Update personal or business budgets with converted values. Track expenses incurred in foreign currencies. Automate portfolio value conversion for multi-currency investments. International Business & Freelancers: Generate invoices in a client's local currency based on your preferred currency. Quickly estimate project costs or earnings in different currencies. Automate reconciliation of international transactions. Travel Planning: Convert travel expenses from one currency to another while abroad. Build simple tools to estimate costs for trips in different countries. Data Analysis & Reporting: Standardize financial data from various sources into a single currency for unified reporting. Build dashboards that display converted financial metrics. Custom Integrations: Connect to CRMs, accounting software, or internal tools to automate currency-related tasks. Build chatbots that can answer currency conversion queries. ๐ Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "from": "USD", "to": "PHP", "amount": 100 } The workflow will return a JSON response similar to this (results will vary based on currencies and amount): { "date": "2025-06-03", "historical": false, "info": { "rate": 58.749501, "timestamp": 1717398188 }, "query": { "amount": 100, "from": "USD", "to": "PHP" }, "result": 5874.9501, "success": true } โ๏ธ Setup Instructions Get an ExchangeRate.host Access Key: Go to https://exchangerate.host/ and sign up for a free API key. Create an n8n Credential for ExchangeRate.host: In your n8n instance, go to Credentials. Click "New Credential" and search for "HTTP Query Auth". Set the Name (e.g., ExchangeRate.host API Key). Set API Key to your ExchangeRate.host access key. Set Parameter Name to access_key. Set Parameter Position to Query. Save the credential. Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure ExchangeRate.host API Node: Double-click the Convert Currency node. Under "Authentication", select "Generic Credential Type". Choose "HTTP Query Auth" as the Generic Auth Type. Select the credential you created (e.g., "ExchangeRate.host API Key") from the dropdown. Configure Webhook Path: Double-click the Receive Conversion Request Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /convert-currency). Activate Workflow: Save and activate the workflow. ๐ Tips This workflow is a powerful starting point. Here's how you can make it even more robust and integrated: Robust Error Handling: Add an IF node after Convert Currency to check {{ $json.success }}. If false, branch to an Error Trigger node or send an alert (e.g., Slack, Email) with {{ $json.error.info }} to notify you of API issues or invalid inputs. Include a Try/Catch block to gracefully handle network issues or malformed responses. Input Validation & Defaults: Add a Function node after the webhook to validate if from, to, and amount are present and in the correct format. If not, return a clear error message to the user. Set default from or to currencies if they are not provided in the webhook, making the API more flexible. Logging & Auditing: After a successful conversion, use a Google Sheets, Airtable, or database node (e.g., PostgreSQL, MongoDB) to log every conversion request, including the input currencies, amount, converted result, date, and possibly the calling IP (from the webhook headers). This is crucial for financial auditing and analysis. Rate Limits & Caching: If you anticipate many requests, be mindful of ExchangeRate.host's API rate limits. You can introduce a Cache node to store recent conversion results for a short period, reducing redundant API calls for common conversions. Alternatively, add a Delay node to space out requests if you're hitting limits. Format & Rounding: Use a Function node or Set node to format the result to a specific number of decimal places (e.g., {{ $json.result.toFixed(2) }}). Add currency symbols or full currency names to the output for better readability. Alerting on Significant Changes: Chain this workflow with a Cron or Schedule node to periodically fetch exchange rates for a pair you care about (e.g., USD to EUR). Use an IF node to compare the current rate with a previously stored rate. If the change exceeds a certain percentage, send an alert via Slack, Email, or Telegram to notify you of significant market shifts. Integration with Payment Gateways: For e-commerce, combine this with nodes for payment gateways (e.g., Stripe, PayPal) to automatically convert customer payments received in foreign currencies to your base currency before recording. Multi-currency Pricing for Products: Use this workflow in conjunction with your product database. When a user selects a different country/currency, trigger this webhook to dynamically convert product prices and display them instantly.
by Automate With Marc
๐ง Google Drive Upload Trigger โ Pinecone Vector Upsert for Document Indexing Category: AI & LLM / Document Indexing Level: Intermediate Tags: Google Drive, Pinecone, OpenAI, Embeddings, Vector Store, LangChain, RAG ๐ What This Workflow Does This workflow watches a specific Google Drive folder and automatically uploads any newly added document to a Pinecone vector database โ complete with OpenAI-generated embeddings. Perfect for setting up retrieval-augmented generation (RAG) pipelines, semantic search, or document Q&A systems. Once configured, your knowledge base stays up-to-date with zero manual effort. Watch Full Step By Stey Tutorial Video Here: https://www.youtube.com/@Automatewithmarc ๐ง How It Works ๐ Google Drive Trigger Watches a specific folder and triggers when new documents are uploaded. ๐ Google Drive File Search & Download Finds and fetches all files in the folder. ๐ Loop Over Each File Handles batch processing for multiple files. ๐ Document Loader Parses each file as binary and applies custom metadata like document type. โ๏ธ Text Splitter Breaks content into manageable chunks for embedding (e.g., 600 characters, 60 overlap). ๐ง OpenAI Embeddings Generates vector embeddings using OpenAI. ๐ฆ Pinecone Vector Store Inserts/upserts documents into a specific Pinecone namespace for search-ready indexing. ๐ง Why This is Useful This is a production-grade setup for: Building vector search tools over internal docs Feeding up-to-date data into RAG agents or chatbots Auto-tagging and chunking files for scalable AI workflows Whether youโre indexing course outlines, SOPs, or technical docs โ this automation keeps your vector store fresh and organized. ๐ช Setup Instructions Connect your Google Drive, OpenAI, and Pinecone accounts. Specify the Google Drive folder to monitor. Customize metadata, chunk size, or vector namespace as needed. Activate the workflow and drop a file into the folder โ magic happens behind the scenes. ๐ Notes Works best with PDFs or text-based documents. You can swap out OpenAI with other embedding models if needed. Consider adding notifications or logging (e.g., via Slack or email) for better observability.
by Zacharia Kimotho
Generate new keywords for SEO with the monthly Search volumes This workflow is an improvement on the workflows below. It can be used to generate new keywords that you can use for your SEO campaigns or Google ads campaigns Generate SEO Keyword Search Volume Data using Google API and Generating Keywords using Google Autosuggest Usage Send the keywords you need as an array to this workflow Pin the data and map it to the set Keywords node Map the keywords to the Google ads API with the location and Language of your choice Split the results and set them data Pass this to the next nodes as needed for storage Make a copy of this spreedsheet and update the data accordingly Having challenges with the google Ads API? Read this blog Setup Replace the trigger with your desired trigger eg a webhook or manual trigger Map the data correctly to the set Keywords node On the Generate new keywords, Update the {customer_id} on the url and login-customer-id with your actual one. Update the developer-token` also with your values. The url should be corrected as below https://googleads.googleapis.com/v18/customers/{customer-id}:generateKeywordIdeas You should send the headers as below { "name": "content-type", "value": "application/json" }, { "name": "developer-token", "value": "5j-tyzivCNmiCcoW-xkaxw" }, { "name": "login-customer-id", "value": "513554 " } and the json body should take the following format { "geoTargetConstants": ["geoTargetConstants/2840"], "includeAdultKeywords": false, "pageToken": "", "pageSize": 2, "keywordPlanNetwork": "GOOGLE_SEARCH", "language": "languageConstants/1000", "keywordSeed": { "keywords": {{ $json.Keyword }} } } Troubleshooting If you get an error with the workflow, check the credentials you are using Check the account you are using eg the right customer id and developer token Follow the guide on the blog to set up your Google ads account Made by @Imperol
by Corentin Ribeyre
This template can be used to scan a domain/company with Icypeas. Be sure to have an active account to use this template. How it works This workflow can be divided into three steps : The workflow initiates with a manual trigger (On clicking 'execute'). It connects to your Icypeas account. It performs an HTTP request to scan a domain/company name. Set up steps You will need a working icypeas account to run the workflow and get your API Key, API Secret and User ID. You will need a domain/company name to perform the search.
by Daniel Shashko
How it Works Disclaimer: This template is for self-hosted n8n instances only. This workflow is designed for developers, data analysts, and automation enthusiasts seeking to automate personalized news collection and delivery. It seamlessly combines n8n, OpenAI (e.g., GPT-4.1), and Bright Dataโs Model Context Protocol (MCP) to collect, extract, and email the latest global news headlines. On a schedule or via a manual trigger, the workflow prompts an AI agent to gather fresh news. The agent leverages context-aware memory and integrated MCP tools to conduct both search engine queries and direct web page scraping in real time, delivering more than just meta search resultsโit extracts actual on-page headlines and trusted links. Results are formatted and delivered automatically by email via your SMTP provider, requiring zero manual effort once configured. Who is this for? Developers, data engineers, or automation pros wanting an AI-powered, fully automated newsfeed Teams needing up-to-date news digests from trusted global sources Anyone self-hosting n8n who wishes to combine advanced LLMs with real-time web data Setup Steps Setup time: Approx. 15โ30 minutes (n8n install, API configuration, node setup) Requirements: Self-hosted n8n instance OpenAI API key Bright Data MCP account credentials SMTP/email provider details Install the community MCP node (n8n-nodes-mcp) for n8n and set up Bright Data MCP access. Configure these nodes: Schedule Trigger: For automated delivery at your chosen interval. Edit Fields: To inject your AI news collection prompt. AI Agent: Connects to OpenAI and MCP, enabled with memory for context. OpenAI Chat Model: Connects via your OpenAI credentials. MCP Clients: Configure at least twoโone for search (e.g. search_engine) and one for scraping (e.g. scrape_as_markdown). Send Email: Set up with recipient and SMTP information. Credentials must be entered into their respective nodes for successful execution. Customization Guidance Prompt Tweaks:** Refine your AI news prompt to target specific genres, regions, or sources, or broaden/narrow the coverage as needed. Tool Configuration:** Carefully define tool descriptions and parameters in MCP client nodes so the agent can pick the best tool for each step (e.g., only scrape real news sites). Delivery Settings:** Adjust email recipient(s) and SMTP details as needed. Workflow Enhancements:** Use sticky notes in n8n for extended documentation, alternate prompts, or troubleshooting tips. Run Frequency:** Set schedule as neededโfrom hourly to daily updates. Once configured, this workflow will automatically gather, extract, and email curated news headlines and linksโno manual curation required!
by Joseph
This workflow automates invoice generation from form submissions, ensuring unique order IDs, creating PDF invoices, storing files, emailing customers, and logging invoice data โ all seamlessly integrated. ๐น Workflow Overview Trigger (Webhook) Starts when an order form is submitted, capturing customer and order details. Generate Random Order ID A Function node creates a unique alphanumeric invoice ID (e.g., INV-X92B7D). Check for Duplicate Order ID Google Sheets looks up the generated order ID in your invoice log sheet to prevent duplicates. Conditional Check (IF Node) If the ID already exists โ regenerates a new ID (loops back) If unique โ proceeds to invoice creation Prepare Invoice Data A Set node formats customer info, date, order items, and the unique order ID to fit your invoice template. Convert HTML to PDF HTTP Request node sends your invoice HTML to the RapidAPI HTML-to-PDF service and receives the PDF file. Upload PDF to Cloud Storage Save the PDF in Google Drive or Dropbox with a clear file name like Invoice-INV-X92B7D.pdf. Send Invoice Email to Customer Email node attaches the PDF and includes the order ID in the email subject/body. Log Invoice Details Append invoice data (customer info, order ID, total, PDF link) to your Google Sheet for tracking. โ๏ธ Node Details & Setup 1. Webhook Trigger Configure to receive form submissions (order details like name, email, items, total). 2. Function: Generate Random Order ID Sample JS code generates unique IDs prefixed by INV-. 3. Google Sheets: Lookup Row Set up connection to your invoice log sheet. Search for existing order ID to avoid duplicates. 4. IF Node: Check Order ID Existence Condition: If order ID found โ loop to regenerate. Else โ continue workflow. 5. Set Node: Prepare Invoice HTML Define variables like customer name, date, items, and order ID. This data populates your HTML invoice template. 6. HTTP Request: Convert HTML to PDF API URL to get your key Send invoice HTML in the request body. Receive PDF file blob or download URL. 7. Google Drive (or Dropbox) Upload Upload the PDF file. Use file name format: Invoice-{{$json["order_id"]}}.pdf 8. Email Node Recipient: customer email from the form data. Attach generated PDF. Include order ID in email subject or body for reference. 9. Google Sheets: Append Row Log invoice metadata to keep records updated. ๐ Google Sheets Template You can make a copy of the invoice log template here This sheet includes columns for order\_id, customer name, email, total, and invoice PDF link. Customize it as needed. ๐ Additional Notes Customize the invoice HTML template inside the Set node to match your branding. Ensure API credentials for RapidAPI, Google Drive/Dropbox, and email are properly set up in your n8n credentials. You can expand this workflow by adding payment processing or SMS notifications. Need help or want a custom workflow? Reach out via email at joseph@uppfy.com.
by Don Jayamaha Jr
โฑ๏ธ Analyze Tesla (TSLA) short-term market structure and momentum using 6 technical indicators on the 15-minute timeframe. This AI agent tool is part of the Tesla Quant Trading AI Agent system. It is designed to detect intraday shifts in volatility, trend strength, and potential reversal signals. โ ๏ธ Not standalone. This agent is triggered via Execute Workflow by the Tesla Financial Market Data Analyst Tool. ๐ Requires: Tesla Quant Technical Indicators Webhooks Tool Alpha Vantage Premium API Key ๐ What It Does This workflow pulls the latest 20 data points for 6 key technical indicators from a webhook-powered source, then uses GPT-4.1 to interpret market momentum and structure: Connected Indicators: RSI (Relative Strength Index)** MACD (Moving Average Convergence Divergence)** BBANDS (Bollinger Bands)** SMA (Simple Moving Average)** EMA (Exponential Moving Average)** ADX (Average Directional Index)** The output is a structured JSON with: Market summary Timeframe (15m) Indicator values ๐ Sample Output { "summary": "TSLA shows fading momentum. RSI dropped below 60, MACD is flattening, and BBANDS are tightening. Expect short-term consolidation.", "timeframe": "15m", "indicators": { "RSI": 58.3, "MACD": { "macd": -0.020, "signal": -0.018, "histogram": -0.002 }, "BBANDS": { "upper": 183.10, "lower": 176.70, "middle": 179.90, "close": 177.60 }, "SMA": 178.20, "EMA": 177.70, "ADX": 19.6 } } ๐ง Agent Components | Module | Role | | --------------------- | -------------------------------------------------------- | | Webhook Data Node | Calls /15minData endpoint for Alpha Vantage indicators | | LangChain Agent | Parses indicator payloads and generates reasoning | | OpenAI GPT-4.1 | Powers the AI logic to interpret technical structure | | Memory Module | Maintains session consistency for multi-agent calls | ๐ ๏ธ Setup Instructions Import Workflow into n8n Name it: Tesla_15min_Indicators_Tool Configure Webhook Source Install and publish: Tesla_Quant_Technical_Indicators_Webhooks_Tool Ensure /15minData is publicly reachable (or tunnel-enabled) Add Credentials Alpha Vantage API Key (HTTP Query Auth) OpenAI GPT-4.1 (OpenAI Chat Model) Link as Sub-Agent This workflow is not triggered manually. It is executed using Execute Workflow by: ๐ Tesla_Financial_Market_Data_Analyst_Tool Pass in: message (optional) sessionId (for short-term memory linkage) ๐ Sticky Notes Summary ๐ข Trigger Integration โ Receives sessionId and message from parent ๐ก Webhook Fetcher โ Pulls Alpha Vantage data from /15minData ๐ง GPT-4.1 Reasoning โ Produces structured JSON insight ๐ต Session Memory โ Maintains evaluation flow across tools ๐ Tool Description โ Explains indicator use and AI output format ๐ Licensing & Author ยฉ 2025 Treasurium Capital Limited Company All logic, formatting, and agent design are protected under copyright. No resale or public re-use without permission. Created by: Don Jayamaha Creator Profile: https://n8n.io/creators/don-the-gem-dealer/ ๐ Build faster intraday Tesla trading models using clean 15-minute indicator insightsโprocessed by AI. Required by the Tesla Financial Market Data Analyst Tool.