Onelinebot Documentation · v1.0

Everything you need to build, deploy & scale your AI chatbot.

A complete, step-by-step guide covering account setup, chatbot creation, knowledge ingestion, data export and deletion (trash, permanent erase, account recovery), prompt suggestions & auto-healing, embed installation, integrations (Notion, HubSpot CRM), lead capture, CRM sync, and billing — written for product teams shipping real-world chatbots.

⌘K

12+

Sections

50+

Step-by-step guides

2

Integrations covered

~5 min

Setup time

Chapter 01

Introduction

Onelinebot is an AI chatbot platform that lets you deploy intelligent, knowledge-aware assistants on your website with a single line of embed code. This guide walks through every feature from first signup to production CRM sync.

AI Chatbots

Build conversational AI bots with custom prompts, tone, and branding in minutes.

Knowledge Base

Train bots on documents, websites, Notion pages, and structured uploads — plus optional prompt chips and KB gap workflows when enabled on your plan.

Lead Capture & CRM

Verify leads with email OTP and sync them to HubSpot CRM automatically.

What is Onelinebot?

Onelinebot is a SaaS platform for deploying AI-powered chatbots trained on your own business content. Each chatbot is a standalone assistant that answers visitor questions, captures qualified leads, and hands them off to your CRM — all without writing custom backend code. You configure it once, paste the embed snippet on your site, and the chatbot goes live.

Key concepts

ConceptWhat it means
WorkspaceYour organization-level account that owns all chatbots, leads, and integrations.
ChatbotA single assistant with its own prompt, appearance, knowledge sources, and embed ID.
Knowledge SourceA document, scraped page, or imported file the chatbot uses to answer questions.
LeadA site visitor who submitted their contact details through the chatbot form.
IntegrationA third-party tool (e.g., Notion for knowledge import or HubSpot for CRM sync) connected to your workspace.
EntitlementA feature or limit granted to your plan (e.g., max chatbots, allowed file types, CRM access).

How it works

Your documents and scraped content are chunked, embedded, and stored in a vector database. When a visitor chats with your bot, the system retrieves the most relevant chunks, passes them to the language model along with your system prompt, and returns a context-aware answer. Missed intents may surface as knowledge-gap signals for optional auto-healing review when enabled on your plan. Lead forms capture contact data, optionally verify the email via OTP, and push verified contacts to your CRM in real time or on demand.

Chapter 02

Getting Started

Create your account, verify your email, and launch your first chatbot in under five minutes. The flow below is the fastest path to a working bot on your website.

1

Create your account

Go to the Register page and sign up with your work email. Choose a strong password (minimum 6 characters). You'll be placed on the default signup plan automatically — no credit card required.

2

Verify your email

We send a 6-digit verification code to your inbox. Enter it on the verification screen, or click the magic link inside the email. Without verification, some features (like publishing chatbots) remain locked.

Didn't receive the email?

Check spam/junk folders, then click Resend code. Emails are normally delivered within 60 seconds. If it's still missing, add noreply@onelinebot.com to your safe senders list.
3

Take the quick tour

On first login you land on the Dashboard. From the left sidebar you can access Chatbots, Leads, Knowledge Base, Integrations, Pricing, and Settings. Spend two minutes hovering over each menu to understand the layout before creating your first bot.

You're ready

With a verified account, you can now create unlimited chatbots (up to your plan's cap) and start training them on real content.

Chapter 03

Create & Configure Chatbots

A chatbot is the core unit in Onelinebot. Each bot has its own identity, training data, appearance, and embed ID. This section covers every configuration option in detail.

Create a new bot

1

Open the Chatbots page

Navigate to Dashboard → Chatbots. You'll see a grid of all existing bots. Click the Create Chatbot button in the top-right corner.
2

Name and purpose

Give your bot a descriptive name (e.g., Acme Support Bot, Pricing Assistant). The name is shown only inside your dashboard — visitors see the chatbot's display name set in appearance.
3

Save the draft

Click Create. Your bot appears in the list with a unique embed ID. You can now open it to configure prompt, appearance, knowledge sources, and lead form.

System prompt

The system prompt is the most important setting on your chatbot. It tells the AI how to behave, what it is, what it can and cannot do, and how it should respond when unsure. A good system prompt dramatically improves answer quality.

Recommended prompt structure

  1. Identity: "You are Acme's AI support assistant."
  2. Scope: "You help visitors with product questions, pricing, and onboarding."
  3. Rules: "Answer only from provided knowledge. If unsure, offer to collect their email."
  4. Tone: "Be friendly, concise, and professional."

Tone & personality

Choose from presets like Professional, Friendly, Concise, or Playful. The tone modifies sentence structure and vocabulary while preserving your system prompt's rules. For enterprise B2B sites, Professional is the safest default. For consumer brands, Friendly or Playful works well.

Appearance

Customize how the widget looks on your site so it matches your brand.

SettingWhat it controls
Theme colorPrimary brand color for header, buttons, and user message bubbles.
AvatarUpload a logo or character image shown on the bot's messages.
Launcher textThe small teaser text next to the bubble before opening.
PositionBottom-right (default) or bottom-left of the viewport.
Custom brandingReplace "Powered by Onelinebot" with your own text (higher plans only).

Welcome message

The first message a visitor sees when they open the widget. Keep it short, warm, and action-oriented.

Example welcome messages

  • "Hi! I'm Acme's AI assistant. Ask me anything about our product, pricing, or onboarding."
  • "Welcome! Looking for something specific? I can help with docs, pricing, and demos."
  • "Hey there 👋 — I'm here 24/7. What can I help you find today?"

Chapter 04

Embed Code Integration

Install your chatbot on any website with a single script tag. Onelinebot supports every major stack — plain HTML, React, Next.js, WordPress, Shopify, Webflow, and more.

Copy the snippet

Open your chatbot's Embed tab to copy the script. Each bot has a uniquedata-chatbot-id. Keep this ID private — anyone with it can render your bot on their site.

Install on plain HTML

Paste the snippet just before the closing </body> tag of every page where the chatbot should appear. For site-wide installs, add it to your global template or layout.

index.html
<!-- Paste this before the closing </body> tag -->
<script
  src="https://onelinebot.com/embed-new.js"
  data-chatbot-id="your-chatbot-id"
  async
></script>

Install on React / Next.js

For Next.js apps, use the next/script component with afterInteractive strategy to avoid blocking initial render.

app/layout.tsx
// app/layout.tsx (Next.js App Router)
import Script from "next/script";

export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script
          src="https://onelinebot.com/embed-new.js"
          data-chatbot-id="your-chatbot-id"
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

Install on WordPress

In WordPress, add the snippet via your child theme's functions.php using the wp_footer hook. This keeps the install intact when the parent theme updates.

functions.php
// functions.php (child theme recommended)
function onelinebot_embed_footer() {
  ?>
  <script
    src="https://onelinebot.com/embed-new.js"
    data-chatbot-id="your-chatbot-id"
    async
  ></script>
  <?php
}
add_action('wp_footer', 'onelinebot_embed_footer');

Content Security Policy (CSP)

If your site enforces a strict CSP, add onelinebot.com toscript-src andconnect-src directives, otherwise the widget will fail to load silently.

Verify installation

1

Open your live site

Load any page where you pasted the snippet. The chatbot bubble should appear in the bottom corner within 2–3 seconds.
2

Test the welcome message

Click the bubble. Confirm the welcome message, avatar, theme color, and launcher text match your settings.
3

Send a test question

Ask a real question whose answer exists in your knowledge base. Confirm the bot retrieves accurate context.
4

Submit a test lead

Trigger the lead form, submit a valid test email, and verify the lead appears in Dashboard → Leads.

Chapter 05

Knowledge Base & Training

The chatbot's answer quality depends entirely on what you upload here. This section covers every ingestion method, from drag-and-drop to website scraping.

PDFDOCXTXTCSVXLSXXLSHTMLHTM

Upload documents

1

Open Add Knowledge

Go to Dashboard → Chatbots → your bot → Add Knowledge. The upload zone accepts drag-and-drop or a file picker.
2

Select files within your plan's format list

Your plan controls which formats are accepted. If a format is not checked on your plan, upload is blocked with a clear upgrade message. Admins configure these in the plan settings.
3

Wait for processing

Each file is parsed, chunked into ~500-token segments, embedded, and stored. Processing time scales with file size — a 50-page PDF usually takes under 30 seconds.
4

Verify status

The Documents page shows each source's status: processing ready failed. Failed sources can be reprocessed from the action menu.

Scrape a website

To train your bot on existing web content, add a website URL or sitemap. Onelinebot crawls within the same domain up to your plan's page limit, respecting robots.txt.

1

Add URL

Paste a page URL or sitemap.xml URL. For single pages, enter the exact URL. For entire sites, use the sitemap for best coverage.
2

Configure depth and filters

Set max depth (how many levels deep the crawler follows internal links) and optional URL patterns to include/exclude.
3

Start crawl

Monitor progress in real time. Each page counts against your monthly scraped pages limit.

Manage sources

The Knowledge Base dashboard lists every source with filters for type, status, and last update. You can refresh a source (re-fetch content), edit chunks manually, rename, or delete. Deleting a source removes its embeddings from the vector store immediately.

Storage & limits

Storage usage is shown as a progress bar at the top of the Knowledge Base dashboard. When you approach the cap, the bar turns red and uploads are blocked. Deleting sources frees storage instantly.

Plan-level storage

Each plan has a configured maximum storage (in bytes). Admins can update this per plan at any time. Free plans typically include 20 MB; paid plans scale to 2 GB and higher.

Chapter 06

Suggestions & KB health

Optional plan features that improve the visitor experience with starter prompts and help you close knowledge gaps surfaced from real conversations.

Prompt suggestions

Prompt suggestions are configurable chips shown inside the chat widget — either when the conversation starts, after each assistant reply, or both. You can define custom suggestions per chatbot or generate AI-assisted suggestions grounded in your uploaded documents (subject to limits on your plan).

1

Confirm your plan includes Prompt Suggestions

This capability is entitlement-controlled. If your plan doesn't include it, you'll see an upgrade prompt instead of the editor.
2

Open the suggestions workspace

Go to Dashboard → Chatbots → your bot → Customize. Use the Prompt Suggestions entry point (or navigate directly to Dashboard → Chatbots → [bot] → Prompt Suggestions).
3

Choose display mode

Pick whether chips appear at start of chat, after every reply, or both — matching how aggressively you want to steer visitors toward common intents.
4

Add, reorder, and toggle suggestions

Create rows manually or use AI generation from selected documents. Drag to reorder; toggle rows off without deleting them.
5

Publish

Save changes. Updates apply to the embedded widget without redeploying your website — visitors see new chips on their next session (subject to caching).

Where suggestions appear

Chips render above the composer in the visitor widget. They complement — but don't replace — your welcome message and system prompt.

Auto-healing (KB gaps)

When the model struggles to answer confidently from indexed knowledge, Onelinebot can record that interaction as a knowledge gap. Auto-healing is the workflow where your team reviews those gaps and optionally promotes suggested answers into real knowledge articles, which are chunked and indexed like any other source.

1

Confirm Auto-healing on your plan

Review flags appear only when your subscription enables Auto-healing. Otherwise you'll see an upgrade prompt on the Auto-healing dashboard.
2

Open the gap review queue

Navigate to Dashboard → Auto-healing. Pending items summarize the visitor question, detected intent (when available), and model draft content.
3

Triage items

Filter by status (pending/dismissed/approved), inspect confidence indicators, and skip noisy patterns that shouldn't become canonical KB content.
4

Approve or edit

Approving creates or updates knowledge sources tagged as auto-healed so you can audit them later. You can edit titles and article bodies before committing.
5

Verify in Documents

Approved articles appear alongside other sources under your chatbot's Documents / Knowledge views with processing status until embeddings finish.

Human review matters

Auto-healing drafts can be imperfect. Treat approvals as publishing decisions — especially for pricing, compliance, or security-sensitive topics.

Chapter 07

Lead Capture & Verification

Turn chatbot conversations into verified leads with configurable forms and optional email OTP verification.

Configure the lead form

In your chatbot settings, open Lead Generation. Enable lead capture and choose which fields to collect: Name Email Phone. Toggles update the live chatbot form in real time — uncheck phone and the phone field disappears immediately. Required fields are configurable per bot.

Email OTP verification

When email collection is enabled, you can optionally require verification. The visitor receives a 6-digit code, enters it into the widget, and only then does the lead become verified. Unverified leads are never pushed to your CRM automatically.

1

Visitor submits form

After the lead threshold is hit (e.g., after 3 messages), the widget shows the lead form.
2

System sends OTP

An email with a 6-digit verification code is dispatched. The widget switches to a code entry view.
3

Visitor enters code

On match, the lead is marked verified. On mismatch or timeout, the visitor can request a new code.
4

Lead appears in dashboard

All leads (verified and unverified) show up in Dashboard → Leads with clear status badges.

Lead lifecycle

StatusMeaningCRM eligibility
PendingCaptured but not verified.No
VerifiedEmail confirmed via OTP.Yes
SyncedPushed to CRM successfully.
FailedCRM sync error. Retry available.

Chapter 08

Integrations

Connect external tools to import knowledge and sync leads. Every integration is plan-gated and secured with OAuth or private tokens.

Notion Integration

Import pages and databases as chatbot knowledge.

1

Create a Notion internal integration

Go to notion.so/my-integrations, click New integration, choose an associated workspace, and save.
2

Copy the internal integration token

Copy the secret token shown on the integration page. You'll paste this into Onelinebot.
3

Share Notion pages with the integration

Open any Notion page you want the bot to learn from → click Share → add your integration. Repeat for each page or database parent.
4

Connect in Onelinebot

Go to Dashboard → Chatbots → your bot → Add Knowledge, open the Notion tab, paste your integration token and database or page ID, then start the import — content is chunked and indexed like uploads.
5

Select pages to import

Choose specific pages or entire databases. Click Start Import — we fetch content, chunk it, and index it as knowledge sources.
6

Re-sync on updates

When you update pages in Notion, return to Add Knowledge → Notion and re-run import or refresh so embeddings stay current.

Database page content

Notion databases expose rows as separate pages. Share the database with your integration and we'll import every row's full body — perfect for FAQ or knowledge-base-style content.

HubSpot CRM Integration

Push verified leads directly to HubSpot contacts.

Plan-gated feature

HubSpot CRM is available on plans where the admin has enabled it. If you see an Upgrade Plan card under Integrations, your current plan doesn't include CRM sync.
1

Open HubSpot Private Apps

Log in to HubSpot → Settings (gear icon) → Integrations → Private Apps. Click Create private app.
2

Name your app

Enter a name (e.g., Onelinebot CRM Sync) and a short description. No logo required.
3

Enable required scopes

Go to the Scopes tab and enable:
  • crm.objects.contacts.read
  • crm.objects.contacts.write
4

Create app and copy token

Click Create app, confirm, then go to the Auth tab. Reveal and copy the access token — it starts with pat-.
5

Connect in Onelinebot

Go to Dashboard → Integrations → HubSpot CRM. Paste the token into the Access Token field and click Save Connection.
6

Choose sync mode

Enable Auto-push verified leads to automatically sync every verified lead in real time. Or leave it off and sync manually from the Leads dashboard.

Use the right scope family

HubSpot has multiple scope families. The contacts object scopes above are required for this integration. Do not use crm.schemas.contacts.* — those are metadata-only scopes and will return 403 errors on actual sync.

Chapter 09

Lead Sync to CRM

Push verified leads to HubSpot with full visibility into sync status and error handling.

Auto-push flow

When Auto-push verified leads is enabled, every time a lead successfully verifies their email via OTP, Onelinebot immediately creates or updates their contact record in HubSpot. No manual action required.

Field from leadMapped to HubSpot property
Emailemail
Full name → firstfirstname
Full name → lastlastname
Phonephone

Manual sync

1

Go to Leads

Open Dashboard → Leads. Filter by status if needed — e.g., show only verified leads not yet synced.
2

Select contacts

Use the row checkboxes or the header checkbox to select multiple. Only verified leads with valid emails are eligible.
3

Click Sync Selected Contacts

The action runs sequentially through each selected lead, showing progress in real time.
4

Review results

After completion, each lead shows a status badge. Hover over Failed to see the exact reason.

Sync status badges

BadgeMeaning
SyncedContact successfully pushed to HubSpot.
FailedPush failed. Hover for reason; most fixes involve token or scopes.
PendingQueued or in progress.
UnverifiedLead hasn't verified email yet — not eligible.
N/ACRM not configured for this workspace.

Chapter 10

Billing, Plans & Limits

Understand how limits are enforced, what happens when you hit a cap, and how to upgrade.

Plan limits

Every plan defines quotas and feature toggles for your workspace. Admins configure these per plan; users see them live on the pricing and dashboard pages.

LimitWhat it controlsEnforcement
ChatbotsMax active chatbots in your workspace.Blocks creation when reached.
Messages / monthTotal chat messages across all bots per billing cycle.Blocks responses when exceeded.
Scraped pages / monthPages crawled from websites/sitemaps.Blocks new scrape jobs.
Storage (MB)Total knowledge base storage.Blocks uploads when full.
Allowed formatsWhich file types can be uploaded.Blocks disallowed uploads with upgrade prompt.
Prompt suggestionsCustom & AI-assisted starter/reply chips in the widget.Shows upgrade prompt when not included on plan.
Auto-healingReview knowledge gaps and approve drafted KB articles.Auto-healing dashboard locked with upgrade prompt when disabled.
CRM accessWhether HubSpot CRM sync is available.Shows upgrade card if disabled.

Upgrades & billing

Open Dashboard → Pricing to compare plans and upgrade. Upgrades take effect immediately — new limits apply within seconds. Downgrades take effect at the end of the current billing cycle to avoid data loss.

Upgrade is instant

After payment succeeds, your new limits, integrations, and features unlock immediately without requiring a sign-out/sign-in.

Chapter 11

Data export, trash & permanent deletion

Control your workspace data: download a copy, move chatbots to trash, restore or erase them forever, deactivate your account, and understand retention before data is purged from application systems.

Where to start in the product

Open Dashboard → Data & deletion for a guided overview, links to Trash and Settings, and the same retention numbers the backend uses (default soft-delete windows are typically 30 days each, configurable by operators).

Download your data (JSON export)

Verified accounts can download a machine-readable bundle that includes your profile fields, chatbots you own, recent conversations and messages (subject to server limits), subscription snapshot, and usage history — scoped strictly to your login. This is useful for backups and portability.

1

Open export

From Dashboard → Data & deletion, use Download my data, or go to Dashboard → Settings → Security and run the export from there.

2

Save the file

Your browser downloads a .json file. Store it securely; it may contain conversation and lead-related text from your bots.

Not a full forensic archive

The export reflects what the product surfaces through the export API. Attachments in external storage, provider-side billing PDFs, or third-party CRM copies are outside this file. For legal requests, contact support through your published channels.

Chatbots: trash, restore, and permanent delete

Deleting a chatbot from the main Chatbots page performs a soft delete: the bot moves to Trash, is hidden from normal use, but data may remain in the database until you restore it, permanently delete it, or the retention window expires.

1

Move to trash

Delete the bot from Dashboard → Chatbots. Confirm the action; the bot appears under Dashboard → Trash (sidebar).
2

Restore or delete forever

In Trash, choose Restore or Delete forever. Permanent deletion asks you to type the bot's name to confirm. Email/password accounts also confirm with your account password; Google sign-in accounts may confirm with name only (no password you never set).
3

What permanent chatbot deletion removes

Application data tied to that bot is purged from our primary database — for example conversations, messages, knowledge sources and embeddings stored for that bot, documents, analytics, and heatmap events as implemented. This cannot be undone in the product.

Account: deactivation, recovery, and permanent erase

You can deactivate your entire account from Settings → Security. That queues the account for deletion similar to trash: most dashboard features lock, and you use Account recovery to either restore your account or proceed to permanent deletion.

1

Deactivate

Enter your password when prompted (email/password accounts). Google-only accounts follow the on-screen confirmation model. After deactivation you're redirected to recovery.
2

Restore or hard-delete account

From Account recovery, restore with password (or provider flow as implemented) or queue permanent account deletion. Permanent removal deletes your user profile and purges associated chatbots and subscription rows in our application database and attempts to stop recurring billing with the payment provider where supported.

Billing and third parties

Banks, card networks, anti-fraud systems, email logs, or backup systems may retain records independently. Our Privacy Policy and Terms describe this at a high level.

Retention windows & automation

Soft-deleted chatbots and soft-deleted accounts stay recoverable for a limited time (commonly ~30 days per entity type). Operators can adjust windows via environment configuration. After that, scheduled jobs may permanently purge eligible rows without another click from you.

TopicDetails
Chatbot trash retentionDefault 30 days unless `SOFT_DELETE_CHATBOT_RETENTION_DAYS` is set (clamped 1–365 in product logic).
Account deletion queueDefault 30 days unless `SOFT_DELETE_USER_RETENTION_DAYS` is set (same clamp).
Hard-delete queueWhen `REDIS_URL` is set, destructive work may run through a background worker; otherwise inline processing may apply — see repository docs for operators.
Cron purgeServer-side cron can call the purge endpoint protected by `CRON_SECRET` to enforce retention — production teams should configure this explicitly.

End-user legal copy is published at Privacy Policy and Terms and Conditions (including retention, export, and deletion summaries). Technical and deployment-oriented detail for your engineering team lives in the repo file docs/data-and-deletion.md.

Chapter 12

Troubleshooting

Most common issues, their root causes, and fast fixes.

Upload blocked: "format not allowed"

Your plan's allowed formats list doesn't include this file type. Check the pricing page to see which plans include the format you need, or ask your admin to enable it.

HubSpot sync failed (401 or 403)

401: Token is invalid or expired. Regenerate the Access Token in HubSpot Private Apps and paste it again.
403: Missing scopes. Enable both crm.objects.contacts.read andcrm.objects.contacts.write, then regenerate the token.

CRM sync button says "Upgrade to Sync"

Your plan doesn't include HubSpot CRM. Clicking the button takes you to Integrations where you'll see the upgrade card with links to the pricing page.

No leads are syncing at all

CRM sync only applies to verified leads with valid emails. Check the Leads page filter — if all leads are showing as Pending or Unverified, review your lead form settings and confirm OTP emails are being delivered.

Prompt suggestions or Auto-healing show an upgrade prompt

Both features are plan-gated. Open Dashboard → Pricing to compare tiers, or ask your workspace admin to enable them on your subscription plan.

Widget doesn't appear on website

Open browser devtools → Console. If you see a CSP error, add onelinebot.com to your allowed script sources. If there's no error, confirm the data-chatbot-id matches your bot exactly and that the chatbot is marked active in the dashboard.

Still stuck?

Our team is available 24 hours a day on business plans and next-business-day on free plans. Include your workspace ID, the chatbot name, and any error message you're seeing for the fastest resolution.

Contact Support