by Niklas Hatje
Who this is for This template is for everyone that wants to download their n8n Cloud invoices automatically as a PDF instead of downloading them manually. How it works This workflow checks your Gmail inbox for new n8n invoice emails from n8n's payment provider Paddle. Once it finds something, it converts the URL into a PDF using pdflayer and saves it in Google Drive. Setup Setup your Gmail and Google Drive credentials Create a free account at https://pdflayer.com/ Insert your pdflayer API key into the Setup node Insert the URL to the wanted drive folder into the setup node (make sure to remove everything after the ?) How to adjust it to your need Instead of saving the PDF in Google drive, you could also save it in your local system, any other storage provider or send the PDF automatically to the right person in your company.
by Inga Kruger
GBP Exchange Rate Email Workflow Sends email with table that have GBP exchange rate for few money value every day, if user clicks the button to run it. How it works: Data come from API Changed into HTML table Before is send inside email
by Aymeric Besset
> 🛠️ Note: This workflow uses a custom Mastodon API request. Ensure your server supports bookmark access, and that your access token has the right permissions. OAuth or token-based credentials must be configured. 🧑💼 Who is this for? This workflow is ideal for digital researchers, social media users, and knowledge workers who want to automatically archive Mastodon bookmarks into their Raindrop.io collection for future reference and tagging. 🔧 What problem is this solving? Mastodon users often bookmark posts they want to read or save for later, but there's no native integration to archive them outside the app. This workflow solves that by syncing bookmarked posts from Mastodon to Raindrop, making them more accessible, organized, and searchable long-term. ⚙️ What this workflow does Triggers on schedule (or manually). Tracks the latest fetched min_id using workflow static data to avoid duplicates. Sends an HTTP GET request to the Mastodon bookmarks API, using bearer token authentication. Validates and processes the bookmarks if new entries exist. Parses pagination metadata (e.g. min_id) from response headers. Splits response array to handle individual bookmarks. Filters out entries with missing data. Saves each post to Raindrop.io, using its title and URL. Use the card URL if exist. Updates the min_id to remember where it left off. 🚀 Setup Create a Mastodon access token with access to bookmarks. Add a credential in n8n of type HTTP Bearer Auth with your token. Create and connect a Raindrop OAuth2 credential. Replace {VOTRE SERVEUR MASTODON} with your Mastodon server's base URL. (Optional) Adjust the scheduling interval under the "Schedule Trigger" node. Make sure the Raindrop collection ID is correct or leave it as default (-1) as this is the index for the `Unsorted` collection. 🧪 How to customize this workflow To save to a specific Raindrop collection, change the collectionId in both Raindrop nodes. You can extend the Code node to pull additional metadata like author, hashtags, or content excerpts. Add an Email or Slack node after Raindrop to notify you of saved bookmarks.
by Vijayeta Sinel
Automate document translation and ensure translation accuracy using Straker Verify, Google Drive and Slack. **How it works? ** A workflow step is set up to "watch" a Google Drive folder. When your team members place new files in this folder, they are downloaded. Straker Verify then translates them and provides a quality score. Once Straker Verify has completed this, the job info is fetched, the translation is saved to an output folder and you are notified via Slack. What problem does this solve? When using AI to translate documents, you have no idea about the quality and accuracy of the output. This template answers the question “How good is my translation?” so you have a high level of confidence before you publish. Who is this for? This workflow template is designed for businesses needing translation and localization of documents such as text docs, presentations, web pages, transcripts, video subtitles and others. Use it to build workflows that localize your content at scale while maintaining translation quality, accuracy and compliance. Set up instructions Straker Verify Integration with n8n **Connect to Straker Verify: Obtain Your API Key Sign Up/Log In:** Visit https://verify.straker.ai/ to create an account or log in. Navigate to API Keys: Go to `Verify → Settings → API Keys. Copy Your Key: Find and copy your API key. Add Key to n8n: In n8n, go to Settings → Credentials → Straker Verify. Set Up Credentials for the Straker Verify Node Open n8n and go to "Credentials". From the left sidebar, click on "Credentials". Search for "Straker Verify" and select "Straker Verify API" from the dropdown. Paste the copied access token from the Verify app and save it. Assign Credentials to the Node 1.Go to your workflow and open the Straker Verify node. 2.Select the "Straker Verify API" credentials you just created from the dropdown (Credentials to connect with), and save. ✅ You are now ready to use the workflow. Workflow Steps Step 1: Initiate Workflow – Upload Files to Google Drive 1.Upload one or more files to the designated Google Drive folder. This triggers the "New File in Google Drive" node in n8n. Step 2: Verify Token Balance The workflow checks your token balance via: Get Current User Balance User Has Enough Tokens Not enough tokens? You will receive a Slack message: Not enough tokens Please top up and re-upload your files. Step 3: Select Workflow The system fetches available workflows via: Fetch All Users Workflows No matching workflow found? You'll be notified via Slack: No workflow found Step 4: Create Project in Straker Verify The following steps are handled automatically: Fetch language/project options Download files from Google Drive Create a new project using: Create Straker Project ✅ You'll receive a Slack confirmation: > "Project created – ID: xxxxxx" Step 5: Process Completion & File Return Once files are processed by Straker: The Incoming Translation Result webhook is triggered. The workflow: Downloads processed files: Get File Content from Strakerh - Uploads them to Google Drive: Upload File to Google Drivee Step 6: Confirmation - Workflow Complete You'll receive a final Slack message: > "Workflow complete – Files are now available in Google Drive"
by Lucas Peyrin
How it works This workflow converts an HTML string into a polished PDF file using the powerful open-source Gotenberg service. It's designed to be a reusable utility in your automation stack. Receives Input: The workflow is triggered with a JSON object containing the full html code as a string and a desired file_name for the output. Prepares File: It converts the incoming HTML string into a binary index.html file, which is required for the API call. Calls Gotenberg API: It sends the HTML file to a running Gotenberg instance via an HTTP request. It also dynamically sets the output filename and embeds metadata (like Author, Title, and Creation Date) directly into the PDF. Returns PDF: The workflow outputs the final binary PDF file, ready to be saved, sent in an email, or used in the next step of your main workflow. Set up steps Setup time: ~3 minutes This workflow has one critical prerequisite: a running Gotenberg instance that your n8n can connect to. 1. Prerequisite: Run Gotenberg You need to have the Gotenberg service running. The easiest way is with Docker. Add the following service to your docker-compose.yml file (the same one you use for n8n): services: ... your n8n service ... gotenberg: image: gotenberg/gotenberg:8 restart: always Then, restart your stack with docker compose up -d. This makes Gotenberg available at the address http://gotenberg:3000 from within your n8n container. 2. Use as a Sub-Workflow This workflow is ready to be used as a sub-workflow. In your main workflow, add an Execute Sub-Workflow node. In the Workflow parameter, select this "Create PDF from HTML" workflow. Provide the input data in the required format: a JSON object with html and file_name keys.
by Sam Robertson
Generate Summaries from Uploaded Files using OpenAI Assistants API 📑 Overview Upload a document (PDF, DOCX, PPTX, TXT, CSV, JSON, or Markdown) and receive an AI-generated summary containing: title** – 5-10 words summary** – 1-2 sentences bullets** – 3-5 key points tags** – 3-6 short keywords The workflow: Stores the file in OpenAI. Runs an Assistant with File Search and Code Interpreter enabled. Polls until the run finishes. Retrieves the summary JSON. ✅ Prerequisites OpenAI Assistant Create one at <https://platform.openai.com/assistants> Enable File Search and Code Interpreter Note: The assistant ID starts with asst_ OpenAI API credential setup in n8n Go to Credentials → New → HTTP Header Auth Header name: Authorization Value: Bearer YOUR-OPENAI-API-KEY (replace YOUR-OPENAI-API-KEY with your OpenAI API secret key for your assistant, starts with sk-) Name it: openAIApiHeader 🔧 Setup Import the workflow JSON. When n8n prompts for a credential, choose openAIApiHeader for every HTTP Request node. Open Run Assistant → Body and replace "assistant_id": "REPLACE_WITH_YOUR_ASSISTANT_ID" with your real ID (starts with asst_…). Save. 🚀 How it works | # | Node | Purpose | |---|------|---------| | 1 | On form submission | User uploads a file (File). | | 2 | Upload File | POST /v1/files (multipart) → returns file_id. | | 3 | Create Thread | Creates a thread and attaches the uploaded file. | | 4 | Run Assistant | Starts the run using your assistant_id. | | 5 | Poll Run Status → Wait 2 s → IF | Loops until status = completed. | | 6 | Fetch Summary | GET /v1/threads/{thread_id}/messages → summary JSON. | 🖌️ Customisation ideas Edit the user prompt in Create Thread to change summary length, tone, or language. Add an HTTP Response node after Fetch Summary to return plaintext to the uploader. Replace the polling loop with OpenAI’s forthcoming wait-for-run endpoint when available. No community nodes required. Works on any n8n Cloud plan (Starter, Pro, Enterprise) or self-hosted Community Edition.
by Agent Studio
Overview This workflow helps you compare Claude 3.5 Sonnet and Gemini 2.0 Flash when extracting data from a PDF This workflow extracts and processes the data within a PDF in one single step, instead of calling an OCR and then an LLM” How it works The initial 2 steps download the PDF and convert it to base64. This base64 string is then sent to both Claude 3.5 Sonnet and Gemini 2.0 Flash to extract information. This workflow is made to let you compare results, latency, and cost (in their dedicated dashboard). How to use it Set up your Google Drive if not already done Select a document on your Google Drive Modify the prompt in "Define Prompt" to extract the information you need and transform it as wanted. Get a Claude API key and/or Gemini API key Note that you can deactivate one of the 2 API calls if you don't want to try both Test the Workflow
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. How It Works: Typeform Quiz Integration: This workflow streamlines the process of handling quiz answers submitted via Typeform. It ensures the data is correctly formatted and seamlessly integrates with KlickTipp. Data Transformation: Input data is validated and transformed to meet KlickTipp’s API requirements, including formatting phone numbers and converting dates. Key Features Typeform Trigger: Captures new quiz submissions from Typeform, including user details and quiz responses. Data Processing and Transformation: Formats phone numbers to numeric-only format with international prefixes. Converts dates (e.g., birthdays) to UNIX timestamps. Maps multiple-choice quiz answers to string values for API compatibility. Scales numeric quiz responses for tailored use cases. Subscriber Management in KlickTipp: Adds participants as subscribers to a designated KlickTipp list, with custom field mappings for: Personal details (e.g., name, email, phone number, birthday). Quiz responses (e.g., intended usage of KlickTipp, company location, and team size). Tags contacts for segmentation: Adds fixed and dynamic tags to contacts. Error Handling: Handles empty or malformed data gracefully, ensuring clean submissions to KlickTipp. Setup Instructions Install and Configure Nodes: Set up the Typeform and KlickTipp nodes in your n8n instance. Authenticate your Typeform and KlickTipp accounts. Prepare Custom Fields in KlickTipp: Create custom fields to store quiz answers and personal details, such as: | Name | Datentyp | |----------------------------------|-----------------| | Typeform_URL_Linkedin | URL | | Typeform_Frage1_klicktipp_nutzen | Zeile | | Typeform_Frage2_klicktipp_sitz | Zeile | | Typeform_Frage3_mitglieder_CHT | Dezimalzahl | After creating fields, allow 10-15 minutes for them to sync. If fields don’t appear, reconnect your KlickTipp credentials. Field Mapping and Adjustments: Verify and customize field assignments in the workflow to align with your specific form and subscriber list setup. Workflow Logic Trigger via Typeform Submission: The workflow initiates upon receiving a new quiz submission. Transform Data for KlickTipp: Converts and validates data from Typeform to match KlickTipp’s API requirements. Add to KlickTipp Subscriber List: Submits the cleaned data to KlickTipp, including all relevant quiz answers. Get all tags from KlickTipp and create a list: Fetches all existing Tags and turns them into an array Define tags to dynamically set for contacts: Definiton of variables that are received from the form submission and should be converted into tags Merge tags of both lists: Checks whether the list of existing tags in KlickTipp contains the tags which should be dynamically set based on the form submission Tag creation and tagging contacts: Creates new tags if it previously did not exist and then tags the contact Benefits Efficient lead generation: Contacts from forms are automatically imported into KlickTipp and can be used immediately, saving time and increasing the conversion rate. Automated processes: Experts can start workflows directly, such as welcome emails or course admissions, reducing administrative effort. Error-free data management: The template ensures precise data mapping, avoids manual corrections and reinforces a professional appearance. Testing and Deployment Test the workflow by filling the form on Typeform and verifying data updates in KlickTipp. Notes Customization: Update field mappings within the KlickTipp nodes to align with your account setup. This ensures accurate data syncing. Resources: Typeform KlickTipp Knowledge Base help article Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Roshan Ramani
🤖 GitHub Auto-Assign Bot Streamline your open source project with intelligent issue assignment automation. ✨ What It Does Automatically assigns GitHub issues to contributors who comment "assign me" - eliminating manual triage work and creating a fair, first-come-first-served system. 🔑 Key Features Smart Detection**: Monitors both new issues and comments for assignment requests Conflict Prevention**: Checks existing assignments before making new ones Auto-Labeling**: Adds "assigned" labels for better tracking Self-Service Assignment**: Contributors claim issues with simple "assign me" command Polite Responses**: Automatically notifies when issues are already assigned 🎯 Perfect For Open source maintainers Development teams managing GitHub repos Projects with active contributor communities Anyone reducing manual issue management ⚙️ Setup Requirements GitHub repository with issues enabled n8n instance with GitHub OAuth credentials 5 minutes configuration time 🚀 How Contributors Use It Find an unassigned issue Comment assign me Get automatically assigned Start coding immediately → no maintainer approval needed! ✅ Benefits Reduces maintainer workload** - No manual assignments Faster contributor onboarding** - Instant self-service Prevents conflicts** - Built-in assignment checking Scales automatically** - Works across unlimited issues Improves contributor experience** - Simple, clear process ⚡ Workflow Triggers New GitHub issues containing "assign me" New comments with "assign me" on existing issues Automatic label management Conflict resolution responses > Transform your GitHub workflow - Perfect for growing open source projects and development teams!
by Niranjan G
Automated GitHub Scanner for Exposed AWS IAM Keys Overview This n8n workflow automatically scans GitHub for exposed AWS IAM access keys associated with your AWS account, helping security teams quickly identify and respond to potential security breaches. When compromised keys are found, the workflow generates detailed security reports and sends Slack notifications with actionable remediation steps. 🔑 Key Features Automated AWS IAM Key Scanning**: Regularly checks for exposed AWS access keys on GitHub Real-time Security Alerts**: Sends immediate Slack notifications when compromised keys are detected Comprehensive Security Reports**: Generates detailed reports with exposure information and risk assessment Actionable Remediation Steps**: Provides clear instructions for securing compromised credentials Continuous Monitoring**: Maintains ongoing surveillance of your AWS environment 📋 Workflow Steps List AWS Users: Retrieves all users from your AWS account Split Users for Processing: Processes each user individually Get User Access Keys: Retrieves access keys for each user Filter Active Keys Only: Focuses only on currently active access keys Search GitHub for Exposed Keys: Scans GitHub repositories for exposed access keys Aggregate Search Results: Consolidates and deduplicates search findings Check For Compromised Keys: Determines if any keys have been exposed Generate Security Report: Creates detailed security reports for compromised keys Extract AWS Usernames: Extracts usernames from AWS response for notification Format Slack Alert: Prepares comprehensive Slack notifications Send Slack Notification: Delivers alerts with actionable information Continue Scanning: Maintains continuous monitoring cycle 🛠️ Setup Requirements Prerequisites Active n8n instance AWS account with IAM permissions GitHub account/token for searching repositories Slack workspace for notifications Required Credentials AWS Credentials: IAM user with permissions to list users and access keys Access Key ID and Secret Access Key GitHub Credentials: Personal Access Token with search permissions Slack Credentials: Webhook URL for your notification channel ⚙️ Configuration AWS Configuration: Configure the "List AWS Users" node with your AWS credentials Ensure proper IAM permissions for listing users and access keys GitHub Configuration: Set up the "Search GitHub for Exposed Keys" node with your GitHub token Adjust search parameters if needed Slack Configuration: Configure the Slack node with your webhook URL Customize notification format if desired 🚀 Usage Running the Workflow Manual Execution: Click "Execute Workflow" to run an immediate scan Scheduled Execution: Set up a schedule to run periodic scans (recommended daily or weekly) Repository Compatibility This workflow is compatible with both public and private GitHub repositories to which you have access. It will scan all repositories you have permission to view based on your GitHub credentials. Handling Alerts When a compromised key is detected: Review the Slack notification for details about the exposure Follow the recommended remediation steps: Deactivate the compromised key immediately Create a new key if needed Investigate the exposure source Update any services using the compromised key ⚠️ Disclaimer This workflow template is provided for reference purposes only to demonstrate how to automate AWS IAM key exposure scanning. Please note: The scanning process may produce false positives as it only matches potential AWS access key patterns Always verify any reported exposures manually before taking action Disabling or deleting access keys without proper verification could have significant negative impacts on your environment Understand which systems and applications rely on identified access keys before deactivating them This template should be customized to fit your specific environment and security policies IMPORTANT: Use this workflow with caution and only after thoroughly understanding your AWS environment. The authors of this template are not responsible for any disruptions or damages resulting from its use. 🔒 Security Considerations This workflow requires access to sensitive AWS credentials Store all credentials securely within n8n Review and rotate access keys regularly 📝 Customization Options Adjust GitHub search parameters for more targeted scanning Customize Slack notification format and content Modify security report generation for your specific needs Integrate with additional notification channels (email, MS Teams, etc.) Optional: Enabling Interactive Slack Buttons The Slack Block Kit notification format supports interactive buttons that can be implemented if you want to perform actions directly from Slack: Disable Key: This button can be configured to automatically disable the compromised AWS IAM access key View Details: This button can be set up to show additional information about the exposure Acknowledge: This button can be used to mark the alert as acknowledged To make these buttons functional: Set up a Slack Socket Mode App: Create a Slack app in the Slack API Console Enable Socket Mode and Interactive Components Subscribe to the block_actions event to capture button clicks Create an n8n Webhook Endpoint: Add a new webhook node to receive Slack button click events Create separate workflows for each button action Implement AWS Key Disabling: For the "Disable Key" button, create a workflow that uses the n8n HTTP Request node to call the AWS IAM UpdateAccessKey API Example HTTP request that can be implemented in n8n: Method: POST URL: https://iam.amazonaws.com/ Query Parameters: Action: UpdateAccessKey AccessKeyId: AKIAIOSFODNN7EXAMPLE Status: Inactive UserName: {{$json.username}} Version: 2010-05-08 Update the Slack Message Format: Modify the Format Slack Alert node to include your webhook URL in the button action values Add callback_id and action_id values to identify which button was clicked This implementation allows for immediate response to security incidents directly from the Slack interface, reducing response time and improving security posture.
by Nukeador
Who is this for? BlueSky users looking to automate the publication of new posts based on new items from a RSS feed. What this workflow does This will create a BlueSky post with each new RSS feed item, including the feed title, post image, link and content (up to 200 characters) Setup You'll need to generate a BlueSky app password Configure your feed URL in the first node Configure your credentials in the second node How to customize this workflow to your needs You can modify the message posted in the `Create post node, changing the JSON text` value, in case you want to include only the feed item title instead of the content. If you RSS feed doesn't provide an image, you can define a static one on the `Download image` node.
by PixelMakers
This n8n template automates the process of capturing leads from Webflow form submissions and syncing them with your Pipedrive CRM. It ensures that each submission is accurately associated with the correct organization and contact in Pipedrive, streamlining lead management and minimizing duplicates. Use cases include: Sales teams that want to automate CRM data entry, marketing teams capturing qualified leads from landing pages, or any business looking to improve their Webflow-to-CRM integration workflow. Good to know The workflow assumes that Webflow form submissions include the lead’s email address. The domain is extracted from the email to match or create the organization in Pipedrive. This template does not handle lead scoring or enrichment, but can be extended for such use-cases. How it works Extract website from email The email is split to extract the domain (e.g., jane@company.com → company.com), which is used to search for existing organizations. Check if the organization exists The Pipedrive API is queried using the domain. If the organization exists, we proceed. If not, a new organization is created. Check if the person exists -- If the person already exists in Pipedrive, a note is added to their activities to log the form submission. -- If the person does not exist, a new person is created, a note is added to the person, and a new lead is created. (Optional) Add your own actions You can extend this workflow to trigger Slack notifications, email follow-ups, or internal dashboards. How to use Start with the manual trigger node, or replace it with a webhook to connect directly to Webflow form submissions in real-time. Requirements Webflow form integration (via webhook or other method) Pipedrive account and API key Customising this workflow You can add enrichment services to auto-fill job titles or LinkedIn profiles. Perfect for growing sales pipelines without manual CRM input.