Description
The Klantly plugin connects your WordPress website to Klantly without copying a single line of code manually.
Features:
- Chat widget — Automatic injection on all pages, selected pages, or all pages except selected ones.
- Appointment booking — Embed via shortcode
[klantly_appointment], Gutenberg block or Elementor widget. Automatic language detection (WPML/Polylang). - Configurator — Embed a quote form via
[klantly_configurator form_id="..."], or add a call-to-action button that opens the form full-screen via[klantly_configurator_button]. - Statistics — Optionally send page views (including UTM campaign data) to Klantly + dashboard widget with page views, leads, appointments and traffic sources.
- Automatic sync — Settings changed in Klantly reach your site automatically: hourly, on every push from Klantly, and whenever you open the plugin settings. There is nothing to refresh manually.
- Consent aware — Tracking integrates with the WP Consent API used by popular cookie banner plugins.
- Editor compatibility — Native elements for Gutenberg, Elementor, Breakdance and WPBakery; shortcodes for Classic Editor, Divi and every other builder.
Shortcodes
[klantly_appointment] — Appointment booking widget.
[klantly_configurator form_id="uuid"] — Configurator form. Optional: `show_reviews="1"`, `show_menu="1"`, `show_footer="1"`, `language="de"`.
[klantly_configurator_button form_id="uuid" text="..." color="#2563eb"] — Button that opens the form full-screen.
[klantly_chat show="true"] — Activate chat on a specific page.<h3>External services</h3>
This plugin is the WordPress connector for Klantly, a third-party customer platform (https://klantly.com). Klantly provides the chat widget, the appointment booking widget and the product configurator; the plugin itself does not work without a Klantly account. It talks to two Klantly hosts: app.klantly.com (the platform and its API) and configurator.klantly.com (the product configurator).
Your WordPress server Klantly (server to server)
- Connecting —
https://app.klantly.com/wordpress/authorizeandhttps://app.klantly.com/api/wordpress/v1/exchange/{token}. Used once, when an administrator clicks “Connect with Klantly”. Sent: a one-time token; received: the API credentials for this site. - Configuration sync —
https://app.klantly.com/api/wordpress/v1/connect. Sent after connecting, hourly, when Klantly signals a settings change, and when an administrator opens the plugin settings. Sent: the site URL, site name and plugin version, authenticated with the site’s API credentials. Received: the widget settings and the list of configurator forms. - Dashboard statistics —
https://app.klantly.com/api/wordpress/v1/stats. Only when an administrator views the Klantly dashboard widget. Sent: the requested period. No visitor data. - Settings push — Klantly can call
/wp-json/klantly/v1/refreshon your site with a signed request. It carries no data and only makes the site fetch its own configuration again.
Visitor’s browser Klantly (only on pages where a Klantly feature is active)
- Chat widget — loads
https://app.klantly.com/chat-widget-standalone.jswhen the chat is switched on in Klantly (on all pages or the pages you select). Messages a visitor types, and the name and e-mail address they choose to leave, are sent to Klantly. - Appointment booking — loads
https://app.klantly.com/appointment-widget.json pages with the booking widget, or on every page when the floating booking button is switched on. The details a visitor enters when booking are sent to Klantly. - Configurator — loads
https://configurator.klantly.com/embed-runtime.js, which fetches the configurator fromhttps://configurator.klantly.com(/embed/embed.js,/embed/embed.css,/api/embed/…) on pages with a configurator form, catalog or button, or on every page when the floating configurator button is switched on. The configuration a visitor builds and the contact details they enter when requesting a quote are sent to Klantly, together with anonymous usage of the form steps. - Page view statistics —
https://app.klantly.com/api/wordpress/v1/t/{token}. Off by default; only when an administrator enables it under Klantly > Statistics. Sent: page URL, page title, referrer, UTM campaign parameters and an anonymous session identifier (see Privacy below).
As with any resource loaded from another server, the visitor’s browser also sends its IP address and user agent to Klantly when these scripts load.
Klantly Terms of Service: https://www.klantly.com/algemene-voorwaarden
Klantly Privacy Policy: https://www.klantly.com/privacyverklaring
Privacy statement for visitors of sites that use Klantly: https://www.klantly.com/privacyverklaring-voor-eindgebruikers-via-klantly
Privacy Policy
This plugin may send data to Klantly (https://klantly.com) as described in the External Services section above.
Page view tracking is disabled by default. When enabled by the site administrator, it sends the page URL, title, referrer, UTM parameters and an anonymous session ID to Klantly on each page load. No personally identifiable information is sent unless the visitor cookie option is also enabled, which sets a persistent klantly_vid cookie to recognize returning visitors across sessions.
When a consent management plugin implementing the WP Consent API is active, the tracker waits for the visitor’s consent: the anonymous page view requires the statistics-anonymous category and the visitor cookie requires the statistics category.
Site administrators can disable all tracking at any time via Klantly > Statistics.
Blocks
This plugin provides 4 blocks.
- Chat Widget
- Appointment Widget
- Configurator Form
- Configurator Button
Installation
- Install the plugin via Plugins > Add New Plugin or upload the folder to
/wp-content/plugins/. - Activate the plugin.
- Go to the Klantly menu and click Connect with Klantly to authorize via OAuth.
- All widget settings are configured automatically after connecting.
FAQ
-
Do I need a Klantly account?
-
Yes, this plugin requires an active Klantly account. You can sign up at https://www.klantly.com.
-
Is the plugin free?
-
The plugin itself is free and open source (GPLv2 or later). Klantly is a paid SaaS service; pricing is available at https://www.klantly.com/prijzen.
-
What data does the plugin send to Klantly?
-
During the OAuth connection flow the plugin sends your site URL, site name, and plugin version to Klantly so it can deliver the correct widget configuration. Page-view tracking (including page URL, title, referrer, UTM parameters and an anonymous session ID) is disabled by default and only enabled when a site administrator explicitly turns it on via Klantly > Statistics.
-
Can I use the plugin without connecting to Klantly?
-
No. All widget functionality (chat, appointment booking, configurator) is provided by the Klantly service. Without a connected Klantly account the plugin does nothing on the front end.
-
Which page builders are supported?
-
Gutenberg (native blocks), Elementor, Breakdance and WPBakery Page Builder (native elements), and Divi or any other builder via the shortcodes.
-
Where do I configure the widgets?
-
Most settings (chat script, appointment reference, configurator forms) are retrieved automatically when you connect, and stay in sync automatically afterwards. Page-level options (which pages show the chat, language, etc.) are available under the Klantly menu in wp-admin.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Klantly” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Klantly” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.3.3
- Changed: the plugin now uses the current Klantly logo on the settings page, in the blocks and as the wp-admin menu icon.
1.3.2
- Fixed: the maximum width of the appointment booking block is now validated as a single CSS length, so no other styling can be passed along with it.
- Changed: the Klantly menu now sits below Settings in wp-admin, instead of between Comments and Appearance.
- Changed: translations are now loaded by WordPress itself and come from translate.wordpress.org.
1.3.1
- Fixed: the configurator sometimes did not appear, depending on the page or the visit. Performance plugins (Hummingbird, LiteSpeed Cache, WP Rocket, Autoptimize, Cloudflare Rocket Loader) could merge or delay the configurator script and strip its settings in the process. The script is now excluded from those optimisations, its settings are also printed in a form those plugins leave alone, and the caches are cleared once after this update.
- Fixed: a stale cached setting could keep the configurator script off every page even though the connection itself was fine. The plugin now falls back to the stored setting per field.
- Fixed: the configurator script also loads when the floating button has never been set up in Klantly, so a form placed on a page still appears.
- Changed: clearing caches after a settings change now also clears Hummingbird’s page cache and its combined files.
- Changed: updates now come from WordPress.org; the plugin no longer contains its own update mechanism.
- Changed: all inline CSS and JavaScript is now printed through the WordPress enqueue API, and the External services section documents every Klantly endpoint and what is sent to it.
- Tested with WordPress 7.1.
1.3.0
- New: native Breakdance elements — Klantly configurator, configurator button and appointment booking, each with a dropdown of your forms and catalogs, under the “Klantly” group in the element browser.
- New: a hand-placed embed div now loads on its own, wherever you put it — a Breakdance Code Block, the Gutenberg HTML block, a Divi code module or the classic editor.
- Fixed: themes that add an icon to every button (a
button:afterrule, common with Font Awesome) no longer draw that icon on top of the chat button or the configurator button. - Fixed: themes that put generous padding on every button no longer stretch the round chat button into an oval, or widen the send, attach and close buttons. Buttons that carry their own padding keep it, and buttons outside Klantly are left alone.
- Fixed: settings changed in Klantly now reach your site even when WP-Cron does not run (disabled, blocked, or starved by a page cache). A push from Klantly is carried out immediately instead of being queued, and it reports back whether it actually landed.
- Fixed: the hourly sync is now also scheduled from the front end, so a site where nobody opens wp-admin no longer stays on the settings from the moment it was connected.
1.2.1
- Fixed: configurator forms and the floating configurator button did not load — the embed runtime is served from a different Klantly subdomain than the API, and 1.2.0 rejected it. Sibling Klantly domains are now allowed (other hosts are still refused).
- New: the overview screen shows per feature whether it actually loads on your site, and why not when it doesn’t (not configured yet, or switched off in Klantly).
1.2.0
- Sync is now fully automatic: hourly cron, instant push updates, and a fresh fetch whenever the settings page opens — the manual refresh button is gone.
- Fixed: page-view tracking no longer sends browser credentials, resolving the CORS error that blocked the tracker on customer sites.
- Security: the self-updater now only accepts packages from the Klantly host over https and verifies the published sha256 checksum before installing.
- Security: remote widget script URLs are pinned to the Klantly host before they are stored; a tampered response can no longer become a site-wide script.
- Security: the connect flow stores the configuration server-verified; the browser fallback is validated like any other input. OAuth state is per user and single-use only after a successful match.
- Security: the push-refresh signature now binds method, path and site; the dashboard widget link comes from the plugin itself instead of the API response; postMessage exchanges are origin-checked.
- Privacy: the visitor cookie carries the Secure flag on https sites.
- Fixed: saving settings no longer resets fields that are not on screen (such as the appointment language on sites without the appointments feature).
- Fixed: uninstalling on multisite now cleans up every site, including credentials and the sync cron.
- Improved: page caches are only purged when the widget configuration actually changed — no more full cache flush on every sync.
- Improved: front-end scripts are enqueued with real handles so performance plugins can manage them, and Klantly CSS only loads on pages that contain Klantly widgets.
- Improved: a fresh settings screen in the Klantly house style, and the same element picker (with language option) across Gutenberg, Elementor and WPBakery.
1.1.0
- Automatic synchronization: settings changed in Klantly now reach the site via a 6-hour cron and instant push updates — no manual refresh needed.
- Security: API credentials no longer pass through the browser; the OAuth exchange and the refresh button now run server-side.
- New: call-to-action button (shortcode, Gutenberg block, Elementor widget, WPBakery element) that opens a configurator form full-screen.
- New: show customer reviews, company menu or footer with an embedded form.
- New: automatic language detection for the appointment widget (WPML/Polylang/site locale).
- New: Site Health check and admin notice when the connection fails repeatedly.
- New: self-update mechanism via the Klantly update feed.
- New: dashboard widget loads asynchronously and shows appointments, traffic sources and recent leads.
- New: page view tracking records UTM parameters and ad click ids, and integrates with the WP Consent API.
- Improved: chat page scoping now supports “all pages except selected” and works on posts and archives.
- Improved: the chat/configurator stacking fix is event-driven and no longer touches other overlays (cookie banners, sticky headers).
- Improved: cache purge on settings changes no longer flushes the site-wide object cache.
- The plugin is fully translatable; Dutch, German and French translations included.
1.0.1
- Improved OAuth connection flow with popup-based authorization.
- Added persistent storage of widget settings so widgets remain functional after connection cache expires.
- Added cache flush integration for popular caching plugins on settings save.
- Performance: chat widget now loads interaction-first to improve Core Web Vitals.
1.0.0
- Initial release.


