This workflow corresponds to n8n.io template #12034 — we link there as the canonical source.
This workflow follows the Agent → Gmail 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 →
{
"id": "JRo7b7cYCeiXgYfc",
"name": "Revenue to Tax Compliance Automation using AI",
"tags": [],
"nodes": [
{
"id": "e25114df-34f9-4398-84d3-747123ed9daf",
"name": "Monthly Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-2160,
256
],
"parameters": {
"rule": {
"interval": [
{
"field": "months",
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.3
},
{
"id": "06a2b45d-9701-4aa2-8f89-1b5693e7149f",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
-1936,
256
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "revenueApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Revenue API endpoint URL__>"
},
{
"id": "id-2",
"name": "taxAgentEmail",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Tax agent email address__>"
},
{
"id": "id-3",
"name": "complianceSheetId",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Google Sheets ID for compliance records__>"
},
{
"id": "id-4",
"name": "driveFolderId",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Google Drive folder ID for archiving__>"
},
{
"id": "id-5",
"name": "federalTaxRate",
"type": "number",
"value": 0.22
},
{
"id": "id-6",
"name": "stateTaxRate",
"type": "number",
"value": 0.05
},
{
"id": "id-7",
"name": "socialSecurityRate",
"type": "number",
"value": 0.062
},
{
"id": "id-8",
"name": "medicareRate",
"type": "number",
"value": 0.0145
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "07523b7a-de39-437e-82b6-e70ae1fdcf9f",
"name": "Fetch Revenue Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1712,
256
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.revenueApiUrl }}",
"options": {
"response": {
"response": {}
}
}
},
"typeVersion": 4.3
},
{
"id": "f73d071d-b0a0-4a66-891f-8af4773e1e3c",
"name": "Calculate Payroll",
"type": "n8n-nodes-base.set",
"position": [
-1488,
256
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "employeeName",
"type": "string",
"value": "={{ $json.employeeName }}"
},
{
"id": "id-2",
"name": "grossRevenue",
"type": "number",
"value": "={{ $json.revenue }}"
},
{
"id": "id-3",
"name": "payrollAmount",
"type": "number",
"value": "={{ $json.revenue * 0.30 }}"
},
{
"id": "id-4",
"name": "payrollPercentage",
"type": "number",
"value": 0.3
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "0da16e17-de3c-4d0f-8c0c-aa082e73659c",
"name": "Apply Tax Withholding",
"type": "n8n-nodes-base.set",
"position": [
-1264,
256
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "federalTax",
"type": "number",
"value": "={{ $json.payrollAmount * $('Workflow Configuration').first().json.federalTaxRate }}"
},
{
"id": "id-2",
"name": "stateTax",
"type": "number",
"value": "={{ $json.payrollAmount * $('Workflow Configuration').first().json.stateTaxRate }}"
},
{
"id": "id-3",
"name": "socialSecurity",
"type": "number",
"value": "={{ $json.payrollAmount * $('Workflow Configuration').first().json.socialSecurityRate }}"
},
{
"id": "id-4",
"name": "medicare",
"type": "number",
"value": "={{ $json.payrollAmount * $('Workflow Configuration').first().json.medicareRate }}"
},
{
"id": "id-5",
"name": "totalTaxWithholding",
"type": "number",
"value": "={{ ($json.payrollAmount * $('Workflow Configuration').first().json.federalTaxRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.stateTaxRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.socialSecurityRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.medicareRate) }}"
},
{
"id": "id-6",
"name": "netPayroll",
"type": "number",
"value": "={{ $json.payrollAmount - (($json.payrollAmount * $('Workflow Configuration').first().json.federalTaxRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.stateTaxRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.socialSecurityRate) + ($json.payrollAmount * $('Workflow Configuration').first().json.medicareRate)) }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "08c0cfec-6672-434c-adbe-c333c758b423",
"name": "Aggregate Tax Summary",
"type": "n8n-nodes-base.summarize",
"position": [
-1040,
256
],
"parameters": {
"options": {
"outputFormat": "singleItem"
},
"fieldsToSummarize": {
"values": [
{
"field": "grossRevenue",
"aggregation": "sum"
},
{
"field": "payrollAmount",
"aggregation": "sum"
},
{
"field": "federalTax",
"aggregation": "sum"
},
{
"field": "stateTax",
"aggregation": "sum"
},
{
"field": "socialSecurity",
"aggregation": "sum"
},
{
"field": "medicare",
"aggregation": "sum"
},
{
"field": "totalTaxWithholding",
"aggregation": "sum"
},
{
"field": "netPayroll",
"aggregation": "sum"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "820d3aac-8af9-4814-9451-d40e63800bb1",
"name": "Generate Summary Document",
"type": "n8n-nodes-base.html",
"position": [
-432,
256
],
"parameters": {
"html": "=<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\" />\n <title>Tax Summary Report</title>\n</head>\n<body>\n <div class=\"container\">\n <h1>Tax Compliance Summary Report</h1>\n <p class=\"period\">Reporting Period: {{ $('Aggregate Tax Summary').item.json.period }}</p>\n \n <div class=\"section\">\n <h2>Revenue Summary</h2>\n <table>\n <tr>\n <td class=\"label\">Total Revenue:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.totalRevenue }}</td>\n </tr>\n <tr>\n <td class=\"label\">Taxable Revenue:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.taxableRevenue }}</td>\n </tr>\n </table>\n </div>\n \n <div class=\"section\">\n <h2>Payroll Calculation</h2>\n <table>\n <tr>\n <td class=\"label\">Gross Payroll:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.grossPayroll }}</td>\n </tr>\n <tr>\n <td class=\"label\">Employee Count:</td>\n <td class=\"value\">{{ $('Aggregate Tax Summary').item.json.employeeCount }}</td>\n </tr>\n <tr>\n <td class=\"label\">Total Deductions:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.totalDeductions }}</td>\n </tr>\n <tr>\n <td class=\"label\">Net Payroll:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.netPayroll }}</td>\n </tr>\n </table>\n </div>\n \n <div class=\"section\">\n <h2>Tax Withholding Breakdown</h2>\n <table>\n <tr>\n <td class=\"label\">Federal Tax Withheld:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.federalTax }}</td>\n </tr>\n <tr>\n <td class=\"label\">State Tax Withheld:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.stateTax }}</td>\n </tr>\n <tr>\n <td class=\"label\">Social Security:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.socialSecurity }}</td>\n </tr>\n <tr>\n <td class=\"label\">Medicare:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.medicare }}</td>\n </tr>\n <tr class=\"total-row\">\n <td class=\"label\"><strong>Total Tax Withheld:</strong></td>\n <td class=\"value\"><strong>${{ $('Aggregate Tax Summary').item.json.totalTaxWithheld }}</strong></td>\n </tr>\n </table>\n </div>\n \n <div class=\"section\">\n <h2>Period Summary</h2>\n <table>\n <tr>\n <td class=\"label\">Total Revenue:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.totalRevenue }}</td>\n </tr>\n <tr>\n <td class=\"label\">Total Payroll Expense:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.grossPayroll }}</td>\n </tr>\n <tr>\n <td class=\"label\">Total Tax Liability:</td>\n <td class=\"value\">${{ $('Aggregate Tax Summary').item.json.totalTaxWithheld }}</td>\n </tr>\n <tr class=\"total-row\">\n <td class=\"label\"><strong>Net After Tax:</strong></td>\n <td class=\"value\"><strong>${{ $('Aggregate Tax Summary').item.json.netAfterTax }}</strong></td>\n </tr>\n </table>\n </div>\n \n <div class=\"section ai-section\">\n <h2>AI Compliance Analysis</h2>\n \n <div class=\"ai-subsection\">\n <h3>Risk Assessment</h3>\n <p class=\"ai-content\">{{ $('AI Tax Compliance Analyst').item.json.riskAssessment }}</p>\n </div>\n \n <div class=\"ai-subsection\">\n <h3>Compliance Notes</h3>\n <p class=\"ai-content\">{{ $('AI Tax Compliance Analyst').item.json.complianceNotes }}</p>\n </div>\n \n <div class=\"ai-subsection\">\n <h3>Recommendations</h3>\n <ul class=\"recommendations-list\">\n {% for recommendation in $('AI Tax Compliance Analyst').item.json.recommendations %}\n <li>{{ recommendation }}</li>\n {% endfor %}\n </ul>\n </div>\n </div>\n \n <div class=\"footer\">\n <p>Generated on: {{ $now.format('MMMM DD, YYYY') }}</p>\n <p class=\"disclaimer\">This document is for compliance purposes only. Please consult with your tax professional.</p>\n </div>\n </div>\n</body>\n</html>\n\n<style>\nbody {\n font-family: Arial, sans-serif;\n background-color: #f5f5f5;\n margin: 0;\n padding: 20px;\n}\n\n.container {\n background-color: #ffffff;\n max-width: 800px;\n margin: 0 auto;\n padding: 40px;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\nh1 {\n color: #2c3e50;\n font-size: 28px;\n font-weight: bold;\n text-align: center;\n margin-bottom: 10px;\n border-bottom: 3px solid #3498db;\n padding-bottom: 15px;\n}\n\n.period {\n text-align: center;\n color: #7f8c8d;\n font-size: 14px;\n margin-bottom: 30px;\n}\n\n.section {\n margin-bottom: 30px;\n}\n\nh2 {\n color: #34495e;\n font-size: 20px;\n font-weight: bold;\n margin-bottom: 15px;\n padding: 10px;\n background-color: #ecf0f1;\n border-left: 4px solid #3498db;\n}\n\ntable {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 10px;\n}\n\ntr {\n border-bottom: 1px solid #ecf0f1;\n}\n\ntd {\n padding: 12px 15px;\n}\n\n.label {\n color: #7f8c8d;\n font-size: 14px;\n width: 60%;\n}\n\n.value {\n color: #2c3e50;\n font-size: 14px;\n font-weight: 600;\n text-align: right;\n width: 40%;\n}\n\n.total-row {\n background-color: #f8f9fa;\n border-top: 2px solid #3498db;\n border-bottom: 2px solid #3498db;\n}\n\n.total-row td {\n padding: 15px;\n font-size: 16px;\n}\n\n.ai-section {\n background-color: #f0f8ff;\n padding: 20px;\n border-radius: 8px;\n border: 2px solid #3498db;\n}\n\n.ai-subsection {\n margin-bottom: 20px;\n}\n\nh3 {\n color: #2980b9;\n font-size: 16px;\n font-weight: bold;\n margin-bottom: 10px;\n padding-bottom: 5px;\n border-bottom: 1px solid #bdc3c7;\n}\n\n.ai-content {\n color: #34495e;\n font-size: 14px;\n line-height: 1.6;\n margin: 10px 0;\n}\n\n.recommendations-list {\n list-style-type: disc;\n padding-left: 25px;\n color: #34495e;\n font-size: 14px;\n line-height: 1.8;\n}\n\n.recommendations-list li {\n margin-bottom: 8px;\n}\n\n.footer {\n margin-top: 40px;\n padding-top: 20px;\n border-top: 2px solid #ecf0f1;\n text-align: center;\n color: #95a5a6;\n font-size: 12px;\n}\n\n.disclaimer {\n font-style: italic;\n margin-top: 10px;\n}\n</style>"
},
"typeVersion": 1.2
},
{
"id": "c1cfa84e-ef89-4166-8d88-f450d8069073",
"name": "Convert to PDF",
"type": "n8n-nodes-base.convertToFile",
"position": [
-224,
192
],
"parameters": {
"options": {
"fileName": "=Tax_Summary_{{ $now.format('yyyy-MM') }}.pdf"
},
"operation": "html"
},
"typeVersion": 1.1
},
{
"id": "349023f1-68da-4e79-851c-fe19dcf2b2fd",
"name": "Send to Tax Agent",
"type": "n8n-nodes-base.gmail",
"position": [
32,
192
],
"parameters": {
"sendTo": "={{ $('Workflow Configuration').first().json.taxAgentEmail }}",
"message": "Please find attached the monthly revenue and payroll tax summary for your review.",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{}
]
}
},
"subject": "=Monthly Tax Summary - {{ $now.format('MMMM yyyy') }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "4f22b080-8b6f-4c61-8c65-af2ea53474f3",
"name": "Store in Compliance Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
32,
400
],
"parameters": {
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.complianceSheetId }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "0f462947-a22f-441c-ba81-91e6af926bee",
"name": "Archive to Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
48,
608
],
"parameters": {
"name": "={{ 'Tax_Summary_' + $now.format('yyyy-MM') + '.pdf' }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.driveFolderId }}"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "7ba8b7f9-7c53-4cfd-b3b1-d7b3a12e5833",
"name": "AI Tax Compliance Analyst",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-800,
320
],
"parameters": {
"text": "=Analyze the following tax data: {{ JSON.stringify($json) }}",
"options": {
"systemMessage": "You are a tax compliance analyst specializing in payroll and revenue tax analysis.\n\nYour task is to:\n1. Review the provided revenue, payroll, and tax withholding data\n2. Calculate the reporting period as the current month and year\n3. Verify all tax calculations are accurate\n4. Assess compliance risks based on tax rates and withholding amounts\n5. Provide actionable recommendations for tax optimization and compliance\n6. Generate compliance notes highlighting any concerns or anomalies\n\nReturn your analysis in the structured JSON format with all required fields populated."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "ca181bce-a91d-4077-a2c2-11081b86c76e",
"name": "OpenAI GPT-4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-800,
544
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "22f655d5-8a62-412d-8431-e59cf7ed5a22",
"name": "Tax Analysis Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-672,
544
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"period\": {\n \"type\": \"string\"\n },\n \"totalRevenue\": {\n \"type\": \"number\"\n },\n \"totalPayroll\": {\n \"type\": \"number\"\n },\n \"federalTax\": {\n \"type\": \"number\"\n },\n \"stateTax\": {\n \"type\": \"number\"\n },\n \"socialSecurity\": {\n \"type\": \"number\"\n },\n \"medicare\": {\n \"type\": \"number\"\n },\n \"totalWithholding\": {\n \"type\": \"number\"\n },\n \"netPayroll\": {\n \"type\": \"number\"\n },\n \"complianceNotes\": {\n \"type\": \"string\"\n },\n \"riskAssessment\": {\n \"type\": \"string\"\n },\n \"recommendations\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "49019c09-489e-432b-b6b8-9a501d69a84a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1104,
-176
],
"parameters": {
"color": 5,
"width": 592,
"height": 272,
"content": "## Prerequisites\nPayroll data source; OpenAI API key; Google Sheets and Drive accounts \n## Use Cases\nHR departments automating monthly payroll processing and tax compliance; \n## Customization\nAdjust withholding rules by jurisdiction \n## Benefits\nEliminates manual payroll calculations "
},
"typeVersion": 1
},
{
"id": "9b88f293-02f1-489c-ad2c-7d3920d23bfe",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1472,
-128
],
"parameters": {
"width": 336,
"height": 240,
"content": "## Setup Steps\n1. Connect payroll data source and configure revenue fetch parameters.\n2. Set up OpenAI GPT-4 API for tax withholding logic and compliance analysis.\n3. Configure Google Sheets for audit storage and Google Drive for long-term archiving.\n4. Define tax withholding rules, compliance thresholds, and tax agent.\n"
},
"typeVersion": 1
},
{
"id": "55167f2e-9b2a-4679-8d8f-efcfbce9ff4f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2144,
-144
],
"parameters": {
"width": 656,
"height": 256,
"content": "## How It Works\nAutomates monthly payroll processing and tax compliance by calculating employee payroll, applying accurate withholdings, generating comprehensive tax summaries, and producing compliance-ready documentation. The system fetches revenue and payroll data, performs detailed payroll calculations, applies AI-driven tax withholding rules, aggregates tax summary information, and verifies compliance using GPT-4 tax analysis. It generates structured HTML documents, converts them to PDF format, stores records in Google Sheets for audit trails, archives files to Google Drive, and sends summaries to tax agents. Designed for HR departments and payroll processing teams seeking automated, accurate, and fully compliant payroll management."
},
"typeVersion": 1
},
{
"id": "04f9ebcc-7580-4175-9656-c780f27f84b3",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
128
],
"parameters": {
"color": 7,
"width": 1056,
"height": 640,
"content": "## Verify Compliance, Archives to Drive & Notifies Agents\nWhat: Uses GPT-4 tax analysis to validate payroll against compliance.\nWhy: Confirms adherence to employment tax laws and identifies compliance gaps "
},
"typeVersion": 1
},
{
"id": "8dfe1799-a4de-4645-9354-2bb928848f39",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
128
],
"parameters": {
"color": 7,
"width": 656,
"height": 320,
"content": "## Calculate Payroll\nWhat: Applies payroll formulas with detailed reasoning for gross pay.\nWhy: Delivers accurate, documented payroll "
},
"typeVersion": 1
},
{
"id": "74c9a9a6-00fd-4149-b848-58657606f4eb",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2192,
128
],
"parameters": {
"color": 7,
"width": 640,
"height": 288,
"content": "## Fetch Revenue Data\nWhat: Retrieves employee compensation and revenue information from source systems.\nWhy: Ensures payroll calculations are based on current "
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "a5241005-e991-42d8-b7f8-2006752921e8",
"connections": {
"OpenAI GPT-4": {
"ai_languageModel": [
[
{
"node": "AI Tax Compliance Analyst",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Convert to PDF": {
"main": [
[
{
"node": "Send to Tax Agent",
"type": "main",
"index": 0
},
{
"node": "Store in Compliance Sheet",
"type": "main",
"index": 0
},
{
"node": "Archive to Drive",
"type": "main",
"index": 0
}
]
]
},
"Monthly Trigger": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Calculate Payroll": {
"main": [
[
{
"node": "Apply Tax Withholding",
"type": "main",
"index": 0
}
]
]
},
"Fetch Revenue Data": {
"main": [
[
{
"node": "Calculate Payroll",
"type": "main",
"index": 0
}
]
]
},
"Aggregate Tax Summary": {
"main": [
[
{
"node": "Generate Summary Document",
"type": "main",
"index": 0
},
{
"node": "AI Tax Compliance Analyst",
"type": "main",
"index": 0
}
]
]
},
"Apply Tax Withholding": {
"main": [
[
{
"node": "Aggregate Tax Summary",
"type": "main",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Fetch Revenue Data",
"type": "main",
"index": 0
}
]
]
},
"AI Tax Compliance Analyst": {
"main": [
[
{
"node": "Generate Summary Document",
"type": "main",
"index": 0
}
]
]
},
"Generate Summary Document": {
"main": [
[
{
"node": "Convert to PDF",
"type": "main",
"index": 0
}
]
]
},
"Tax Analysis Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Tax Compliance Analyst",
"type": "ai_outputParser",
"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.
gmailOAuth2googleDriveOAuth2ApigoogleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automates monthly payroll processing and tax compliance by calculating employee payroll, applying accurate withholdings, generating comprehensive tax summaries, and producing compliance-ready documentation. The system fetches revenue and payroll data, performs detailed payroll…
Source: https://n8n.io/workflows/12034/ — 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 n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea
Created by: Peyton Leveillee Last updated: October 2025
The Multi-Model Agency Content Engine is a high-performance editorial system designed for agencies. It solves the "blank page" problem by alternating between real-world social proof and strategic expe
This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p