Vai al contenuto

Widget channel — Overview

The Widget channel receives support and quote requests from the website. Visitors open a chat on the site; messages arrive in Quoting24 as tickets and operators reply from the usual interface, with the same logic already used for the other channels.

The interface runs in an iframe. The host site only needs a script and, when the data is already known, a call to init(). Angular, a Supabase client, or direct access to the Quoting24 database are not required.


Which integration you need

Associating a company and restoring history are separate operations. external_id, company_name, name, phone, and email do not authorize access to another person’s conversations. A user already authenticated on the site remains a widget guest until the site passes a valid restore credential.

Case What to implement Continuity Section
Public site, unknown visitor Script only. The visitor fills in the contact form. Guest session in the same browser Widget B2C
Site that already knows the profile and company Script and init() with the profile and company data Prefilled guest session and company association Widget B2C
Portal with personal history across devices Also a backend integration for external_user_id and restore_id Personal history on the authorized widget channel Widget B2B
Field contract, CSP, login/logout, provisioning Developer guide — Technical integration

What the widget does

  • Shows a floating button or a chat embedded in the page
  • For a new visitor, opens the form labeled Telephone and Name. In init() the fields are phone and name; the email, when the site knows it, is email
  • If the site calls init(), uses the data already available and can link the contact to a company through external_id (web_code). If the company is missing and company_name is also sent, it can create it
  • Opens a conversation managed in Quoting24 like the other channels
  • Accepts PDF, DOC/DOCX, JPG/JPEG, and PNG attachments, up to 10 MiB per file and 100 MiB of referenced attachments per conversation
  • Shows the greeting, the welcome message, and, outside working hours, the configured banner. Message composition stays available

The loader stores the guest credential in the site’s localStorage, separated by widget key. If storage is blocked, continuity may be limited to the current page. The guest session can reread its most recent conversation after the tab is closed, in the same browser. Another device requires authenticated restore.


Where to configure it in Quoting24

  1. Open Settings → Channels (Impostazioni → Canali)
  2. Select the Widget channel
  3. Open the configuration

From there you set:

  • logo, primary color, button position
  • greeting message, welcome message, out-of-hours message
  • allowed domains
  • embed code (full script URL and public widget key)

The channel hours determine the out-of-hours banner.

Ask the administrator for the embed code and the authorized domains, including staging and local development. Use the URL and key of the same environment. In the examples, replace WIDGET_HOST and PUBLIC_WIDGET_KEY with the values you received.

Authorized domains are host names, for example shop.example.com or localhost, without https://, port, path, or a *. prefix. example.com also authorizes its subdomains. An empty list applies no domain restriction. For local testing, serve the page over HTTP: opening it as a file is not enough.

Logo, color, position, and messages are configured in Quoting24. The company_name passed to init() is the customer’s legal name, not the widget title. There is no public language or locale parameter: the current interface is in Italian.


Two ways to show it on the site

Floating button

The script adds the button after the visual settings load. A click opens the chat. On mobile, the floating chat expands to fill the viewport.

See Widget B2C.

Embedded chat

The chat fills a page container with an explicit height. There is no floating button: the site provides layout and title. In this mode open(), close(), and toggle() have no effect. The site controls the container height and width.

See Widget B2C.

One instance per page: the loader exposes a single window.Quoting24Widget. A second script does not create a second widget.


Public key and secrets

Value Where it lives What it is for
Public widget key Script URL Selects the channel. It is public: it is not a personal credential and not a backend integration secret
Private integration secret Site backend only Authorizes creating and reusing restore_id
restore_id Private per-user store, in the backend Credential used to restore that person’s history on that widget
Guest session credential Site localStorage, managed by the loader Guest continuity in the same browser, per widget key

Operator flow

  1. The visitor opens the chat on the site and sends a message
  2. Quoting24 creates or continues a ticket on the Widget channel
  3. If initialization resolved an external_id, the contact is linked to the company with that web_code. A company just created by the widget has the legal name and, if sent, the email; an existing company is not renamed by init()
  4. The operator handles the request and replies from the chat
  5. The customer sees the replies in the widget

Widget messages can be deleted only for everyone.

The data comes from the browser and the visitor can change it. The company link does not prove identity and does not open the history of the other contacts of that company.


Where to start

  1. Configure appearance, hours, and domains in Settings → Channels → Widget
  2. Public site, or a portal that prefills the profile: Widget B2C
  3. The same person’s history on another browser: Widget B2B
  4. Fields, company creation, CSP, and checklist: Technical integration