This page explains three ways to put Mira in front of your guests: a chat bubble embedded in your website, a shareable Guest Link, and QR codes placed in rooms. You do not need to be a programmer; if you can paste one line of code into your website (or hand this page to the person who does), that is enough. You get the code and links from the Widget page.
Which method should I choose?#
| Method | When it fits | Where to get it |
|---|---|---|
| Website widget | You have your own website and want visitors to be able to talk to Mira on every page. | Widget → Website Widget |
| Guest Link | You have no website, or you want to send guests straight into the chat from Instagram, Google Business Profile, WhatsApp, SMS or email. | Widget → Guest Link |
| Room QR code | You want a staying guest to message Mira from their room, with the chat linked to that room automatically. | Room Types → Edit → Room Link & QR |
| Installing on a phone | You want guests to add Mira to their phone's home screen like an app. | The Install App button on the Guest Link |
You can use all three together. They all connect to the same Mira and the same information.
Step by step: adding the widget to your website#
Example scenario: "Blue Bay Hotel" (30 rooms) wants a chat bubble at the bottom right of every page of its website.
1. Copy the code#
- Open Widget in the panel.
- In the Website Widget box, choose the Position (for example Bottom right) and press Save.
- Press Copy Code. A line like this is copied to your clipboard:
<script async src="https://app.airoomier.com/widget.js" data-hotel="blue-bay-hotel"></script>
The data-hotel value is your business's own identifier (the part after /assistant/ in your guest link). Copy the code from the panel, do not type it by hand; the address and identifier must be exactly right.
2. Paste the code into your site#
The code must sit right before the closing </body> tag of the page. If you want the widget on every page, put the code in a place shared by all pages (your site's footer template). Add the code only once; if you add it several times, several bubbles appear.
On your own HTML site: open the file, find the </body> line and paste the code just above it.
WordPress: the general approach is to add the code to a "footer script" area that is published on every page of the site. This is usually done with a "header/footer script" plugin, or by adding the code before </body> in your theme's footer.php. If you paste it into a "Custom HTML" block inside a page, the widget only appears on that page. A visual editor can break the code; use the code/HTML mode.
Site builders such as Wix, Squarespace, Shopify: all of these have a place in the site settings, under names like "custom code", "code injection" or "theme code", where you can add code to the end of the page (footer / body end). Menu names vary by platform and over time; search the platform's help pages for "custom code" or "code injection". On some platforms this feature needs a paid plan. On Shopify you usually add the code in the theme file theme.liquid, before </body>.
If you work with an agency or developer: tell them "Add this <script> line before </body> on all pages of the site."
3. Publish and refresh#
Publish the change on your site. If your site has a caching plugin or CDN, clear the cache, then hard-refresh the page (Ctrl+F5, or open it in a private tab on your phone).
4. Test it#
- Open your site in a private/incognito window.
- After about 1.5 seconds, a round Mira bubble (or your own assistant photo on Pro) and a greeting bubble above it should appear in the corner you chose.
- Click the bubble. For a brief moment three small dots (a loading indicator) appear in the middle of the panel, then the chat fades in smoothly. A Terms & Conditions window appears the first time; continue with Accept & Continue.
- Ask questions like "What time is check-in?" or "Do you accept pets?". The answers should match what you wrote in Business Info.
- Open it on your phone too: if the screen is narrow (about 520 pixels or less), the chat opens full screen.
5. (Optional) Turn on domain security#
Your code is publicly visible in your site's source; if someone copies it onto their own site, your assistant and your AI conversation quota are used there. To prevent this:
- Once the widget works on your site, open the Widget → Domain Security box.
- Type your site's domain in the Allowed domains box, e.g.
bluebayhotel.com(one domain per line; you do not need to writehttps://, a path orwww., and a root domain covers all its subdomains). - Tick Enable domain security and press Save Changes.
- Open your site again in a private window and click the bubble; the chat should open normally.
This setting is available on the Basic and Pro plans. The spelling rules, what a visitor sees on a blocked site and what is not affected are explained in detail in the Domain Security section of the Widget page.
How the widget behaves#
- The bubble: a 76-pixel round icon with soft "pulse" rings around it. In the Right (center) and Left (center) positions it sits at the vertical middle of the screen edge; in Bottom right and Bottom left it sits in the bottom corner.
- The greeting bubble: appears about 1.5 seconds after the page opens and is shown once per page load. It can be closed with ✕; clicking it opens the chat. On Pro you can customize its text (Widget).
- The chat panel (computer): clicking the bubble opens a large panel next to it. You can resize the panel by dragging the dotted handle at its top corner; to close it, use the ✕ in the panel's corner or click the bubble again. The page behind the panel stays scrollable.
- The chat panel (phone): if the screen width is about 520 pixels or less, the panel opens full screen, a Back to site bar appears at the top and the bubble is hidden. While the panel is open, your site does not scroll in the background.
- The chat runs as a window (iframe) inside your site; it comes with its own styles and does not break your site's design. The chat page is not loaded until the panel is opened for the first time.
- Loading indicator: when the panel opens, three small bronze dots show in the middle of the panel until the chat is ready; then the chat appears with a short, smooth fade (no white or black screen flashes). If for any reason the chat does not send its "ready" signal, it is shown anyway at most about 1.5 seconds after the page has loaded. The same indicator also appears when the panel reloads after a language change.
- Always the light theme: the chat screen always opens in the light design, even if you use the Airoomier panel in the dark theme.
- Terms & Conditions window: the first time a guest opens the chat, they see a terms window that is the same for every business and cannot be changed from the panel (for its content, see Widget → Guest Link). Accept & Continue is remembered in that browser; Decline closes the window and lets the guest chat, but the window appears again the next time.
- If Domain Security is on and the widget is opened on a site that is not in the list, the bubble appears but the panel shows the message "Bu site için yetkilendirilmemiş" ("Not authorized for this site") instead of the chat.
Code options (data-* parameters)#
| Parameter | Required | What it does | Example |
|---|---|---|---|
data-hotel |
Yes | Your business identifier. It is already in the code you copy from the panel. If it is missing, the widget does not appear at all. | data-hotel="blue-bay-hotel" |
data-lang |
No | Fixes the widget language: tr, en, de or ru. Regional codes such as de-AT and ru-RU are accepted (the first two letters are used). |
data-lang="en" |
data-position |
No (not recommended) | Fixes the position in the code, independent of the panel: right, left, bottom-right, bottom-left. |
data-position="bottom-left" |
Example (code fixed to English):
<script async src="https://app.airoomier.com/widget.js" data-hotel="blue-bay-hotel" data-lang="en"></script>
Which language does the widget open in?#
The widget decides its language in this order:
data-langin the code, if present,- otherwise the visitor's browser language,
- if neither is one of the four supported languages (Turkish, English, German, Russian), English.
So the website widget does not use the Default Language from Business Info; it uses the visitor's/your site's language. If your site is in Turkish but a visitor's browser is in English, they will see English unless you add data-lang="tr". If your site has a language switcher, use the setLanguage method below. Guests can always change the language themselves with the TR/EN/DE/RU selector inside the chat.
Controlling it with JavaScript: AiroomierWidget#
The widget adds two small commands to the page under window.AiroomierWidget. Using them is optional; the widget works without them.
| Command | What it does |
|---|---|
AiroomierWidget.open() |
Opens the chat panel. Use it to turn a button on your own site into a "Talk to Mira" call to action. |
AiroomierWidget.setLanguage("de") |
Changes the widget language (tr, en, de, ru). An invalid value is ignored. |
Examples:
<!-- Open the chat with your own button -->
<button onclick="window.AiroomierWidget && AiroomierWidget.open()">Talk to Mira</button>
<script>
// When your site's language switcher changes, update the widget language too
function siteLanguageChanged(code) {
if (window.AiroomierWidget) AiroomierWidget.setLanguage(code);
}
</script>
Things to know:
- Because the code loads with
async,AiroomierWidgetcan be undefined for a moment right after the page opens. Check withwindow.AiroomierWidget &&as above. setLanguageimmediately updates the language of the greeting bubble on screen and of the panel labels. If the chat panel is closed, it reloads in the new language the next time it opens; if the panel is open, the ongoing conversation is left alone.- There is no separate command to close the panel; the visitor closes it with ✕, Back to site or the bubble.
Step by step: sharing the Guest Link#
The Guest Link is your business's fixed, unchanging address (https://app.airoomier.com/assistant/blue-bay-hotel). Anyone who can open a link can talk to Mira directly; no website is needed.
- Go to the Widget → Guest Link box.
- Right-click the link (long-press on a phone) and copy the link address.
- Paste it in the places that suit you:
| Where | How |
|---|---|
| Paste it into the link (website) field of your profile; if you can add links in stories, put it there too. | |
| Google Business Profile | If your profile has a field where you can add a link (such as website or reservation link), add it there. Which fields are available depends on your account. |
| Send it as a message while chatting with a guest; if you use WhatsApp Business, add it to your greeting message or a quick reply. | |
| SMS / email | Add it to your booking confirmation message or your email signature. |
| Printed material | There is no ready-made QR for the general link in the panel. Paste the link into any QR code generator tool and print the result. For a QR per room, see the section below. |
Example message: "Hello! You can message our 24/7 digital receptionist Mira here: https://app.airoomier.com/assistant/blue-bay-hotel".
Adding a language to the link#
You can choose the language the chat opens in by adding ?lang= to the end of the link (tr, en, de, ru). Example for an Instagram account aimed at foreign guests: https://app.airoomier.com/assistant/blue-bay-hotel?lang=en. If you add no language, the chat opens in your business's Default Language; guests can change it with the TR/EN/DE/RU selector in the chat.
Step by step: a room QR code#
A room QR code tells Mira automatically which room a guest is writing from. The guest does not have to say their room number.
- Open Room Types and go to the Physical Units list on the card of the relevant room type. See Room Types.
- On the card of the relevant room (for example 101), click Edit.
- At the bottom of the section that opens, click the Room Link & QR button.
- A Room Link — 101 box opens: it contains the QR code, the link address, Copy Link and Download QR (PNG) buttons, and a Close button. The QR is generated in your browser (nothing is sent to an outside service).
- Download the QR and print it on the room card or door (the file name looks like
oda-101-qr.png).
When a guest scans the QR, the chat is linked to that room and a badge such as Room 101 appears in the chat header. The results:
- Mira gives this guest the Wi-Fi password (the password is only shown to guests who are staying; see Business Info).
- Requests the guest makes through Mira (for example towels or cleaning; only for the types you have switched on in Request Types) are linked to that room automatically; see Guest Requests. Without the QR/link, a request can only be opened if the guest has a confirmed booking covering today with a unit assigned.
- If the guest opens the same QR again later, they see the number of their open requests for that room.
Step by step: adding it to a phone like an app#
Guests can add Mira to their phone's home screen like an app by opening the Guest Link. There is nothing for you to set; this feature is on automatically.
- The guest opens the Guest Link on their phone (via shortcut/QR/SMS).
- At the top right of the chat screen, they see the Install App button (on a narrow screen only the phone icon shows).
- Android / Chrome: they tap the button and confirm the install window that appears; the shortcut is added to the home screen.
- iPhone / Safari: they tap the button. The window that appears lists these steps: (1) tap the Share icon in the toolbar, (2) tap Add to Home Screen, (3) tap Add at the top right. Afterwards they close the window with Got it.
The installed shortcut opens full screen and goes straight to your business's chat. Its name is the assistant's name (default "Mira"; on Pro, the name and photo you set). The app keeps no cache: chat, availability and prices are always live and up to date, and it does not work without internet. The shortcut opens the chat in your Default Language, as the Guest Link does. If the app is already installed, or the browser does not support installing, the Install App button does not appear.
What happens next#
- Every chat that comes in through the widget or link is listed on the Conversations page; see Conversations. These chats count toward your monthly AI conversation quota (Basic: 100 per month, Pro: 1000 per month; see Account and Plans). When the quota is full, the guest sees "We're quite busy right now..." and the Call Us / WhatsApp / Send an Email buttons.
- If a guest asks to book, the request lands in Bookings; see Bookings.
- Settings you change in the panel (position, bubble text, assistant name/photo) reach your site without changing any code, in about 1 minute at most.
Troubleshooting#
| Problem | Likely cause | What to do |
|---|---|---|
| The bubble does not appear at all | The code was not added, was added in the wrong place, or the page is coming from cache. | Put the code before </body>, clear the cache, hard-refresh in a private window. On WordPress, add the code in HTML/code mode rather than the visual editor. |
No bubble, and the browser console shows a data-hotel error |
data-hotel is missing from the code. |
Copy the code again from the panel. |
| The bubble is there but the chat says "İşletme bulunamadı" (business not found) | The data-hotel value was typed wrongly. |
Copy the code again from the panel. |
| The bubble is there but the panel shows "Bu site için yetkilendirilmemiş" (not authorized for this site) instead of the chat (widget not showing) | Widget → Domain Security is on and your site's domain is not in the Allowed domains list, is misspelled, or the list is empty. The site may also be opening from a different address (e.g. a separate booking domain, localhost or a temporary test address). |
Add your domain to the list and save; check that the line did not disappear in the saved version (for a domain with non-English characters, write its equivalent starting with xn--). If you wrote a subdomain (e.g. booking.bluebayhotel.com), write the root domain. If needed, turn the setting off temporarily. |
| The Guest Link says "Bu site için yetkilendirilmemiş" (not authorized) | Domain Security is on and the link was opened by clicking a link on a web page that is not in the list. | Add the domain of the site where you shared the link to the list. |
| Present on some pages, missing on others | The code was added to only one page. | Move the code into the footer template shared by all pages. |
| More than one bubble | The code was added more than once. | Remove the extra ones. |
| I changed the position in the panel but the site is the same | About 1 minute of caching, or your site's cache. data-position may be in the code. |
Wait 1-2 minutes and hard-refresh; remove data-position if it is there. |
| Custom bubble text or assistant photo not showing on the site | Not on Pro, not saved, or data-position is in the code. |
Check your plan and that it was saved, and remove data-position. If it shows in the Live Preview on the Widget page, the problem is in the code or cache on your site. |
| The widget opens in the wrong language | There is no data-lang; the visitor's browser language is used. |
Add data-lang or use AiroomierWidget.setLanguage(). |
| Your site's security settings block the script | Your site may have a strict content security policy (CSP) or an ad/privacy blocker. | Ask your site administrator to allow scripts, connections and frames (iframe) from app.airoomier.com. |
| There is no Install App button | The app is already installed or the browser does not support it. | Open the Guest Link in Chrome on Android or Safari on iPhone. |
| Mira says "we're quite busy" | The monthly AI conversation quota is full. | Check your plan: Account and Plans. |
Tips and common mistakes#
- Live Preview first: try the assistant in the Live Preview on the Widget page before adding it to the site.
- Do not edit the code by hand: change the position and texts in the panel; the code itself never changes.
- Do not shorten or change the Guest Link: if the business identifier at the end of the link changes, the chat will not open.
- Test on mobile: most of your guests are on phones; try the full-screen opening and the Back to site bar once.
- Fill the gaps: if Mira says "I have no information" on a question, add the information under the Knowledge Base or Facilities.
