Tom
Categories
Templates by Tom
Create an RSS feed based on a website's content
This workflow parses content from a website (for this example, Baserow's release page) and creates an RSS feed based on the extracted data. Prerequisites Some familiarity with HTML and CSS selectors Nodes Webhook node triggers the workflow when new content (a new Baserow release) is published on a website. Set nodes set the required URLs and links for the RSS feed. HTTP Request node fetches data from a specified website page. HTML Extract nodes extract the posts and their fields (such as date, title, description, and link) from the website. Item Lists node iterates over each post on the page. Date & Time node converts the date of the post to a different format. Function Item node creates RSS items for each post. Function node creates the response code for the RSS feed. Respond to Webhook node returns the RSS feed in response to the Webhook node. The result of this workflow would look like this:
Serve a static HTML page when a link is accessed
This easy-to-extend workflow automatically serves a static HTML page when a URL is accessed in a browser. Prerequisites Basic knowledge of HTML Nodes Webhook node triggers the workflow on an incoming request. Respond to Webhook node serves the HTML page in response to the webhook.
Create Salesforce accounts based on Google Sheets data
This workflow shows a no code approach to creating Salesforce accounts and contacts based on data coming from Google Sheets. To run the workflow: Make sure you have both Google Sheets and Salesforce authenticated with n8n. Have a Google Sheet with contacts and their account names ready, copy the respective sheet ID from the URL: Add the sheet ID to the Google Sheet node of the workflow: Hit Execute Workflow Here is how it works: The workflow first searches for existing Salesforce accounts by name. It then branches out depending on whether the account already exists in Salesforce or not. If an account does not exist yet, it will be created. The data is then normalised before both branches converge again. Finally the contacts are created or updated as needed in Salesforce.
Split out binary data
This workflows helps with processing binary data. You'll often have binary objects with keys such as attachment0, attachment1, attachment_2, etc. attached to your items, for example when reading an incoming email. This binary data is hard to process because it's not an array you can simply loop through. This workflow solves this problem by providing a Function node that takes all incoming items and all their binary data and then returning a single item for each file with a data key containing your binary file. Incoming binary data: Processed binary data:
Track investments using Baserow and n8n
This workflow uses a number of technologies to track the value of ETFs, stocks and other exchange-traded products: Baserow: To keep track of our investments n8n’s Cron node: To trigger the workflow compiling our daily morning briefing Webscraping: The HTTP Request & HTML Extract nodes to fetch up-to-date prices from the relevant stock exchange and structure this infromation Javascript: We’ll use the Function node to build a custom HTML body with all the relevant information Sendgrid: The Email Service Provider in this workflow to send out our email Thanks to n8n, the steps in this workflow can easily be changed. Not a Sendgrid user? Simply remove the Sendgrid node and add a Gmail node instead. The stock exchange has a REST API? Just throw away the HTML Extract node. Here’s how it works: Data Source In this scenario, our data source is Baserow. In our table, we’ll track all information needed to identify each investment product: We have two text type columns (Name and ISIN) as well as two number type columns (Count and Purchase Price). Workflow Nodes Cron The Cron node will trigger our workflow to run each work day in the morning hours. Baserow The Baserow node will fetch our investments from the database table shown above. HTTP Request Using the HTTP Request node we can fetch live data from the stock exchange of our choice based on the ISIN. This example uses Tradegate, which is used by many German fintechs. The basic approach should also work for other exchanges, as long as they provide the required data to the public. HTML Extract Since our HTTP Request node fetches full websites, we’re using the HTML Extract node to extract the information we’re looking for from each website. If an exchange other than Tradegate is used, the selectors used in this node will most likely need to be updated. + 6. Set The Set nodes helps with setting the exact columns we’ll use in our table. In this case we’re first formatting the results from our exchange, then calculate the changes based on the purchase price. Function Here were using a bit of Javascript magic to build an HTML email. This is where any changes to the email content would have to be made. Sendgrid Finally we send out the email built in the previous step. This is where you can configure sender and recipients. Result The basic email generated by this workflow will look like so:
Respond with file download to incoming HTTP request
This simple workflow demonstrates how to get an end user's browser to download a file. It makes use of the Content-Disposition header to set a filename and control the browser behaviour. A use case could be the download of a PDF file at the end of an application process or to export data from a database without replacing the current page content in the browser. With this approach, the current page remains open and the file is simply downloaded instead: The original idea was first present here by @dickhoning in the n8n community.
Identify new Google Sheets rows
This workflow identifies new rows in Google Sheets using a separate column keeping track of already processed rows. For this approach to work, the sheet needs to meet two requirements: A unique identifier for each row is required A column used to differentiate new/processed rows is present Our example sheet looks like this: So the row identifier is named ID, the new/processed column is called Processed. Update the workflow accordingly if your columns have different names. Now if the workflow runs, it discovers all three rows as new. After processing them, it will add a timestamp to the Processed column: The next time the workflow is executed it will skip the existing rows and only process newly added data:
Transform markdown content into structured Notion blocks
Markdown to Notion Blocks Converter Transform markdown-formatted text into properly structured Notion page content with this comprehensive workflow. Overview This workflow automatically converts markdown text into Notion's block format and inserts it directly into a Notion page. Perfect for content creators, documentation teams, and anyone who needs to migrate markdown content to Notion. Features Complete Markdown Support: Handles headers (H1-H4), paragraphs, lists, quotes, code blocks, and horizontal rules Rich Text Formatting: Preserves bold, italic, and link formatting Smart Text Processing: Generates plain text excerpts and maintains original content structure Direct Notion Integration: Automatically inserts converted blocks into your specified Notion page Batch Processing: Efficiently handles large content blocks What It Does Takes markdown-formatted text as input Parses and converts it to Notion's block structure Handles complex formatting including: Headers and subheaders Bulleted and numbered lists Code blocks with syntax highlighting Blockquotes Bold and italic text Links Horizontal dividers Uploads the converted content directly to your Notion page Use Cases Content Migration: Move existing markdown documentation to Notion Automated Publishing: Convert blog posts or articles from markdown to Notion Documentation Workflows: Streamline technical documentation processes Content Syndication: Publish the same content across multiple platforms Requirements Notion API credentials Target Notion page ID Markdown-formatted source content Setup Configure your Notion API credentials Replace the page ID in the HTTP request node with your target Notion page Connect your markdown data source (replace the mock data node) Execute the workflow
Count the items returned by a node
This workflow provides a simple approach to counting the items returned by a node. It uses a Set node with the Execute Once option: The expression uses $input.all() (documented here) to fetch all incoming items at once, and .length (documented for example here) to count them.
Create Salesforce accounts based on Excel 365 data
This workflow shows a no code approach to creating Salesforce accounts and contacts based on data coming from Excel 365 (the online version of Microsoft Excel). For a version working with regular Excel files check out this workflow instead. To run the workflow: Make sure you have both Excel 365 and Salesforce authenticated with n8n. Have a Microsoft Excel workbook with contacts and their account names ready: Select the workbook and sheet in the Microsoft Excel node of the workflow, then configure the range to read data from: Hit the Execute Workflow button at the bottom of the n8n canvas: Here is how it works: The workflow first searches for existing Salesforce accounts by name. It then branches out depending on whether the account already exists in Salesforce or not. If an account does not exist yet, it will be created. The data is then normalised before both branches converge again. Finally the contacts are created or updated as needed in Salesforce.
Google spreadsheet to HTML - variant with spreadsheet file
This workflow shows a no code approach to creating a HTML table based on Google Sheets data. To run the workflow: Make sure you have a Google Sheet with a header row and some data in it. Grab your sheet ID: Add it to the Google Sheets node: Activate the workflow or execute it manually Visit the URL provided by the webhook node in your browser (production URL if the workflow is active, test URL if the workflow is executed manually)
Get email notifications for newly uploaded Google Drive files
This workflow sends out email notifications when a new file has been uploaded to Google Drive. The workflow uses two nodes: Google Drive Trigger: This node will trigger the workflow whenever a new file has been uploaded to a given folder Send Email: This node sends out the email using data from the previous Google Drive Trigger node.