Embedding Navless Chat | Navless Product Documentation
The Navless product documentation provides detailed instructions and example HTML/CSS embed code for integrating a customizable Navless chat widget into a website, highlighting essential elements like the form submission handler, specific class and ID attributes for the text input, and optional microphone button functionality with styling guidelines.
- 1.
Follow the instructions to copy the base embed code from Embed Navless on a Custom Website.
- 2.
Use the embed code below where you want the chat embedded.
Key Points for Custom HTML
- Styles are optional, but are a starting point if desired.
- You can use your own HTML, but the key pieces to include are:
- 1.The Form
onSubmithandler - 2.
classandidoftg-textareaon the text input - 3.
classandonClickhandler for the mic icon (if desired):class="tg-mic-btn" onclick="window.Navless?.toggleMic(this)"
- 1.The Form
Example Embed Code
<style>
.tg-chat-input {
font-family:
system-ui,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
Roboto,
"Helvetica Neue",
sans-serif;
}
.tg-chat-input {
width: calc(100% - 32px);
margin: 16px;
padding: 16px;
border-radius: 12px;
box-shadow:
-4px -4px 24px rgba(0, 0, 0, 0.05),
-4px 12px 20px rgba(0, 0, 0, 0.06),
4px 0 12px rgba(0, 0, 0, 0.02);
border: 1px solid #d9d9d9;
background-color: #fff;
position: relative;
}
.tg-textarea-container {
position: relative;
width: 100%;
display: flex;
}
.tg-textarea {
background-color: #f5f5f5;
border-radius: 40px;
padding: 16px 104px 16px 16px;
width: 100%;
min-height: 54px;
max-height: 150px;
line-height: 22.4px;
font-size: 16px;
resize: none;
border: none;
outline: none;
margin: 0px;
vertical-align: baseline;
box-sizing: border-box;
scrollbar-width: none;
}
.tg-mic-btn,
.tg-send-btn {
transition: opacity 0.2s;
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
border-radius: 32px;
border: none;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
padding: 0;
}
@keyframes pulse {
0% {
transform: scale(1);
opacity: 1;
}
80% {
opacity: 0.8;
}
100% {
transform: scale(1.2);
opacity: 0;
}
}
.tg-mic-btn {
right: 56px;
background-color: transparent;
color: #b2b2b2;
&:hover {
opacity: 0.8;
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
&.recording {
background-color: #202020;
color: #ffffff;
&::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
border: 1px solid rgba(53, 118, 119, 0.85);
border-radius: 50%;
transform: translate(-50%, -50%) scale(1);
animation: pulse 1.5s ease-out infinite;
pointer-events: none;
}
}
}
.tg-mic-btn .mic-default {
display: inline;
}
.tg-mic-btn .mic-recording {
display: none;
}
.tg-mic-btn.recording .mic-default {
display: none;
}
.tg-mic-btn.recording .mic-recording {
display: inline;
}
.tg-send-btn {
right: 8px;
background-color: #357677;
color: white;
&:hover {
opacity: 0.8;
}
&:disabled {
background-color: #cccccc;
cursor: not-allowed;
}
}
</style>
<form
class="tg-chat-input"
onsubmit="
event.preventDefault();
const textarea = this.querySelector('textarea');
const input = textarea.value.trim();
if (!input) return;
window.Navless?.sendChatInput(input);
textarea.value = '';
textarea.height = '54px';
"
>
<div class="tg-textarea-container" style="position: relative; width: 100%">
<textarea
id="tg-textarea"
class="tg-textarea"
placeholder="I want to learn about..."
rows="1"
oninput="
const sendBtn = this.parentNode.querySelector('.tg-send-btn');
this.style.height = 'auto';
this.style.height = this.value
? Math.min(this.scrollHeight, 150) + 'px'
: '54px';
sendBtn.disabled = this.value.trim() === '';
"
onkeydown="
if (event.key === 'Enter' && !event.shiftKey) {
event.preventDefault();
this.parentNode.querySelector('.tg-send-btn').click();
}
"
></textarea>
<button type="button" class="tg-mic-btn" onclick="window.Navless?.toggleMic(this)">
<!-- Mic SVGs here -->
</button>
<button type="submit" class="tg-send-btn" disabled>
<!-- Send SVG here -->
</button>
</div>
</form>
Note: Replace the SVG comments with the actual SVG code as needed for your implementation.
Related
Embed Navless on a Custom Website
To embed Navless on a custom website, you need to paste the base `<script>` embed code from Tourial’s Content Hub just before the closing `</body>` tag on your site’s HTML template, then add clickable HTML elements with specific `onclick` handlers to launch Navless either in AI Mode or by opening a specific playlist using its share link slug.
Implementing Navless in WordPress | Navless Product Documentation
The documentation provides detailed instructions for integrating Navless into a WordPress site by globally adding the Navless embed script via plugins, theme files, or child theme edits, and then launching Navless playlists from buttons using CSS class triggers or custom JavaScript, emphasizing testing on staging sites and careful placement of the script in the footer to avoid render blocking.
Embedding Navless | Navless Product Documentation
The Navless Product Documentation details multiple methods for embedding Navless into websites or applications—including custom websites, Webflow, and WordPress—offering step-by-step instructions for integrating both general navigation features and interactive chat functionality to enhance user experience.
HubSpot vs WordPress for Intent-Based Buyer Marketing: Which to Choose in 2026
The article compares HubSpot and WordPress for intent-based buyer marketing in 2026, highlighting that HubSpot offers an integrated platform with built-in CRM, marketing automation, intent signals, and reporting for faster time-to-value, while WordPress provides greater flexibility and lower total cost of ownership through a composable stack requiring manual integration of marketing tools, noting that both support traditional behavioral and third-party intent data but neither fully addresses the new AI-driven real-time intent layer emerging in buyer marketing.
Where We Begin
The article "Where We Begin" explains that while the future of B2B commerce involves AI-driven networks and intelligent agents, most companies today are still grappling with shifting buyer behaviors and lack comprehensive AI strategies, so Navless focuses on meeting these companies where they currently stand by offering practical, incremental tools that reveal their position in the emerging AI landscape and help them take meaningful first steps toward adaptation.
Navless Pardot Integration Self-Service Guide
The Navless Pardot Integration Self-Service Guide explains how Navless leverages Salesforce Pardot APIs to enable customers to sync prospect data, track visitor engagement, personalize content, and push engagement metrics back into Pardot and Salesforce for enhanced lead scoring, intent tracking, automation, sales visibility, and targeted marketing without requiring a formal partnership.