Automate invoice creation and delivery with Google Sheets, Invoice Ninja and Gmail
⚙️ How It Works
This workflow automates the repetitive task of invoicing, turning a manual process into an efficient, hands-free operation.
✅ Trigger
The workflow is automatically activated when a new row is added or updated in your Google Sheet with the status Ready for Invoice.
🧾 Create Invoice
The workflow sends project data to your invoicing service (e.g., Invoice Ninja) using an HTTP Request node to generate a professional invoice.
📧 Send Email
The generated invoice is attached to an email and sent to the client using the Gmail node.
📝 Update Status
Finally, the workflow updates the Status field in Google Sheet to Invoiced, marking the process complete and recorded.
🛠️ How to Set Up
1. Install the Workflow
- Copy the provided workflow JSON.
- In your n8n instance, go to Workflows > New.
- Click Import from JSON and paste the JSON.
- Save the workflow.
2. Prepare Your Google Sheet
Create a Google Sheet to act as your project database. It must include the following columns:
Ensure the data is accurate and matches your workflow expressions.
3. Configure Credentials
🟡 Google Sheets Trigger & Update Node
- Add your Google Sheets OAuth2 credentials.
- In both the trigger node and update node, select:
- Correct Spreadsheet ID
- Correct Sheet Name
🔵 HTTP Request Node (Invoice API)
- Add your API Key (e.g., from Invoice Ninja) in the request URL.
- Adjust:
- The URL endpoint
- The JSON body
Based on your invoicing service’s API documentation.
🔴 Gmail Node
- Add your Gmail OAuth2 credentials.
4. Customize the Workflow
🔧 HTTP Request Node
- Replace
YOUR_INVOICE_NINJA_API_KEYwith your real API key. - Ensure expressions like
{{ $json['Client Email'] }}match the exact column headers in your Google Sheet.
💌 Gmail Node
- Customize:
- From Email
- Subject
- Email body (HTML or text)
Tailor the content to match your brand and tone.
5. Activate the Workflow
Once everything is configured:
- Click the Inactive toggle (top-right) to activate the workflow.
Now your invoicing process is fully automated!
Automate Invoice Creation and Delivery with Google Sheets, Invoice Ninja, and Gmail
This n8n workflow automates the process of creating and delivering invoices based on new data in a Google Sheet. It streamlines your billing process by automatically generating invoices in Invoice Ninja and sending them via Gmail, ensuring timely and accurate client communication.
What it does
- Monitors Google Sheet: Listens for new or updated rows in a specified Google Sheet.
- Creates Invoice in Invoice Ninja: Uses the data from the Google Sheet to create a new invoice in Invoice Ninja via its API.
- Sends Invoice via Gmail: Delivers the newly created invoice to the client's email address using Gmail.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Account: A running instance of n8n.
- Google Sheets Account: A Google Sheet containing your invoice data (e.g., client name, email, item details, amounts).
- Invoice Ninja Account: An Invoice Ninja account with API access enabled.
- Gmail Account: A Gmail account for sending emails.
- Google Sheets Credentials: Configured Google Sheets OAuth2 credentials in n8n.
- Invoice Ninja API Key: An API key for your Invoice Ninja account.
- Gmail Credentials: Configured Gmail OAuth2 credentials in n8n.
Setup/Usage
- Import the Workflow:
- Copy the provided JSON code.
- In your n8n instance, go to "Workflows" and click "New".
- Click the "Import from JSON" button and paste the workflow JSON.
- Configure Credentials:
- Google Sheets Trigger:
- Click on the "Google Sheets Trigger" node.
- Select or create a new "Google Sheets" credential (OAuth2).
- Specify the "Spreadsheet ID" and "Sheet Name" that the workflow should monitor.
- HTTP Request (Invoice Ninja):
- Click on the "HTTP Request" node.
- Configure the HTTP Request to interact with your Invoice Ninja API. You will need to set the method (likely POST), the URL for creating invoices, and include your Invoice Ninja API key in the headers (e.g.,
X-API-TOKEN). - Map the data from the "Google Sheets Trigger" node to the body of the HTTP request to create the invoice (e.g., client email, item descriptions, quantities, prices).
- Gmail:
- Click on the "Gmail" node.
- Select or create a new "Gmail" credential (OAuth2).
- Configure the "To" field to use the client's email address from the Google Sheet data.
- Set the "Subject" and "Body" of the email. You can include dynamic data from the Invoice Ninja response (e.g., invoice number, a link to the invoice PDF). You might need to add an attachment if Invoice Ninja provides a direct PDF link or generate one.
- Google Sheets Trigger:
- Activate the Workflow:
- Once all credentials and node settings are configured, click the "Activate" toggle in the top right corner of the n8n editor to enable the workflow.
Now, whenever a new row is added or an existing row is updated in your specified Google Sheet, this workflow will automatically create an invoice in Invoice Ninja and send it to the client via Gmail.
Related Templates
Generate song lyrics and music from text prompts using OpenAI and Fal.ai Minimax
Spark your creativity instantly in any chat—turn a simple prompt like "heartbreak ballad" into original, full-length lyrics and a professional AI-generated music track, all without leaving your conversation. 📋 What This Template Does This chat-triggered workflow harnesses AI to generate detailed, genre-matched song lyrics (at least 600 characters) from user messages, then queues them for music synthesis via Fal.ai's minimax-music model. It polls asynchronously until the track is ready, delivering lyrics and audio URL back in chat. Crafts original, structured lyrics with verses, choruses, and bridges using OpenAI Submits to Fal.ai for melody, instrumentation, and vocals aligned to the style Handles long-running generations with smart looping and status checks Returns complete song package (lyrics + audio link) for seamless sharing 🔧 Prerequisites n8n account (self-hosted or cloud with chat integration enabled) OpenAI account with API access for GPT models Fal.ai account for AI music generation 🔑 Required Credentials OpenAI API Setup Go to platform.openai.com → API keys (sidebar) Click "Create new secret key" → Name it (e.g., "n8n Songwriter") Copy the key and add to n8n as "OpenAI API" credential type Test by sending a simple chat completion request Fal.ai HTTP Header Auth Setup Sign up at fal.ai → Dashboard → API Keys Generate a new API key → Copy it In n8n, create "HTTP Header Auth" credential: Name="Fal.ai", Header Name="Authorization", Header Value="Key [Your API Key]" Test with a simple GET to their queue endpoint (e.g., /status) ⚙️ Configuration Steps Import the workflow JSON into your n8n instance Assign OpenAI API credentials to the "OpenAI Chat Model" node Assign Fal.ai HTTP Header Auth to the "Generate Music Track", "Check Generation Status", and "Fetch Final Result" nodes Activate the workflow—chat trigger will appear in your n8n chat interface Test by messaging: "Create an upbeat pop song about road trips" 🎯 Use Cases Content Creators: YouTubers generating custom jingles for videos on the fly, streamlining production from idea to audio export Educators: Music teachers using chat prompts to create era-specific folk tunes for classroom discussions, fostering interactive learning Gift Personalization: Friends crafting anniversary R&B tracks from shared memories via quick chats, delivering emotional audio surprises Artist Brainstorming: Songwriters prototyping hip-hop beats in real-time during sessions, accelerating collaboration and iteration ⚠️ Troubleshooting Invalid JSON from AI Agent: Ensure the system prompt stresses valid JSON; test the agent standalone with a sample query Music Generation Fails (401/403): Verify Fal.ai API key has minimax-music access; check usage quotas in dashboard Status Polling Loops Indefinitely: Bump wait time to 45-60s for complex tracks; inspect fal.ai queue logs for bottlenecks Lyrics Under 600 Characters: Tweak agent prompt to enforce fuller structures like [V1][C][V2][B][C]; verify output length in executions
Synchronizing WooCommerce inventory and creating products with Google Gemini AI and BrowserAct
Synchronize WooCommerce Inventory & Create Products with Gemini AI & BrowserAct This sophisticated n8n template automates WooCommerce inventory management by scraping supplier data, updating existing products, and intelligently creating new ones with AI-formatted descriptions. This workflow is essential for e-commerce operators, dropshippers, and inventory managers who need to ensure their product pricing and stock levels are synchronized with multiple third-party suppliers, minimizing overselling and maximizing profit. --- Self-Hosted Only This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only. --- How it works The workflow is typically run by a Schedule Trigger (though a Manual Trigger is also shown) to check stock automatically. It reads a list of suppliers and their inventory page URLs from a central Google Sheet. The workflow loops through each supplier: A BrowserAct node scrapes the current stock and price data from the supplier's inventory page. A Code node parses this bulk data into individual product items. It then loops through each individual product found. The workflow checks WooCommerce to see if the product already exists based on its name. If the product exists: It proceeds to update the existing product's price and stock quantity. If the product DOES NOT exist: An If node checks if the missing product's category matches a predefined type (optional filtering). If it passes the filter, a second BrowserAct workflow scrapes detailed product attributes from a dedicated product page (e.g., DigiKey). An AI Agent (Gemini) transforms these attributes into a specific, styled HTML table for the product description. Finally, the product is created in WooCommerce with all scraped details and the AI-generated description. Error Handling: Multiple Slack nodes are configured to alert your team immediately if any scraping task fails or if the product update/creation process encounters an issue. Note: This workflow does not support image uploads for new products. To enable this functionality, you must modify both the n8n and BrowserAct workflows. --- Requirements BrowserAct API account for web scraping BrowserAct n8n Community Node -> (n8n Nodes BrowserAct) BrowserAct templates named “WooCommerce Inventory & Stock Synchronization” and “WooCommerce Product Data Reconciliation” Google Sheets credentials for the supplier list WooCommerce credentials for product management Google Gemini account for the AI Agent Slack credentials for error alerts --- Need Help? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates How to Use the BrowserAct N8N Community Node --- Workflow Guidance and Showcase STOP Overselling! Auto-Sync WooCommerce Inventory from ANY Supplier
Tax deadline management & compliance alerts with GPT-4, Google Sheets & Slack
AI-Driven Tax Compliance & Deadline Management System Description Automate tax deadline monitoring with AI-powered insights. This workflow checks your tax calendar daily at 8 AM, uses GPT-4 to analyze upcoming deadlines across multiple jurisdictions, detects overdue and critical items, and sends intelligent alerts via email and Slack only when immediate action is required. Perfect for finance teams and accounting firms who need proactive compliance management without manual tracking. 🏛️🤖📊 Good to Know AI-Powered: GPT-4 provides risk assessment and strategic recommendations Multi-Jurisdiction: Handles Federal, State, and Local tax requirements automatically Smart Alerts: Only notifies executives when deadlines are overdue or critical (≤3 days) Priority Classification: Categorizes deadlines as Overdue, Critical, High, or Medium priority Dual Notifications: Critical alerts to leadership + daily summaries to team channel Complete Audit Trail: Logs all checks and deadlines to Google Sheets for compliance records How It Works Daily Trigger - Runs at 8:00 AM every morning Fetch Data - Pulls tax calendar and company configuration from Google Sheets Analyze Deadlines - Calculates days remaining, filters by jurisdiction/entity type, categorizes by priority AI Analysis - GPT-4 provides strategic insights and risk assessment on upcoming deadlines Smart Routing - Only sends alerts if overdue or critical deadlines exist Critical Alerts - HTML email to executives + Slack alert for urgent items Team Updates - Slack summary to finance channel with all upcoming deadlines Logging - Records compliance check results to Google Sheets for audit trail Requirements Google Sheets Structure Sheet 1: TaxCalendar DeadlineID | DeadlineName | DeadlineDate | Jurisdiction | Category | AssignedTo | IsActive FED-Q1 | Form 1120 Q1 | 2025-04-15 | Federal | Income | John Doe | TRUE Sheet 2: CompanyConfig (single row) Jurisdictions | EntityType | FiscalYearEnd Federal, California | Corporation | 12-31 Sheet 3: ComplianceLog (auto-populated) Date | AlertLevel | TotalUpcoming | CriticalCount | OverdueCount 2025-01-15 | HIGH | 12 | 3 | 1 Credentials Needed Google Sheets - Service Account OAuth2 OpenAI - API Key (GPT-4 access required) SMTP - Email account for sending alerts Slack - Bot Token with chat:write permission Setup Steps Import workflow JSON into n8n Add all 4 credentials Replace these placeholders: YOURTAXCALENDAR_ID - Tax calendar sheet ID YOURCONFIGID - Company config sheet ID YOURLOGID - Compliance log sheet ID C12345678 - Slack channel ID tax@company.com - Sender email cfo@company.com - Recipient email Share all sheets with Google service account email Invite Slack bot to channels Test workflow manually Activate the trigger Customizing This Workflow Change Alert Thresholds: Edit "Analyze Deadlines" node: Critical: Change <= 3 to <= 5 for 5-day warning High: Change <= 7 to <= 14 for 2-week notice Medium: Change <= 30 to <= 60 for 2-month lookout Adjust Schedule: Edit "Daily Tax Check" trigger: Change hour/minute for different run time Add multiple trigger times for tax season (8 AM, 2 PM, 6 PM) Add More Recipients: Edit "Send Email" node: To: cfo@company.com, director@company.com CC: accounting@company.com BCC: archive@company.com Customize Email Design: Edit "Format Email" node to change colors, add logo, or modify layout Add SMS Alerts: Insert Twilio node after "Is Critical" for emergency notifications Integrate Task Management: Add HTTP Request node to create tasks in Asana/Jira for critical deadlines Troubleshooting | Issue | Solution | |-------|----------| | No deadlines found | Check date format (YYYY-MM-DD) and IsActive = TRUE | | AI analysis failed | Verify OpenAI API key and account credits | | Email not sending | Test SMTP credentials and check if critical condition met | | Slack not posting | Invite bot to channel and verify channel ID format | | Permission denied | Share Google Sheets with service account email | 📞 Professional Services Need help with implementation or customization? Our team offers: 🎯 Custom workflow development 🏢 Enterprise deployment support 🎓 Team training sessions 🔧 Ongoing maintenance 📊 Custom reporting & dashboards 🔗 Additional API integrations Discover more workflows – Get in touch with us