Documentation
Docs
Learn
Release Notes
  • English
  • Українська
Docs
Learn
Release Notes
  • English
  • Українська
  • Getting Started

    • ConnectiveOne Documentation
    • Client Portal (support)
    • About this documentation
    • Editorial policy
    • Security and privacy
    • Support and service status
  • Channel Configuration

    • Channels

      • Connect communication channels to ConnectiveOne
      • Explanations

        • What is ConnectiveOne Widget
        • Widget JavaScript API
      • Instructions

        • How to Configure IP Blocking Message?
        • How to Configure Widget in Settings
        • How to Connect Facebook Messenger and Instagram to ConnectiveOne
        • How to Connect Gmail to ConnectiveOne
        • How to Connect Outlook to ConnectiveOne
        • How to Connect Telegram to ConnectiveOne
        • How to Connect Numbered Viber, Telegram, and WhatsApp via e-chat
        • How to Connect Viber to ConnectiveOne
        • How to Connect WhatsApp to ConnectiveOne
        • How to Customize Widget Colors
        • How to Manage Widget from Website
        • How to Pass Parameters from Website to Scenario
        • How to Configure Sending SMS via Alpha SMS
        • How to Configure Sending Viber/SMS via Infobip
        • How to Connect Widget to Website
        • Telephony

          • How to configure a telephony channel
          • How to configure webhook enrichment
        • How to Use Custom Code for Widget
        • How to Work with Widget on SPA Applications
  • Request Processing

    • Operator Panel (OperatorLine)

      • Operator — OperatorLine Scenarios Hub
      • Supervisor — OperatorLine Scenarios Hub
      • Configure Operator Panel for a support team
      • Integrator — Operator Panel Hub for OperatorLine
      • Explanations

        • About Processing Requests in ConnectiveOne
        • What Are Filters and Why You Need Them
        • Knowledge base sources in chat (CITATIONS block)
        • About Auto-Distribution of Dialogs Between Operators
        • About Automatic Connection of Free Operator to New Dialog
        • Instagram Content Display in Chats
        • About Connecting Chat with Operator Through Operator Panel
        • HEIC/HEIF image support (photos from iPhone)
        • About Redistribution of Chats from Operator
        • Email View Modes in Conversations
      • Instructions

        • Change Request Status
        • Create Filter
        • Create Folder
        • Create Outbound Request
        • How to create a ticket in OperatorLine
        • How to Download Attachments from the Dialog?
        • How to export a chat to PDF?
        • How to Link Tickets to Each Other?
        • How to Manage Email Reply Recipients?
        • Manage Folders
        • How to Edit Ticket Fields?
        • How to Manage Ticket Watchers?
        • Monitor Operator Statuses
        • Queue monitoring and distribution audit
        • Open Request
        • Reorder Folders
        • How to Reply to a Client?
        • Set Topic and Tags
        • How to Switch the Email View Mode in a Conversation?
        • Use Copilot
        • View knowledge base sources in chat
        • Use Quick Replies
        • How to View Active Dialogs in Client Card?
        • View Chat List
        • View Chats in Table
        • View Quality Assessment in Chat
        • View Request Queue
        • How to View Ticket Logs?
        • How to View Ticket SLA Metrics?
    • Client Portal

      • Client Portal — end-user hub
      • Client Portal — administrator hub
      • What is the ConnectiveOne Client Portal
      • Organization and ticket scope in Client Portal
      • Staff view in Client Portal
      • Instructions

        • How to sign in to Client Portal?
        • How to register in Client Portal?
        • How to view the ticket list?
        • How to create a ticket in Client Portal
        • How to comment on a ticket?
        • How to submit a CSAT rating?
        • How to use notifications?
        • How to enable self-registration in Client Portal?
        • How to configure ticket creation in Client Portal?
        • How to manage Client Portal organizations?
        • How to configure staff access to Client Portal
    • Profile

      • Configure your ConnectiveOne operator profile
      • Administrator — Profile Scenarios Hub
      • Instructions

        • How to Change Interface Language?
        • Configure Folders
        • Configure notifications in your profile
        • Configure Operator Settings in Profile
        • Configure Quick Replies
        • Configure Signature
    • BroadcastUsers (Clients)

      • Operator — BroadcastUsers Scenarios Hub
      • Integrator — BroadcastUsers Scenarios Hub
      • Administrator — BroadcastUsers Scenarios Hub
      • Explanations

        • Why Does One Client Have Many Channels?
        • Client Card Sections
        • About Registered Contacts and Visitors Without a Profile
      • Instructions

        • Create Segment by Filters
        • Edit Client Data
        • Export Client Data
        • Filter Clients
        • Manage Subscription
        • How to Search and Merge Similar Contacts
        • How to Find a Client?
        • Search Clients by File
        • Send Broadcast to Selected Clients
        • How to View a Client Card?
        • View Client Channels
        • View Visitors Without a Client Profile
  • Broadcasts

    • Broadcast

      • Operator — Broadcast Hub
      • Integrator — Broadcast Settings Hub
      • Analyst — Broadcast Analytics Hub
      • Instructions

        • How to Activate a Scheduled Broadcast?
        • How to Add Images to Broadcasts?
        • How to Check Broadcast Status?
        • How to Configure an Automatic Broadcast?
        • How to Configure Alias in Broadcasts?
        • How to Configure Broadcast Limits?
        • How to Create a Broadcast Template?
        • How to Create a Broadcast?
        • How to Create a Broadcast Topic?
        • How to Deactivate a Broadcast Topic?
        • How to Edit a Broadcast Draft?
        • How to Edit a Broadcast Topic?
        • How to Export Broadcast Results to Excel?
        • How to Format Messages in Broadcasts?
        • How to Launch a Broadcast Immediately?
        • How to Save a Broadcast as a Draft?
        • How to Find Contacts by File?
        • How to Send a Broadcast from the Clients Module?
        • How to Configure a Scheduled Broadcast?
        • How to Configure Subscription to Broadcast Topics?
        • How to View a Broadcast Report?
        • How to View Broadcast Results?
        • How to View Click Statistics?
        • How to View Delivery Statistics?
        • How to View Open Statistics?
  • Automation

    • Scenario Builder

      • Scenario Builder — Integrator Hub
      • Instructions

        • How to add translations to a scenario in Scenario Builder
        • How to Configure an Instagram Scenario in Scenario Builder
        • How to configure operator queue cascade
        • How to create a new bot scenario in Scenario Builder
        • How to create a scenario section in Scenario Builder
        • How to edit a scenario in Scenario Builder
        • How to edit a scenario together with colleagues
        • How to find a node on the canvas in Scenario Builder
        • How to export and import a scenario in Scenario Builder
        • How to send a client an HTML email from a scenario
        • How to test a scenario in Scenario Builder
        • How to use an action in a Scenario Builder scenario
        • How to use scenario secrets in Send Request
        • How to view scenario version history in Scenario Builder
        • How to view scenario C1 Flow (YAML) in Scenario Builder
    • Scenario Dialog (Legacy)

      • Integrator — Scenario Dialog Scenarios Hub (Legacy)
      • Explanations

        • Actions in Scenarios — What They Are and How They Work
        • About Using autobroadcast__create Action in Scenarios
        • About Copying Existing Bot Scenario
        • About ConnectiveOne Integration with Corezoid Through Operator Panel
        • About Displaying Images to User
        • About Email Categorization Using AI
        • About Facebook Ads Referral Tags
        • About Launching Scenario from Facebook Ads
        • About HTML Text Formatting in Telegram and Widget
        • About Inline Keyboard in Telegram and Widget
        • About Configuring Alias for Outgoing Dialog
        • About Payment via Bot
        • About Telegram Group Bots
        • Telegram Keyboard Button Styling
        • About Telegram WebApp in Scenarios
        • About Viber Keyboard Styling
        • About Viber Start Message
      • Instructions

        • How to Add Translations to a Scenario?
        • How to Create a New Bot Scenario?
        • How to Create a Scenario Section?
        • How to Edit an Existing Bot Scenario?
        • How to Export or Import a Scenario?
        • How to Use an Action in a Scenario?
        • How to View and Restore Scenario Versions?
    • ActionJail

      • Operator — ActionJail Scenarios Hub
      • Explanations

        • Action Jail Editor Sections
        • How Action Jail Data Flows to Scenario Builder
      • Instructions

        • How to Create a Custom Action in Action Jail
        • How to Create and Maintain an Action in ActionJail (Administrator)
        • AI Generator Setup in Action Jail (Administrator)
        • How to Clone an Action in ActionJail
        • How to Quickly Find an Action in ActionJail
        • How to Connect an ActionJail Action to a Bot Scenario (Integrator)
        • How to use saved scenario secrets in a custom Action Jail action
      • Reference

        • Actions Reference
        • Standard bot constants (Operator Panel)
        • Actions

          • Action add_to_cart
          • Action api__callnode
          • Action apple_google_pay
          • Action autobroadcast__create
          • Action autobroadcast__remove
          • Action broadcast__subscribe
          • Action broadcast__subscribed
          • Action broadcast__unsubscribe
          • Action call_node
          • Action card_pay
          • Action card_pay_block_scenario
          • Action chatroom_update
          • Action check_language
          • Action check_schedule
          • Action clear_constant
          • Action close_chatroom
          • Action create_hash
          • Action create_message
          • Action custom_modules__export
          • Action custom_modules__get
          • Action custom_modules__set
          • Action custom_modules__update
          • Action custom_modules_list
          • Action esputnik__push_contact
          • Action existing_chatroom
          • Action fastline
          • Action fastline_completion
          • Action fastline_pro
          • Action fastline_search
          • Action fastline_summarize
          • Action fastline_transcribe
          • Action files__get
          • Action fl_transfer_to_operator
          • Action fl_transfer_to_skill_group
          • Action generate_barcode
          • Action generate_list
          • Action get_channel
          • Action get_chat_room_messages
          • Action get_client_by_chat_room_id
          • Action get_command
          • Action get_language
          • Action get_ticket_info
          • Action get_user_input
          • Action goto_alias
          • Action if_else
          • Action interval__end
          • Action interval__end_all
          • Action interval__last
          • Action interval__start
          • Action language__get
          • Action language__set
          • Action log
          • Action loop__end
          • Action loop__start
          • Action loop_end
          • Action loop_start
          • Action menu_slider
          • Action meta_type
          • Action my_chatrooms_list
          • Action operator_panel__clear_data
          • Action operator_panel__connect_to_operator_with_msg
          • Action operator_panel__get_last_dialog
          • Action operator_panel__nps_confirm_answer
          • Action registered_users__check_phone
          • Action registered_users__get
          • Action registered_users__set
          • Action remove_from_cart
          • Action return_to_chatroom
          • Action scan_barcode
          • Action scan_qr
          • Action schedule__check
          • Action send_email
          • Action send_file
          • Action send_me
          • Action send_photo
          • Action send_request
          • Action send_sticker
          • Action send_video
          • Action set
          • Action set_current_date
          • Action set_language
          • Action sleep
          • Action statistic__set
          • Action subscription__check
          • Action subscription__remove
          • Action subscription__set
          • Action switch
          • Action test_list
          • Action testing__search
          • Action tickets_clear_input
          • Action tickets_create
          • Action tickets_create_v2
          • Action tickets_create_wrapped
          • Action tickets_list
          • Action tickets_update
          • Action validate
          • Action verify_online_payment
          • Action widget__callout
    • Integrations

      • Integrator — ConnectiveOne Integrations Hub
      • Explanations

        • Launch Scenario via Deeplink
        • Transfer UTM Tags Through Messages
        • What are ConnectiveOne Integrations
      • Instructions

        • How to Integrate Operator Panel as Widget in CRM/ERP
        • How to Configure Product Name for Zoho CRM
        • How to Integrate External System via Custom Channel
        • How to get API data with send_request
        • How to send ConnectiveOne data with send_request
        • How to Configure User Subscription to Notifications
        • How to Launch Bot Scenario via API call_node
        • How to Integrate ConnectiveOne with eSputnik
        • How to Send Phone Broadcast via Route
        • How to Use ConnectiveOne API
        • How to Configure Operator Panel Webhook
      • Reference

        • API Reference — ConnectiveOne API Reference
    • Custom Data

      • Integrator — Custom Data
      • Administrator — Custom Data hub
      • Analyst — Custom Data hub
      • Explanations

        • About Custom Data in ConnectiveOne
        • About Custom Data compared to other approaches
        • About large Custom Data tables
        • Custom Data patterns and examples
        • Advanced Custom Data Cases
      • Instructions

        • How to Add a Field to a Table?
        • How to bulk edit records?
        • How to configure field display?
        • How to configure field type?
        • How to configure row highlighting in Custom Data
        • How to configure a «List by API» (ActionJail) field?
        • How to configure system field types?
        • How to Create an Association Between Tables in Custom Data?
        • How to create a record card field group?
        • How to create a table?
        • How to edit a table?
        • How to enable the new Custom Data UI
        • How to Export Filtered Data?
        • How to Export Table Data?
        • How to Extend Client Contacts Table Through Custom Data?
        • How to filter records?
        • How to import data from a file?
        • How to import from Google Sheets?
        • How to speed up sorting on a large table?
        • How to Save Data from Scenario to Custom Data?
        • How to sort records?
        • How to use Ask AI for Custom Data?
        • How to Get a Record from Custom Data by Search Criteria?
        • How to Use Autocomplete Search in Custom Data?
        • How to Create a Record in Custom Data from Scenario Data?
        • How to use kanban view (board)?
        • How to use model starters?
        • How to use row macros?
        • How to use saved views?
        • How to use the process tab on a table?
        • How to use trash and restore tables?
        • How to Validate Data?
        • How to view table records?
      • Reference

        • Advanced Model Options Reference
        • Custom Data Field JSON Configuration Reference
        • Semantic field types reference
    • FileManager

      • Operator — FileManager Scenarios Hub
      • Instructions

        • How to Copy a File Link?
        • ⚠️ DEPRECATED: How to Create a Jira Task with a File?
        • How to Delete a File or Folder?
        • How to Navigate to a Folder?
        • How to Rename a File?
        • How to Upload a New File?
        • How to View the File List?
  • Artificial Intelligence

    • FastLinePro

      • Integrator — FastLinePro Scenarios Hub
      • Administrator — FastLinePro Scenarios Hub
      • Instructions

        • Activate KB Plugin
        • How to Check AI Agent Response in Scenario?
        • Check Synchronization Status
        • Configure agent prompt
        • How to bind a Scenario MCP Tool section to a Fast Line Pro agent
        • Connect and configure agent tools
        • How to Configure Agent Variables in FastLinePro?
        • How to Configure Chunking in FastLinePro Knowledge Base?
        • How to split a Fast Line Pro knowledge-base file with Ask AI
        • Configure KB Plugin Synchronization
        • Configure Knowledge Synchronization
        • How to Connect Knowledge Base to AI Agent in FastLinePro?
        • Create agent
        • How to Create a Chatbot?
        • How to Create a Knowledge Base?
        • Deactivate KB Plugin
        • How to Generate Gemini API Key for FastLine Pro
        • How to Prepare a File for FastLinePro Knowledge Base?
        • Run KB Synchronization
        • Update KB Files
        • Upload Files to KB
        • How to Use action_fastline_pro Action in Scenario?
    • Quality Assurance

      • Supervisor — Quality Assurance Scenarios Hub
      • Administrator — Quality Assurance Scenarios Hub
      • Analyst — Quality Assurance Scenarios Hub
      • Instructions

        • How to Adjust AI Assessment Criteria?
        • How to Approve Assessment?
        • Assess Request
        • Conduct Quality Check
        • How to Create a New Dialogue Assessment?
        • Export Assessments
        • Filter Assessments
        • Test a Checklist on a Real Dialogue
        • Use Checklist
        • View Assessment Details
        • How to View Assessments List and Find the Needed One?
        • View Quality Dashboard
        • View Quality Reports
  • Statistics

    • Statistics

      • Supervisor — Statistics Scenarios Hub
      • Administrator — Statistics Scenarios Hub
      • Analyst — Statistics Scenarios Hub
      • Explanation

        • Hybrid ticket analytics: how to read the dashboard
      • Instructions

        • Apply Filters to Report
        • How to Configure CSAT (Customer Satisfaction) in Statistics?
        • How to Create and Configure a Funnel in Statistics?
        • Create Detailed Report
        • Create Funnel
        • Export Report
        • How to Export Statistics Data?
        • Set Target Metrics
        • View Daily Report
        • View Dashboard
        • How to View Metabase Dashboards in Statistics Module?
        • How to View Operator Schedule in Statistics?
        • How to view the quality period summary?
        • View Shift Report
      • Reference

        • Statistics Metrics — Reference
  • Administration

    • Constructor

      • Constructor — home screen and navigation
      • Explanations

        • What is the instance knowledge base in Constructor
        • What is the AI Assistant
        • What are instance tours in the knowledge base
      • Instructions

        • How to use the Constructor home screen?
        • How to use the instance knowledge base
        • Use instance tours
        • How to use the AI Assistant
        • How to use web search and site reading in the AI Assistant
        • How to configure AI Assistant access
        • How to enable internet search and URL reading for the AI Assistant
    • Settings

      • Supervisor — Operator Panel Settings Hub
      • Administrator — System Settings Hub
      • Instructions

        • How to Activate or Deactivate a Bot?
        • How to Configure Authentication and Access Management?
        • How to configure Automatic Check schedule parameters
        • How to Configure a Bot?
        • How to Configure Operator Calendars?
        • How to Configure Chat Parameters?
        • How to Configure Field Display in the Client Card?
        • How to Configure Client Fields?
        • How to configure email templates (header and footer)?
        • How to Configure File Parameters?
        • How to get an MCP token for your ConnectiveOne instance
        • How to Configure Hot Keys?
        • How to Configure Instance Parameters?
        • How to Log In as a User?
        • How to manage scenario secrets
        • How to enable the Notification Center on the instance (root)
        • How to Configure Operators in Chats?
        • How to Configure Roles and Access Rights?
        • How to Configure Styles and Scripts?
        • How to Configure Ticket Topics?
        • How to Configure General System Settings?
        • How to Configure Ticket Parameters?
        • How to Configure Timers for Chats?
        • How to Configure User Fields?
        • How to Create a New Bot?
        • How to View Bots List?
        • How to view the settings change log?
        • How to View System Status?
        • How to View Users List?
      • Explanations

        • What are scenario secrets?
      • Reference

        • What Are Server Requirements for Hosting ConnectiveOne?
    • Access Recovery

      • Access Recovery — Scenarios Hub
      • Instructions

        • How to Enable Password Recovery Flow (Administrator)
        • How to Generate a Password Reset Link Manually (Administrator)
        • How to Reset Password Through "Forgot Password?"
  1. Docs
  2. /Integrations
  3. /How To
  4. /Crm Erp
  5. /How to Integrate Operator Panel as Widget in Odoo CRM

How to Integrate Operator Panel as Widget in Odoo CRM

Important: Odoo embedding is implemented by the client's IT team. ConnectiveOne does not develop the Odoo module; it provides autologin and iframe parameters.

ConnectiveOne allows embedding the operator panel into Odoo CRM as a widget on a contact, lead, or opportunity card. Managers can handle client dialogues without leaving Odoo.

When to Use This Integration?

  • You need to open client dialogues from res.partner / crm.lead / sale.order cards
  • You need to start a new dialogue or continue an existing one by client phone number
  • You need the full operator panel or a single chat window only (embed mode)
  • Managers already work in Odoo and should not log in to ConnectiveOne separately (via autologin)

Prerequisites

  • Active ConnectiveOne instance with operator panel configured
  • Each Odoo manager has an email matching the operator email in ConnectiveOne
  • Contact card in Odoo has phone or another channel identifier (for init_dialog)
  • ConnectiveOne admin generated a login_key for autologin (stored securely on Odoo side)
  • Odoo domain is allowed in iframe (CSP / cookies — see security)

How Does It Work?

  1. A «ConnectiveOne Chat» tab or smart button is added to the Odoo form view.
  2. Odoo backend (or a static URL template) builds an autologin link with current user and client parameters.
  3. The link opens in <iframe> — the operator sees the ConnectiveOne operator panel.

General autologin parameters — in integrate operator panel as widget in CRM/ERP.


Option A: Tab on Contact Card (Recommended)

Autologin Parameters for Odoo

Required:

ParameterValue
userCurrent Odoo user email (res.users)
login_keyAutologin key from ConnectiveOne
redirect_moduleOperatorPanelChats
init_dialogPhone from res.partner.phone / mobile (normalized)
init_dialog_channelChannel: telegram, viber, whatsapp, etc.
init_dialog_bot_idConnectiveOne bot ID

Optional:

ParameterDescription
hide_nav1 — hide menu and header
uk / enUI language (first query parameter after ?)
chat_room_idOpen a known existing room

Example URL:

https://{instance}.connectiveone.io/autologin?en&[email protected]&login_key={SECRET}&redirect_module=OperatorPanelChats&hide_nav=1&init_dialog=380671234567&init_dialog_channel=telegram&init_dialog_bot_id=12

Python: Server Action to Build URL

# models/res_partner.py (fragment)
import urllib.parse

def _get_connectiveone_embed_url(self):
    self.ensure_one()
    user = self.env.user
    phone = (self.mobile or self.phone or "").replace(" ", "").replace("-", "")
    base = self.env["ir.config_parameter"].sudo().get_param(
        "connectiveone.instance_url",
        "https://your-instance.connectiveone.io",
    )
    login_key = self.env["ir.config_parameter"].sudo().get_param("connectiveone.login_key")
    bot_id = self.env["ir.config_parameter"].sudo().get_param("connectiveone.default_bot_id", "1")
    channel = self.env["ir.config_parameter"].sudo().get_param("connectiveone.default_channel", "telegram")
    params = {
        "user": user.email or user.login,
        "login_key": login_key,
        "redirect_module": "OperatorPanelChats",
        "hide_nav": "1",
        "init_dialog": phone,
        "init_dialog_channel": channel,
        "init_dialog_bot_id": bot_id,
    }
    query = urllib.parse.urlencode(params)
    return f"{base}/autologin?en&{query}"

Store connectiveone.login_key in System Parameters or Vault; do not embed in public client-side JS.

XML: Tab with iframe (Odoo 16+)

<!-- views/res_partner_views.xml -->
<record id="view_partner_form_connectiveone" model="ir.ui.view">
  <field name="name">res.partner.form.connectiveone</field>
  <field name="model">res.partner</field>
  <field name="inherit_id" ref="base.view_partner_form"/>
  <field name="arch" type="xml">
    <xpath expr="//notebook" position="inside">
      <page string="ConnectiveOne" name="connectiveone_chat">
        <field name="connectiveone_embed_url" widget="html" readonly="1"/>
      </page>
    </xpath>
  </field>
</record>

Alternative — OWL component or ir.actions.act_url with dynamic URL (better for full-height iframe).

JS: iframe in Custom Widget (Odoo Web)

/** @odoo-module **/
import { registry } from "@web/core/registry";
import { Component, onMounted, useRef } from "@odoo/owl";

export class ConnectiveOneChatIframe extends Component {
  static template = "your_module.ConnectiveOneChatIframe";
  setup() {
    this.iframeRef = useRef("iframe");
    onMounted(() => {
      const iframe = this.iframeRef.el;
      if (iframe) {
        iframe.style.height = `${window.innerHeight - 120}px`;
      }
    });
  }
}

Odoo custom views: Odoo Web Framework.


Option B: Full Operator Panel (No Single Client Binding)

https://{instance}.connectiveone.io/autologin?en&user={email}&login_key={SECRET}&redirect_module=OperatorPanelChats&hide_nav=1

Add an Odoo menu item (Settings → Technical → User Interface → Menu Items) with ir.actions.act_url.


Option C: Single Dialogue Window Only

If supported on your instance:

https://{instance}.connectiveone.io/operator_panel/chats?chat_room_id={ID}&hide_nav=1

Combine with autologin first. Confirm embed mode availability with your ConnectiveOne team.


Dialogue Create / Lookup Logic

Same as general CRM widget guide:

  1. If dialogues exist for init_dialog — connect to first or create new.
  2. If client not found — create dialogue in init_dialog_channel.
  3. If init_dialog_bot_id omitted — first bot with matching channel is used.

OP Events Sync → Odoo

To create activities / chatter entries on chat_created, operator_connected, etc., configure operator panel webhook to your Odoo module endpoint.

See Configure operator panel webhook and Integrate ConnectiveOne with Odoo CRM.


Security

  • Use HTTPS for Odoo and ConnectiveOne
  • Do not expose login_key in public logs; prefer server-side URL building in Odoo
  • Restrict frame-ancestors / CSP on ConnectiveOne to Odoo domains
  • iframe cookies may require SameSite=None; Secure — coordinate with instance admin
  • Operator email must match in Odoo and ConnectiveOne

Limitations

  • Autologin depends on valid login_key and operator RBAC in ConnectiveOne
  • iframe may be limited by browser or Odoo security policies
  • Some Odoo Online plans restrict custom iframe — test on staging

Related Articles

  • Integrate operator panel as widget (general)
  • Integrate ConnectiveOne with Odoo CRM
  • Configure operator panel webhook
  • Odoo External API
  • What are integrations

On this page