Submit and approve employee expenses with Odoo, Slack, and Gmail
Ready for 3.0What this workflow does
This workflow has 18 nodes and runs when an HTTP POST request hits its webhook URL. Along the way it connects Odoo, Slack and Gmail.
How it runs
Trigger: When an HTTP POST request hits its webhook URL.
- Validate & Normalize Expense Input (Edit Fields (Set)): sets 10 fields: employeeName, employeeEmail, vendor…
- If: checks a condition and branches into true / false
- Lookup Employee in Odoo (Odoo): work with custom
- Respond 400 - Validation Error (Respond to Webhook): sends the response back to the webhook caller
- If: checks a condition and branches into true / false
- Respond 500 - Processing Error (Respond to Webhook): sends the response back to the webhook caller
- Lookup Expense Category in Odoo (Odoo): work with custom
- Respond 404 - Employee Not Found (Respond to Webhook): sends the response back to the webhook caller
- Create Expense in Odoo (Odoo): create (custom)
- Respond 202 - Expense Submitted (Respond to Webhook): sends the response back to the webhook caller
…plus 6 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (8)
- Webhook
n8n-nodes-base.webhook - Edit Fields (Set)
n8n-nodes-base.set - If
n8n-nodes-base.if - Respond to Webhook
n8n-nodes-base.respondToWebhook - Odoo
n8n-nodes-base.odoo - Slack
n8n-nodes-base.slack - No Operation, do nothing
n8n-nodes-base.noOp - Gmail
n8n-nodes-base.gmail
From the author
Quick overview This workflow receives employee expense submissions via a webhook, validates the payload, creates an expense in Odoo, and immediately acknowledges the request. It then sends a Slack approval form to managers and, based on the decision, updates…