This workflow corresponds to n8n.io template #6755 — we link there as the canonical source.
This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "1f907433-9095-431b-aa67-183adc3480f2",
"name": "Schedule: Every 10 min (Business Hours)",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-832,
-32
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "*/10 6-21 * * 1-5"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c74658c1-167f-4d15-86c5-de80b9ad5dfb",
"name": "Fetch SEC Form D Filings",
"type": "n8n-nodes-base.httpRequest",
"position": [
-608,
-32
],
"parameters": {
"url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&CIK=&type=D&company=&dateb=&owner=include&start=0&count=40&output=atom",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "iRocket VC user@example.com"
},
{
"name": "Accept-Encoding",
"value": "gzip, deflate"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "55a90c03-a9ed-45f6-a80b-d8a0c862e369",
"name": "Parse SEC RSS Feed",
"type": "n8n-nodes-base.xml",
"position": [
-384,
-32
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "7f8b7312-b1ba-45ec-901c-5df83d549f66",
"name": "Extract & Format Filing Data",
"type": "n8n-nodes-base.code",
"position": [
-160,
-32
],
"parameters": {
"jsCode": "// Extract the entries array\nconst entries = $('Parse SEC RSS Feed').first().json.feed.entry;\n\n// Map each entry to a flat object\nreturn entries.map(entry => {\n // Best method: Extract CIK from title (in parentheses)\n const titleMatch = entry.title.match(/\\((\\d{10})\\)/);\n const cikNumber = titleMatch ? titleMatch[1].replace(/^0+/, '') : '';\n \n // Get the HTML link\n const htmlLink = entry.link.href;\n \n // Convert to TXT link by:\n // 1. Removing \"-index.htm\" at the end\n // 2. Adding \".txt\" extension\n const txtLink = htmlLink.replace('-index.htm', '.txt');\n \n return {\n cikNumber: cikNumber || '',\n title: entry.title,\n formType: entry.category.term,\n filingLinkHtml: htmlLink,\n filingLinkTxt: txtLink,\n updated: entry.updated\n };\n});"
},
"typeVersion": 2
},
{
"id": "cb06eac4-66bc-4cc5-a248-5a4453e04382",
"name": "Filter New Filings Only",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
64,
-32
],
"parameters": {
"options": {},
"operation": "removeItemsSeenInPreviousExecutions",
"dedupeValue": "={{ $json.filingLinkTxt }}"
},
"typeVersion": 2
},
{
"id": "440e3de1-7b0f-45b9-8c02-709fb539cf03",
"name": "Save to SEC Data Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
288,
-32
],
"parameters": {
"columns": {
"value": {
"title": "={{ $json.title }}",
"updated": "={{ $json.updated }}",
"formType": "={{ $json.formType }}",
"cikNumber": "={{ $json.cikNumber }}",
"filingLinkTxt": "={{ $json.filingLinkTxt }}",
"filingLinkHtml": "={{ $json.filingLinkHtml }}"
},
"schema": [
{
"id": "cikNumber",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "cikNumber",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "formType",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "formType",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "filingLinkHtml",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "filingLinkHtml",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "filingLinkTxt",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "filingLinkTxt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "updated",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "updated",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1VoGfVpk1mMrqKIc5hsO7peYuLx0SwhsbW7uUeYJCmrU/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1VoGfVpk1mMrqKIc5hsO7peYuLx0SwhsbW7uUeYJCmrU",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1VoGfVpk1mMrqKIc5hsO7peYuLx0SwhsbW7uUeYJCmrU/edit?usp=drivesdk",
"cachedResultName": "SEC Data"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "a4ea4d52-7a65-4858-916c-17043aeed742",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
-560
],
"parameters": {
"width": 528,
"height": 208,
"content": "\ud83c\udfdb\ufe0f SEC FORM D FILING TRACKER \n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\ud83d\udcca Monitors SEC Form D filings automatically\n\ud83d\udcbc Tracks private placements & fundraising \n\ud83d\udcc8 Perfect for VCs and investment research\n\n\u23f0 Runs every 10 minutes during business hours\n\ud83d\udd04 Filters duplicates and saves to Google Sheets"
},
"typeVersion": 1
},
{
"id": "b49bec0b-28db-4732-acbd-db8664564b3d",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1296,
-128
],
"parameters": {
"color": 5,
"width": 400,
"height": 288,
"content": "\u23f0 AUTOMATED MONITORING\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\ud83d\udcc5 Schedule: Every 10 minutes\n\ud83d\udd55 Hours: 6 AM - 9 PM EST\n\ud83d\udcc6 Days: Monday - Friday (Business days)\n\n\ud83d\udca1 Customize timing:\n- Change interval (*/10 = every 10 min)\n- Adjust hours (6-21 = 6AM-9PM)\n- Modify days (1-5 = Mon-Fri)\n\n\u26a0\ufe0f Respects SEC server load during business hours"
},
"typeVersion": 1
},
{
"id": "9c2363fe-11e2-4de0-99e9-99f3d6a7311f",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
176
],
"parameters": {
"color": 4,
"width": 352,
"height": 192,
"content": "\ud83c\udf10 SEC EDGAR FEED\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\ud83d\udccb Fetches 40 most recent Form D filings\n\ud83c\udfe2 Requires User-Agent header for compliance\n\ud83d\udce1 Returns RSS/XML format with filing links\n\n\u26a0\ufe0f Must include proper User-Agent header"
},
"typeVersion": 1
},
{
"id": "0f1414da-6905-4fbb-b8fd-86d21849ecea",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
-272
],
"parameters": {
"color": 6,
"width": 352,
"height": 192,
"content": "\u2699\ufe0f DATA EXTRACTION\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\ud83c\udfd7\ufe0f Extracts CIK numbers from titles\n\ud83d\udd17 Generates HTML & TXT filing links\n\ud83d\udcc5 Formats data for Google Sheets\n\n\ud83d\udcca Output: CIK, Title, Form Type, Links, Date"
},
"typeVersion": 1
},
{
"id": "80833ab1-2e86-4feb-a757-5c535e2ec1c7",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
144
],
"parameters": {
"color": 7,
"width": 544,
"height": 336,
"content": "\ud83d\udccb GOOGLE SHEETS OUTPUT\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\ud83d\udcc4 Appends new filings only\n\ud83d\udcbe Saves: CIK, Title, Form Type, Links, Date\n\ud83d\udd10 Requires Google Sheets OAuth setup\n\n\ud83d\udd17 TEMPLATE SHEET:\nhttps://docs.google.com/spreadsheets/d/1VoGfVpk1mMrqKIc5hsO7peYuLx0SwhsbW7uUeYJCmrU/edit?usp=sharing\n\n\u2705 Steps:\n1. Make a copy of template above\n2. Update Sheet ID in this node \n3. Point to your copied sheet"
},
"typeVersion": 1
}
],
"connections": {
"Parse SEC RSS Feed": {
"main": [
[
{
"node": "Extract & Format Filing Data",
"type": "main",
"index": 0
}
]
]
},
"Save to SEC Data Sheet": {
"main": [
[]
]
},
"Filter New Filings Only": {
"main": [
[
{
"node": "Save to SEC Data Sheet",
"type": "main",
"index": 0
}
]
]
},
"Fetch SEC Form D Filings": {
"main": [
[
{
"node": "Parse SEC RSS Feed",
"type": "main",
"index": 0
}
]
]
},
"Extract & Format Filing Data": {
"main": [
[
{
"node": "Filter New Filings Only",
"type": "main",
"index": 0
}
]
]
},
"Schedule: Every 10 min (Business Hours)": {
"main": [
[
{
"node": "Fetch SEC Form D Filings",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automatically monitors and tracks SEC Form D filings (private placement offerings) by fetching data from the SEC EDGAR database every 10 minutes during business hours and saving new filings to Google Sheets for analysis and tracking. Venture capitalists tracking…
Source: https://n8n.io/workflows/6755/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow is designed for venture capitalists, private equity professionals, investment analysts, and financial researchers who need to track private securities offerings and fundraising activitie
This workflow is aimed at traders who use Interactive Brokers. It automatically retrieves the trades made in IBKR on a daily basis and writes them to a Google Sheet, so that anyone can easily perform
This workflow automates video distribution to 9 social platforms simultaneously using Blotato's API. It includes both a scheduled publisher (checks Google Sheets for videos marked "Ready") and a subwo
YogiAI. Uses googleSheets, googleSheetsTool, httpRequest, stopAndError. Scheduled trigger; 61 nodes.
This workflow monitors Google Calendar for events indicating that a customer will visit the company today or the next day, retrieves the required details, and sends reminder notifications to the relev