Add the Maison concierge chat to your WordPress site in a few minutes — no coding experience required. You will copy two small code snippets into your theme file. WordPress official site ↗
Before you start
- Administrator access to your WordPress site (yoursite.com/wp-admin)
- Your Client UUID — find it in the Business Console under Settings
Recommended: Official WordPress Plugin
Get the plugin
Clone the repository or download the zip from GitHub:
New to Git? See the GitHub cloning guide or download the zip directly from the repository page.
Install the plugin
In your WordPress admin, go to Plugins > Add New > Upload Plugin. Upload the maison-agent.zip file (found inside the cloned repo) and click Install Now, then Activate.
Configure your Client ID
Go to Settings > Maison Agent. Enter your Client ID (UUID from the Business Console). Optionally set Locale, Bottom Position, and Right Position (in pixels). Click Save Changes.
Verify
Visit your site. The Maison chat icon should appear at the configured position.
Alternative: Manual theme editing
If you prefer not to use the plugin, you can add the embed code directly to your theme files.
Log into your WordPress admin panel
Go to yoursite.com/wp-admin and sign in with your administrator account. You will land on the WordPress Dashboard.
Open the Theme File Editor
In the left sidebar, hover over Appearance and then click Theme File Editor. This opens a code editor for your active theme's files.
Select header.php
On the right side of the editor you will see a panel called Theme Files. Look for and click header.php. The file's contents will appear in the main editing area.
Paste the script tag before </head>
In the editor, use your keyboard shortcut (Ctrl+F or Cmd+F) to search for
</head>. Click just before it and paste the following line on a new line above it.Paste the init script before </body>
Still in the same file, search for
</body>. Paste the following snippet on a new line just above it. Replace YOUR_CLIENT_UUID with the UUID from your Business Console.Click Update File
Scroll down in the editor and click the blue Update File button to save your changes.
Visit your site and verify
Open your website in a new browser tab. The Maison chat icon should appear in the bottom-right corner of the page. To confirm, open your browser DevTools (press F12), switch to the Elements tab, and look for
#maison-chat-iconin the DOM.
Alternative: Insert Headers and Footers plugin
For the full list of configuration options, control methods, and callbacks, see the Widget SDK Reference.
Common mistakes
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.bottom: 20, not bottom: '20px'. Values are plain numbers representing pixels — do not include units.Do not cache the Maison script
Maison ships widget updates through its own CDN. If a WordPress caching or minify plugin copies agent-inject.bundle.js into its own combined bundle, your site keeps serving that stale copy after Maison releases an update — and the widget can stop loading entirely. The loader tag above already carries exclusion attributes (data-cfasync, data-no-minify, data-no-optimize, data-no-defer, data-noptimize) that tell WP Rocket, LiteSpeed Cache, Autoptimize, and Cloudflare Rocket Loader to leave it alone — paste the tag exactly as shown and never remove these attributes.
agent-inject.bundle.js to your plugin's JavaScript exclusion list so it is never minified, combined, deferred, or cached: WP Rocket (File Optimization → Excluded JavaScript files), LiteSpeed Cache (Page Optimization → Tuning → JS Excludes), Autoptimize (JS, CSS & HTML → Exclude scripts), or W3 Total Cache (Performance → Minify → Never minify).Troubleshooting: widget missing or outdated
If the chat widget stops appearing, or looks broken after a Maison update, a cached copy of an older loader script is the most common cause. Clear every cache layer, in this order:
Purge your WordPress cache
WP Rocket: Dashboard → WP Rocket → Clear Cache. LiteSpeed Cache: LiteSpeed → Purge All. Autoptimize: Settings → Autoptimize → Delete Cache. W3 Total Cache: Performance → Purge All Caches.
Purge your CDN cache
If Cloudflare, BunnyCDN, Fastly, or another CDN sits in front of your site, purge its cache too — a stale copy there survives a WordPress purge.
Hard-refresh and verify
Hard-refresh the page (Shift+Reload) and confirm the widget loads. In DevTools → Network, the script should load from
agent-inject.bundle.json Maison's CDN — not from awp-content/cache/…path. If it still loads from the cache path, add the exclusion from the section above.
Not sure if it's set up correctly? Use the Site Diagnostic tool.