Automated Raw Materials Inventory Management with Google Sheets, Supabase, and Gmail using n8n Webhooks

Description
What Problem Does This Solve? 🛠️
This workflow automates raw materials inventory management for businesses, eliminating manual stock updates, delayed material issue approvals, and missed low stock alerts. It ensures real-time stock tracking, streamlined approvals, and timely notifications.
Target audience : Small to medium-sized businesses, inventory managers, and n8n users familiar with Google Sheets, Supabase, and Gmail integrations.
What Does It Do? 🌟
- Receives raw material data and issue requests via form submissions.
- Updates stock levels in Google Sheets and Supabase.
- Manages approvals for material issue requests with email notifications.
- Detects low stock levels and sends alerts via Gmail.
- Maintains data consistency across Google Sheets and Supabase.
Key Features
- Real-time stock updates from form submissions.
- Automated approval process for material issuance.
- Low stock detection with Gmail notifications.
- Dual storage in Google Sheets and Supabase for redundancy.
- Error handling for robust data validation.
Setup Instructions
Prerequisites
-
n8n Instance : Self-hosted or cloud n8n instance.
-
API Credentials :
-
Google Sheets API : Credentials from Google Cloud Console with Sheets scope, stored in n8n credentials.
-
Supabase API : API key and URL from Supabase project, stored in n8n credentials (do not hardcode in nodes).
-
Gmail API : Credentials from Google Cloud Console with Gmail scope.
-
Forms : A form (eg, Google Form) to submit raw material receipts and issue requests, configured to send data to n8n webhooks.
Installation Steps
-
Import the Workflow :
- Copy the workflow JSON from the “Template Code” section (to be provided).
- Import it into n8n via “Import from File” or “Import from URL”.
-
Configure Credentials :
- Add API credentials in n8n's Credentials section for Google Sheets, Supabase, and Gmail.
- Assign credentials to respective nodes. For example:
- In the Append Raw Materials node, use Google Sheets credentials:
{{ $credentials.GoogleSheets }} .
- In the Current Stock Update node, use Supabase credentials:
{{ $credentials.Supabase }} .
- In the Send Low Stock Email Alert node, use Gmail credentials.
-
Set Up Nodes :
-
Webhook Nodes (Receive Raw Materials Webhook, Receive Material Issue Webhook) : Configure webhook URLs and link them to your form submissions.
-
Approval Email (Send Approval Request) : Customize the HTML email template if needed.
-
Low Stock Alerts (Send Low Stock Email Alert, Send Low Stock Email After Issue) : Configure recipient email addresses.
-
Test the Workflow :
- Submit a test form for raw material receipt and verify stock updates in Google Sheets/Supabase.
- Submit a material issue request, approve/reject it, and confirm stock updates and notifications.
How It Works
High-Level Steps
-
Receive Raw Materials : Processes form submissions for raw material receipts.
-
Update Stock : Updates stock levels in Google Sheets and Supabase.
-
Handle Issue Requests : Processes material issue requests via forms.
-
Manage Approvals : Sends approval requests and processes decisions.
-
Monitor Stock Levels : Detects low stock and sends Gmail alerts.
Detailed Descriptions
Detailed node descriptions are available in the sticky notes within the workflow screenshot (to be provided). Below is a summary of key actions.
Node Names and Actions
Raw Materials Receiving and Stock Update
-
Receive Raw Materials Webhook : Receives raw material data from a form submission.
-
Standardize Raw Material Data : Maps form data into a consistent format.
-
Calculate Total Price : Computes
Total Price (Quantity Received * Unit Price).
-
Append Raw Materials : Records receipt in Google Sheets.
-
Check Quantity Received Validity : Ensures
Quantity Received is valid.
-
Lookup Existing Stock : Retrieves current stock for the
Product ID .
-
Check If Product Exists : Branches based on
Product ID existence.
-
Calculate Updated Current Stock : Adds
Quantity Received to stock (True branch).
-
Update Current Stock : Updates stock in Google Sheets (True branch).
-
Retrieve Updated Stock for Check : Retrieves updated stock for low stock check.
-
Detect Low Stock Level : Flags if stock is below minimum.
-
Trigger Low Stock Alert : Triggers email if stock is low.
-
Send Low Stock Email Alert : Sends low stock alert via Gmail.
-
Add New Product to Stock : Adds new product to stock (False branch).
-
Current Stock Update : Updates Supabase
Current Stock table.
-
New Row Current Stock : Inserts new product into Supabase.
-
Search Current Stock : Retrieves Supabase stock records.
-
New Record Raw : Inserts raw material record into Supabase.
-
Format Response : Removes duplicates from Supabase response.
-
Combine Stock Update Branches : Merges branches for existing/new products.
Material Issue Request and Approval
-
Receive Material Issue Webhook : Receives issue request from a form submission.
-
Standardize Data : Normalizes request data and adds
Approval Link .
-
Validate Issue Request Data : Ensures
Quantity Requested is valid.
-
Verify Requested Quantity : Validates
Product ID and Submission ID .
-
Append Material Request : Records request in Google Sheets.
-
Check Available Stock for Issue : Retrieves current stock for the request.
-
Prepare Approval : Checks stock sufficiency for the request.
-
Send Approval Request : Emails approver with Approve/Reject options.
-
Receive Approval Response : Captures approver's decision via webhook.
-
Format Approval Response : Processes approval data with
Approval Date .
-
Verify Approval Data : Validates the approval response.
-
Retrieve Issue Request Details : Retrieves original request from Google Sheets.
-
Process Approval Decision : Branches based on approval action.
-
Get Stock for Issue Update : Retrieves stock before update (Approved).
-
Deduct Issued Stock : Reduces stock by
Approved Quantity (Approved).
-
Update Stock After Issue : Stock updates in Google Sheets (Approved).
-
Retrieve Stock After Issue : Retrieves updated stock for low stock check.
-
Detect Low Stock After Issue : Flags low stock after issuance.
-
Trigger Low Stock Alert After Issue : Triggers email if stock is low.
-
Send Low Stock Email After Issue : Sends low stock alert via Gmail.
-
Update Issue Request Status : Updates request status (Approved/Rejected).
-
Combine Stock Lookup Results : Merges stock lookup branches.
-
Create Record Issue : Inserts issue request into Supabase.
-
Search Stock by Product ID : Retrieves Supabase stock records.
-
Issues Table Update : Updates Supabase
Materials Issued table.
-
Update Current Stock : Updates Supabase stock after issuance.
-
Combine Issue Lookup Branches : Merges issue lookup branches.
-
Search Issue by Submission ID : Retrieves Supabase issue records.
Customization Tips
- **Expand Storage Options **: Add nodes to store data in other databases (eg, Airtable) alongside Google Sheets and Supabase.
- **Modify Approval Email **: Update the Send Approval Request node to customize the HTML email template (eg, adjust styling or add branding).
- **Alternative Notifications **: Add nodes to send low stock alerts via other platforms (eg, Slack or Telegram).
- **Adjust Low Stock Threshold **: Modify the Detect Low Stock Level node to change the
Minimum Stock Level (default: 50).!