Odoo
Connect Odoo with Webflow so website activity moves into your back-office workflows.
Connect Odoo with Webflow so website activity moves into your back-office workflows.
Webflow forms collect submissions and email them to your team, but the pipeline stops there. Nothing assigns the lead to a salesperson or reserves stock for the products on your storefront. Teams that run operations in Odoo end up retyping that data by hand.
Connecting Odoo to Webflow removes the manual step. A Webflow form submission becomes an Odoo CRM lead, and a Webflow Ecommerce order becomes an Odoo sales order. Odoo product records populate the Webflow CMS. You can start with an Odoo email alias or Live Chat widget and grow into automation tools or the APIs.
Marketing and sales operations teams use this pairing to shorten lead response time, while ecommerce managers keep Odoo inventory and Webflow orders in step. Agencies and Odoo implementation partners use it to hand clients a site marketers can edit without touching the ERP.
How to integrate Odoo with Webflow
What is Odoo? Odoo describes itself as "a suite of open source business apps that cover all your company needs" and names CRM, eCommerce, accounting, inventory, point of sale, and project management among them. It ships as an open-source Community edition under LGPLv3 and a licensed Enterprise edition. Odoo Online is Odoo's managed cloud, while Odoo.sh and your own servers run Enterprise with custom modules under the Custom plan, per Odoo's pricing page. Community is free, and you host it yourself.

Teams pair Odoo with Webflow when the marketing site and the back office need to share records. The Webflow Marketplace lists no Odoo app, and a community answer on the Odoo forum says "there’s no official integration yet." For ecommerce sync on Odoo 16 through 18, the Odoo Apps Store lists a third-party connector.
The Odoo-Webflow integration supports three approaches. Odoo embeds and email aliases route live chat, embedded forms, and form notifications into Odoo without code. Automation platforms such as Zapier, Make, n8n, and viaSocket push Webflow form submissions and orders into Odoo records with prebuilt connectors. The Webflow and Odoo APIs give you full control over two-way sync of leads, orders, and products, and they require server-side development. Most implementations combine two of these methods.
Embed Odoo widgets and route form notifications without code
Odoo publishes a copyable Live Chat snippet and documents embedding its forms in an iframe. Webflow forms send email notifications, and Odoo turns email sent to an alias into leads or tickets. These methods need no external API access, so Odoo's Custom-plan requirement for the API does not apply to them. Adding custom code to the head tag or a Code Embed element needs a Core, Growth, Agency, or Freelancer Workspace, or an active Site plan.
Add the Odoo Live Chat widget with site-wide custom code
The Live Chat channel form in Odoo includes a Widget tab with a JavaScript snippet. Odoo's Live Chat documentation says to copy it and "paste the code into the <head> tag on the site." Sales teams use the widget to qualify leads, and support teams use it to answer questions.
To add the widget:
- In Odoo, open the Live Chat app and hover the channel card. Click the vertical ellipsis icon and choose Configure Channel.
- Open the Widget tab and click the first (copy) icon.
- In Webflow, go to Site settings > Custom code. Paste the snippet into the Head code section.
- Save your changes and publish the site.
Once the widget is live, the chatbot Create Lead step creates a CRM lead and can assign it to a Sales Team. Operators can also type the /lead operator command in a chat to create a lead whose Source reads Livechat.
To show the widget on a single page only, open that page's Page settings. Paste the same snippet into its custom code.
Embed an Odoo form with a Code Embed element
Odoo's 18.0 building blocks documentation states, "You can display an Odoo contact form on another website using an iframe." By default the form emails each submission. Depending on the apps installed, you can switch its action to Create an Opportunity, Create a Ticket, Apply for a Job, or Subscribe to Newsletter. Use a Code Embed element to place the Odoo iframe on any page. This path suits teams that want Odoo's helpdesk or newsletter logic without any middleware.
To embed the form:
- In the Odoo Website app, build a page with a form block and set its action, for example Create an Opportunity.
- Remove the header and footer designs from that Odoo page so only the form remains.
- In Webflow, drag a Code Embed element onto your page.
- Paste an
<iframe>tag pointing at the Odoo page URL, save the embed, and publish.
The embedded form posts straight to Odoo, so submissions never appear under Site settings > Forms in Webflow. Keep a native Webflow form on the page if you also want Webflow's submission log.
Send Webflow form notifications to an Odoo email alias
A sales team's email alias creates a lead or opportunity for that team from each message it receives. On Odoo Online and Odoo.sh, the alias domain is preconfigured, so a database at https://mydatabase.odoo.com can receive mail at sales@mydatabase.odoo.com right away. A self-hosted database needs its incoming mail set up first. Submissions still appear in your Webflow form log.
To route notifications:
- In Odoo, go to CRM > Configuration > Sales Teams, open a team, and fill in the Email Alias field.
- In Webflow, select the form, open its settings, and under Send to add the alias as an email notification recipient.
- Submit a test entry and confirm a record appears in that team's pipeline.
Odoo puts the email subject in the record title and posts the message in the chatter. It fills the Email field from the sender, and Webflow sends notifications from its own no-reply address, so the visitor's email reaches Odoo inside the message body. With the CRM Leads feature turned off, the message creates an opportunity instead of a lead, per the email lead documentation. A Helpdesk team alias works the same way and uses the subject as the ticket title.
Plan limits decide whether this route works at all. The free Starter Site plan caps notifications at five recipients, all of whom must be Workspace members, and an Odoo alias is not a Workspace member. Starter sites also stop at 50 lifetime form submissions, while all paid Site plans allow unlimited submissions, per the form submissions documentation.
Link Webflow buttons to Odoo booking and event pages
Odoo Appointments and Odoo Events generate public URLs you can drop into any Webflow button or navigation link, with no embed code. When you set up an appointment type, Odoo's Appointments docs say you can "create new opportunities with information from new bookings." Event registration pages accept sign-ups and ticket payments on Odoo's side.
To link a booking or registration page:
- For appointments, open the Odoo Calendar app and click Share. Choose specific slots and click Copy Link.
- For events, enable Online Ticketing in the Registration section of Events > Configuration > Settings. Then publish the event by toggling it to Published.
- In Webflow, select a button, set its link to the copied URL, and publish.
The Odoo customer portal at /my works the same way for post-purchase links, where customers view and pay orders and invoices.
Install the third-party Webflow E-commerce Connector
The third-party Webflow E-commerce Connector by Yindustries Ltd lists Odoo 16, 17, and 18. It syncs products and variants from Webflow into Odoo, keeps stock levels in step, and imports Webflow orders as Odoo sales orders with the customer created automatically. Its listing marks webhook support as coming soon. The listing names Odoo Online, Odoo.sh, and On Premise under availability, but Odoo's Odoo Online documentation says Odoo Online "is incompatible with custom modules or modules from the Odoo Apps Store". Confirm hosting with the publisher before you buy. This connector keeps checkout in Webflow.
Connect with Zapier, Make, or n8n
Zapier, Make, n8n, and viaSocket each offer a Webflow connector and an Odoo connector, so a Webflow form submission can become an Odoo lead without custom code. Zapier also publishes a ready-made template for that flow. Every one of them calls Odoo's external API, and Odoo's external API documentation says that access is "only available on Custom Odoo pricing plans" and "not available on One App Free or Standard plans." That rule covers Odoo Online, Odoo.sh, and self-hosted Enterprise. Community edition carries no Odoo subscription, and the JSON-2 endpoint ships in its open-source code.
To connect through Zapier:
- In Odoo, go to Preferences > Account Security > New API Key. Set a description and duration, then copy the key. Odoo caps a key's lifetime at three months and shows the value only once, so plan to rotate it.
- Submit your Webflow form at least once. Zapier needs an existing submission to connect the form.
- Open Zapier's Odoo lead template and connect both accounts.
- Map the Webflow form fields to the Odoo lead fields and turn the Zap on.
Each platform exposes different Webflow and Odoo modules:
- Zapier, Webflow to Odoo: The Webflow New Form Submission, New Order, or Updated Order trigger feeds Odoo CRM Create Lead or Find Contact. Zapier's Odoo CRM app works with databases hosted at odoo.com.
- Zapier, Odoo to Webflow: The Odoo CRM New Lead trigger feeds Webflow Create Item or Create Live Item. For self-hosted databases, the Odoo ERP Self Hosted app adds Create Product, Create Project Task, and Create Record.
- Make: A Webflow Watch Events trigger starts a scenario, and Odoo Create a Lead, Create an Inventory, or Make an API Call writes the record. For the reverse direction, a scheduled Odoo List Leads module feeds Webflow Create an Item and Publish an Item. Make's Odoo app docs require an API key on Odoo 14 and later.
- n8n: The Webflow Trigger node feeds the Odoo node, which covers Contact, Opportunity, Note, and Custom Resource. Version 2 of the node calls the JSON-2 endpoint on Odoo 19 and later and falls back to
/jsonrpcfor Odoo 14 to 18, per n8n source code. The Odoo credential docs recommend an API key over a password. - viaSocket: viaSocket pairs a Webflow New Form Submission trigger with Odoo actions such as Add New Lead and Create Sales Opportunity.
Pick the platform your team already runs, because the Odoo plan requirement is the same for all of them.
Build with the Webflow and Odoo APIs
Custom middleware can deduplicate records and map order lines, and it gives you control over product sync beyond the prebuilt templates. It requires a server or serverless function you control. For Odoo 19 and later, use the JSON-2 API: POST /json/2/{model}/{method} with an API key as a bearer token and named JSON arguments. Keep every Odoo call on a server, because browser code would expose the API key to every visitor.
JSON-2 is new in Odoo 19.0, and older databases only offer XML-RPC and JSON-RPC. Odoo's RPC API documentation schedules both for removal in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027). Build new Odoo calls on JSON-2 wherever the database supports it.
The build uses four interfaces, one on the Odoo side and three on Webflow's:
- Odoo JSON-2 API: It runs ORM methods such as
create,write, andsearch_readon any model your API user can access, includingcrm.lead,sale.order, andproduct.product. - Webflow Data API: The Webflow API covers CMS collections, ecommerce products, orders, inventory, and form submissions.
- Webflow webhooks: Webhook registrations send real-time events such as
form_submission,ecomm_new_order, andcollection_item_changedto a URL you choose. - Webflow site tokens: Each site allows up to 5 site tokens, and a token expires after 365 consecutive days of inactivity.
Generate the Webflow token under Site settings > Apps & integrations > API access > Generate API token and choose its scopes. Pair it with the Odoo API key from the automation section, and keep both on the server, out of client code and version control.
Create Odoo CRM leads from Webflow form submissions
A form_submission webhook delivers each Webflow submission to your server. Your handler verifies the signature, maps fields, and calls crm.lead/create. The payload includes name (the form name), siteId, formId, and formElementId. It also carries submittedAt and a data object of submitted field values. Register the webhook through the API rather than the dashboard: our webhooks guide, linked as this page's tutorial, says dashboard-created webhooks "will not include the request headers needed to validate request signatures".
To implement this:
- Register the webhook with a token that has the
sites:writescope:
POST https://api.webflow.com/v2/sites/{site_id}/webhooks
Authorization: Bearer {WEBFLOW_TOKEN}
Content-Type: application/json
{
"triggerType": "form_submission",
"url": "https://your-server.example.com/webhooks/webflow-form"
}- On each delivery, compute an HMAC SHA-256 over
timestamp + ":" + JSON.stringify(request_body)with the webhook's signing key and compare it tox-webflow-signature. Reject requests whosex-webflow-timestampis older than 5 minutes. - Map
payload.datafields to Odoo fields (name,email_from,phone,description) and create the lead. JSON-2 only takes named arguments, so the new records go invals_list, the parameter name of Odoo'screatemethod. Add anX-Odoo-Databaseheader when one server hosts several databases:
POST https://{your-odoo-host}/json/2/crm.lead/create
Authorization: bearer {API_KEY}
Content-Type: application/json
{
"vals_list": [
{
"name": "Lead from Webflow: Contact Form",
"email_from": "user@example.com",
"phone": "+1-555-0100",
"description": "Message body here"
}
]
}- Return HTTP 200. Any other status triggers up to 3 retries at 10-minute intervals.
Many2one fields such as user_id and team_id take the database ID of the related record, per Odoo's ORM reference, so look the ID up first, for example with /json/2/res.users/search_read for user_id. The payload.data keys match your Webflow form field names, so renaming a field in Webflow breaks the mapping.
Turn Webflow Ecommerce orders into Odoo sales orders
The ecomm_new_order webhook payload includes orderId and a customerInfo object holding fullName and email. It also carries a purchasedItems array with variantSKU on each line and a totals object. Odoo needs integer IDs for the partner and each product before it accepts the order, so plan on two lookups before the create call. Checkout stays in Webflow Ecommerce through Stripe or PayPal, and Odoo takes over fulfillment and invoicing.
To implement this:
- Register an
ecomm_new_orderwebhook the same way as above. Change onlytriggerTypeandurl. - Resolve or create the customer with
POST /json/2/res.partner/search_readand a domain of[["email", "=", "customer@example.com"]]. - Look up each line's product with
POST /json/2/product.product/search_readand a domain of[["default_code", "=", "SKU-123"]], matching Webflow'svariantSKUagainst Odoo'sdefault_code(Internal Reference). - Create the order with line items as ORM command triples:
POST https://{your-odoo-host}/json/2/sale.order/create
Authorization: bearer {API_KEY}
Content-Type: application/json
{
"vals_list": [
{
"partner_id": 42,
"order_line": [
[0, 0, {"product_id": 17, "product_uom_qty": 2, "price_unit": 29.99}]
]
}
]
}The [0, 0, {values}] triple is the ORM create command. Odoo's ORM reference says RPC callers must write that literal three-element form, because the Python command helpers are not available over RPC. After Odoo confirms delivery, call POST /v2/sites/{site_id}/orders/{order_id}/fulfill to mark the Webflow order fulfilled, per the Fulfill Order reference.
Sync Odoo products into the Webflow CMS
An automation rule can send each Odoo product change to a server that creates or updates a Webflow catalog or spec-sheet collection that marketers edit visually. An automation rule with the Send Webhook Notification action sends a POST request with the values of selected fields to a URL. Odoo documents building these rules in Studio, which Odoo's pricing page lists in the Custom plan. The alternative is a scheduled action that polls product.template for records changed since the last run.
To implement this:
- In Odoo, open Studio on a product form and click Automations, then New. Set the trigger to On create and edit and pick the fields that should fire it. Add a Send Webhook Notification action with your server URL and the fields to send.
- On your server, create the CMS item with the Create Item endpoint.
fieldData.nameandfieldData.slugare required, and a new item defaults toisDraft: true:
POST https://api.webflow.com/v2/collections/{collection_id}/items
Authorization: Bearer {WEBFLOW_TOKEN}
Content-Type: application/json
{ "fieldData": { "name": "Product Name", "slug": "product-name" } }- Publish the item, batching item IDs where possible:
POST https://api.webflow.com/v2/collections/{collection_id}/items/publish
Authorization: Bearer {WEBFLOW_TOKEN}
Content-Type: application/json
{ "itemIds": ["{item_id}"] }- For updates, send
PATCH /v2/collections/{collection_id}/items/{item_id}for one item. For batches, sendPATCH /v2/collections/{collection_id}/itemswith up to 100 items per request.
To skip the separate publish call, post to /v2/collections/{collection_id}/items/live instead, which publishes immediately, per the live item reference. Store the Webflow item ID against each Odoo product so later updates PATCH instead of duplicating. A Collection List bound to that collection then renders the catalog on any page. If you poll with a scheduled action instead, the Odoo.sh docs warn not to expect any scheduled action to run more often than every five minutes on that platform.
What you can build with the Odoo Webflow integration
Records can move between the website and ERP without inbox-based copying. The following examples show how teams apply the integration.
- B2B lead capture into Odoo CRM: A demo-request form on a Webflow landing page creates an assigned
crm.leadthrough Zapier or a webhook receiver, so sales works the lead in its pipeline without retyping it. - Webflow storefront with Odoo fulfillment: A Webflow Ecommerce shop takes payment through Stripe. Each
ecomm_new_orderwebhook creates an Odoosale.orderwith matched partner and product lines, and Odoo then handles fulfillment, invoicing, and the customer portal. - Real-time partner and product directories: French glass-reuse company Bout' à Bout' runs a Webflow site synced with Odoo ERP in real time, according to agency JoliPixel. The company counts more than 300 partners and more than 300 collection points, and its form submissions, collection-point data, and eligible-product information sync automatically.
- Demo and event booking that lands in the pipeline: A Webflow pricing page links its Book a demo button to an Odoo Appointments page whose appointment type creates an opportunity from each booking. A webinar page links to a published Odoo Events registration page with online ticketing enabled.
If you need to deduplicate contacts or publish large catalogs on a schedule, the API path covers those cases. Start with our CMS API guide for the Webflow half, then connect the Webflow MCP server to inspect and adjust the synced collections from an AI client.
Frequently asked questions
No. The Webflow Marketplace lists no Odoo app. You connect the two through an Odoo email alias or embed, an automation platform such as Zapier, Make, n8n, or viaSocket, or the Webflow and Odoo APIs. A third-party module on the Odoo Apps Store, Webflow E-commerce Connector by Yindustries Ltd, syncs products and imports orders on Odoo 16 to 18.
Odoo's external API documentation says API access is only available on Custom pricing plans, not on One App Free or Standard. That applies to Odoo Online, Odoo.sh, and self-hosted Enterprise alike. A self-hosted Community database has no Odoo subscription. Without API access, use the no-code routes: an Odoo email alias, an embedded Odoo form, the Live Chat widget, or links to Odoo booking pages.
Yes. Add a sales team's Odoo email alias as a notification recipient on the Webflow form, and Odoo creates a lead, or an opportunity when the Leads feature is off, from each notification. The free Starter Site plan only notifies Workspace members, so this route needs a paid Site plan. Webflow sends the notification from its own no-reply address, so the visitor's email and any custom fields arrive in the message body rather than in mapped lead fields.
Build on Odoo's JSON-2 API, which sends
POST /json/2/{model}/{method}requests with an API key as a bearer token and is available from Odoo 19.0. Odoo has scheduled the XML-RPC and JSON-RPC endpoints (/xmlrpc,/xmlrpc/2, and/jsonrpc) for removal in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027). Databases on Odoo 18 or earlier only have those older RPC APIs, so plan the migration when you upgrade.No. Browser code would expose your Odoo API key to every visitor. Run the Odoo calls on a server you control: register a
form_submissionorecomm_new_orderwebhook with the Webflow Data API, and have that server verify the signature and create the Odoo record.
Description
Send Webflow form submissions and orders into Odoo through an automation platform or Odoo's JSON-2 API, or start without code by routing form notifications to an Odoo email alias.
This integration page is provided for informational and convenience purposes only.
jobber
Connect Jobber with Webflow to capture service leads on your site and route them straight into scheduling and quoting workflows.

Recruit CRM
Connect RecruitCRM's applicant tracking system with Webflow through automation platforms like Zapier or Make.
HighLevel
Connect HighLevel, an all-in-one CRM and marketing automation platform, with Webflow to embed forms, chat widgets, and booking calendars while routing leads into pipelines and follow-up sequences.

LeadConnector
Connect LeadConnector, a white-label CRM and marketing automation platform, with Webflow so form submissions and booking calendars feed automated workflows.
Microsoft Dynamics CRM
Connect Microsoft Dynamics CRM with Webflow to turn form submissions into Dynamics 365 leads within seconds of the click.
HoneyBook
Connect HoneyBook with Webflow to capture leads on your site and route them into a client pipeline that handles proposals, contracts, scheduling, and payments.
Bitrix24
Connect Bitrix24, a CRM and workspace platform, with Webflow to turn form submissions, chat, and callbacks into CRM leads and deals.
Copper CRM
Bullhorn CRM
Connect Bullhorn CRM with Webflow to sync job listings, capture candidate applications, and move staffing data between your website and your ATS.


