{"product_id":"odoo-expense-approval-workflow-slack-gmail-via-n8n-webhook","title":"Odoo Expense Approval Workflow: Slack + Gmail via n8n Webhook","description":"\u003ch3\u003eRoute Odoo expense approvals automatically—via an n8n Webhook to Slack and Gmail\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow accepts employee expense submissions through a webhook, creates the expense in \u003cstrong\u003eOdoo\u003c\/strong\u003e, then sends a manager approval form in \u003cstrong\u003eSlack\u003c\/strong\u003e. Once a decision is made, it updates the Odoo expense status and notifies the employee via \u003cstrong\u003eGmail\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReceives submissions\u003c\/strong\u003e with a POST webhook and normalizes key fields such as employee, vendor, amount, category, description, and receipt details.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates input\u003c\/strong\u003e and returns a \u003cstrong\u003e400 JSON response\u003c\/strong\u003e when required data is missing or invalid.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eChecks employee records in Odoo\u003c\/strong\u003e using \u003cem\u003ehr.employee\u003c\/em\u003e; if no match is found, it returns a \u003cstrong\u003e404 JSON response\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCreates the expense in Odoo\u003c\/strong\u003e by looking up the expense category in \u003cem\u003eproduct.product\u003c\/em\u003e and creating an \u003cem\u003ehr.expense\u003c\/em\u003e record. It responds with a \u003cstrong\u003e202 JSON\u003c\/strong\u003e payload containing the created expense ID.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSends a Slack approval request\u003c\/strong\u003e to the \u003cstrong\u003e#expense-approvals\u003c\/strong\u003e channel using a custom approval form, waiting up to \u003cstrong\u003etwo days\u003c\/strong\u003e for a manager decision.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpdates status and emails the employee\u003c\/strong\u003e via Gmail:\n    \u003cul\u003e\n      \u003cli\u003eIf approved: updates the Odoo expense state to \u003cstrong\u003eapproved\u003c\/strong\u003e and emails the employee.\u003c\/li\u003e\n      \u003cli\u003eIf refused: marks it as \u003cstrong\u003erefused\u003c\/strong\u003e with the manager comment and emails the employee to resubmit.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eCentralize expense intake from employees into a single webhook endpoint.\u003c\/li\u003e\n  \u003cli\u003eReduce manual back-and-forth by sending approvals directly to a dedicated Slack channel.\u003c\/li\u003e\n  \u003cli\u003eAutomatically keep Odoo \u003cem\u003ehr.expense\u003c\/em\u003e records synchronized with manager decisions.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n webhook workflow\u003c\/strong\u003e with field normalization, validation, and JSON responses (400\/404\/202).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eOdoo integration\u003c\/strong\u003e via nodes for \u003cem\u003ehr.employee\u003c\/em\u003e, \u003cem\u003eproduct.product\u003c\/em\u003e, and \u003cem\u003ehr.expense\u003c\/em\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSlack\u003c\/strong\u003e approval posting to \u003cstrong\u003e#expense-approvals\u003c\/strong\u003e with a wait period for decisions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGmail\u003c\/strong\u003e notifications to employees based on approval outcomes.\u003c\/li\u003e\n  \u003cli\u003eNodes used include: \u003cstrong\u003eif\u003c\/strong\u003e, \u003cstrong\u003eset\u003c\/strong\u003e, \u003cstrong\u003eno op\u003c\/strong\u003e, \u003cstrong\u003eodoo\u003c\/strong\u003e, \u003cstrong\u003egmail\u003c\/strong\u003e, and \u003cstrong\u003eslack\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45862249824435,"sku":"N8N-18315","price":68.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/wsQI6uViCEwEE5mIz0ZSk_iaxKLHDu.png?v=1786957848","url":"https:\/\/buyflowscripts.com\/products\/odoo-expense-approval-workflow-slack-gmail-via-n8n-webhook","provider":"N8N Commerce","version":"1.0","type":"link"}