{"id":367125,"date":"2026-09-11T09:27:50","date_gmt":"2026-09-11T09:27:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/optlo\/"},"modified":"2026-09-12T08:41:27","modified_gmt":"2026-09-12T08:41:27","slug":"optlo","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/optlo\/","author":23564008,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Optlo \u2013 AI Customer Support, Live Chat & Chatbot","header_author":"Optlo","header_description":"Deploy AI support agents on your website. Adds the Optlo messenger to your pages and identifies your logged-in users.","assets_banners_color":"ebf1fc","last_updated":"2026-09-12 08:41:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/optlo.com\/integrations\/wordpress\/","header_author_uri":"https:\/\/optlo.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":80,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"optlo","date":"2026-09-11 09:27:35","revision":3691123},"1.0.1":{"tag":"1.0.1","author":"optlo","date":"2026-09-12 01:23:56","revision":3692243},"1.0.3":{"tag":"1.0.3","author":"optlo","date":"2026-09-12 08:41:27","revision":3692479}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3691123,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3691123,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3691123,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3691123,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3691123,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"optlo\/chat-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"optlo\/chat-button","title":"Optlo chat button","category":"widgets","icon":"format-chat","description":"A button that opens the Optlo messenger.","textdomain":"optlo","supports":{"html":false},"attributes":{"label":{"type":"string","default":""},"message":{"type":"string","default":""}},"editorScript":"optlo-block"}},"tagged_versions":["1.0.0","1.0.1","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3691123,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3691123,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3691123,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3691123,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3691123,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3691123,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Choose how to connect: one click through Optlo, or paste a workspace ID yourself.","2":"Decide where the messenger appears, by post type, URL, user role, search results and 404 pages.","3":"Conversations arrive in a shared inbox, with the details of the signed-in user beside them.","4":"A visual editor controls when the AI answers, what it can reach, and what happens next.","5":"Connect your own AI provider account and watch requests, tokens and errors per provider.","6":"Point Optlo at your site and it trains on your own pages."}},"plugin_section":[],"plugin_tags":[191735,5707,2369,5591,2379],"plugin_category":[41],"plugin_contributors":[280206],"plugin_business_model":[],"class_list":["post-367125","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-chatbot","plugin_tags-chat","plugin_tags-customer-support","plugin_tags-help-desk","plugin_tags-live-chat","plugin_category-communication","plugin_contributors-optlo","plugin_committers-optlo"],"banners":{"banner":"https:\/\/ps.w.org\/optlo\/assets\/banner-772x250.png?rev=3691123","banner_2x":"https:\/\/ps.w.org\/optlo\/assets\/banner-1544x500.png?rev=3691123","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/optlo\/assets\/icon.svg?rev=3691123","icon":"https:\/\/ps.w.org\/optlo\/assets\/icon.svg?rev=3691123","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-1.png?rev=3691123","caption":"Choose how to connect: one click through Optlo, or paste a workspace ID yourself."},{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-2.png?rev=3691123","caption":"Decide where the messenger appears, by post type, URL, user role, search results and 404 pages."},{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-3.png?rev=3691123","caption":"Conversations arrive in a shared inbox, with the details of the signed-in user beside them."},{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-4.png?rev=3691123","caption":"A visual editor controls when the AI answers, what it can reach, and what happens next."},{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-5.png?rev=3691123","caption":"Connect your own AI provider account and watch requests, tokens and errors per provider."},{"src":"https:\/\/ps.w.org\/optlo\/assets\/screenshot-6.png?rev=3691123","caption":"Point Optlo at your site and it trains on your own pages."}],"raw_content":"<!--section=description-->\n<p>Optlo is an AI customer support platform that runs on your own AI provider account, so you pay the model provider directly instead of a per-resolution markup.<\/p>\n\n<p>This plugin adds the Optlo messenger to your WordPress site without editing a theme file.<\/p>\n\n<h4>Built to stay out of the way<\/h4>\n\n<p>The messenger puts about 2 KB of JavaScript on your page. The chat interface itself runs inside an iframe, so it never competes with your theme for the main thread. Most chat widgets load between 150 KB and 750 KB directly onto the page they appear on.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Connect to your Optlo workspace in a couple of clicks, no copying and pasting<\/li>\n<li>Identify your signed-in users securely, so their conversation history follows them<\/li>\n<li>Choose which post types, URLs and user roles see it<\/li>\n<li>Hide it on search results and 404 pages<\/li>\n<li>A <code>[optlo]<\/code> shortcode and an editor block for \"chat with us\" buttons anywhere on a page<\/li>\n<li>Refuses to load on staging copies of your site by default<\/li>\n<\/ul>\n\n<h4>Safe to put behind a cache<\/h4>\n\n<p>Nothing about the visitor is written into your pages, so a cached page can never\nidentify one visitor as another. Visitors who are not signed in receive no cookie\nfrom this plugin, so caches that bypass on cookies keep working. Sites using a page\ncache or a CDN need no special configuration.<\/p>\n\n<h4>Requires an Optlo account<\/h4>\n\n<p>The messenger is a hosted service. You need an Optlo workspace, which you can create at <a href=\"https:\/\/optlo.com\/\">optlo.com<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your website to Optlo, a hosted customer support service operated by Optlo. It is required for the plugin to do anything: the chat interface itself is served by Optlo, not by your site.<\/p>\n\n<p><strong>What is sent, and when<\/strong><\/p>\n\n<p>On every page where the messenger is enabled, the visitor's browser loads a script from <code>https:\/\/optlo.com\/embed\/v1\/&lt;your workspace ID&gt;<\/code> and opens a connection to Optlo. This happens for every visitor to those pages, including visitors who never open the chat.<\/p>\n\n<p>Optlo receives, as a normal consequence of the visitor's browser making that request: the page address the messenger is loaded on, the visitor IP address, the browser user agent, and a cookie Optlo sets to recognise a returning visitor across page loads. Anything a visitor types into the messenger is sent to Optlo so it can be answered.<\/p>\n\n<p><strong>If you turn on \"Identify signed-in users\"<\/strong><\/p>\n\n<p>This setting is off by default. When it is on, the browser of each signed-in WordPress user fetches a short-lived token from your own site and passes it to the messenger, which sends it to Optlo. The token carries that user's WordPress user ID, email address, display name, username, first role, registration date, this site's host name, and avatar URL if avatars are enabled and the URL is https. Optlo uses it to attach the conversation to that user in your Optlo inbox. Visitors who are not signed in, and users in roles you exclude, are not identified. The <code>optlo_user_claims<\/code> filter lets a developer change or remove any of these fields, or add organizations the user belongs to.<\/p>\n\n<p>Beyond that, this plugin sends nothing else. It does not transmit your posts, site content, or the accounts of users who are not signed in.<\/p>\n\n<p>The plugin also sets one cookie of its own on your site, named <code>optlo_signed_in<\/code>, for signed-in users only. It holds the fixed value <code>1<\/code>, identifies nobody, and only tells the browser that it is worth asking your site for a token. It is set when someone signs in and removed when they sign out. Visitors who are not signed in never receive it, so it does not affect page caching for them. It is never sent to Optlo.<\/p>\n\n<p><strong>Terms and privacy<\/strong><\/p>\n\n<ul>\n<li>Terms of service: https:\/\/optlo.com\/terms<\/li>\n<li>Privacy policy: https:\/\/optlo.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In your Optlo dashboard, go to Settings, Workspace, Profile and copy the workspace ID.<\/li>\n<li>In WordPress, go to Settings, Optlo, paste the workspace ID and save.<\/li>\n<li>Visit your site. The chat launcher appears in the corner.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"the%20messenger%20is%20not%20showing%20up\"><h3>The messenger is not showing up<\/h3><\/dt>\n<dd><p>Check Settings, Optlo for a notice explaining why. The two common causes are that WordPress reports this site as something other than production, or that the site address changed since the workspace ID was saved.<\/p><\/dd>\n<dt id=\"i%20moved%20my%20site%20to%20a%20new%20domain\"><h3>I moved my site to a new domain<\/h3><\/dt>\n<dd><p>Settings, Optlo shows a notice that the site was connected under its old address. If you moved the site, click \"This site moved here\" and the messenger loads again. If you are looking at a copy of another site, click \"Disconnect\" instead, so conversations from the copy do not reach your live inbox.<\/p><\/dd>\n<dt id=\"why%20does%20it%20refuse%20to%20load%20on%20my%20staging%20site%3F\"><h3>Why does it refuse to load on my staging site?<\/h3><\/dt>\n<dd><p>Staging sites are normally created by copying the production database, which copies your workspace ID with it. Without this check, test conversations from a staging site would arrive in your live inbox. Untick \"Only load on production\" under Settings, Optlo if you want it there.<\/p>\n\n<p>Note that a database copy also carries the private key this site signs identity tokens with, protected by the security keys in wp-config.php. Anyone who holds both a copy of the database and those keys can sign tokens as your users. If you hand a copy to someone who should not have that power, generate a new key from Settings, Optlo afterwards.<\/p><\/dd>\n<dt id=\"can%20i%20open%20the%20chat%20from%20a%20button%20or%20link%3F\"><h3>Can I open the chat from a button or link?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[optlo]<\/code> shortcode, or the \"Optlo chat button\" block. Both accept a label and an opening message.<\/p><\/dd>\n<dt id=\"can%20developers%20change%20what%20is%20sent%20about%20a%20user%3F\"><h3>Can developers change what is sent about a user?<\/h3><\/dt>\n<dd><p>Yes. The <code>optlo_user_claims<\/code> filter receives the user payload before it is signed. It can change or remove any field, add attributes, or add up to ten organizations, each with an <code>id<\/code>, a <code>name<\/code> and optional <code>attrs<\/code>, which Optlo shows alongside the user. Anything Optlo would reject is dropped rather than failing the whole payload. The <code>optlo_should_load<\/code> filter can suppress the messenger entirely for a request.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added the plugin's page on optlo.com to the plugin header. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>The messenger script is added as soon as the page is parsed instead of after every image has loaded, so it appears sooner on slow pages.<\/li>\n<li>A signed-in user's identity is no longer lost when the token arrives after the messenger has started.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed to \u201cOptlo \u2013 AI Customer Support, Live Chat &amp; Chatbot\u201d. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Deploy AI support agents on your WordPress site. Adds the Optlo messenger to your pages in a couple of clicks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/367125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=367125"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/optlo"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=367125"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=367125"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=367125"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=367125"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=367125"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=367125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}