Everything ChatAgentLy can do.
New here? Start with the step-by-step setup guide instead. This page is a reference for every feature once you are up and running.
Plans and limits
What each plan costs, how many sources, questions, team members and how much storage it allows, and which features it includes are all on the plan comparison. That page reads from the live catalog, so it is the one place those figures are correct.
They are deliberately not repeated here. A reference page that copies a price or an allowance is wrong from the next catalog change onward, and wrong quietly: nothing fails, the page simply starts misleading people. One source, linked from everywhere else, is the only version of this that stays true.
Going over a limit. Sources, storage and team seats are hard limits: you are told when you try to add one past the limit, and nothing already there is removed. The monthly question allowance stops answering new questions until it resets, so a busy month never produces a surprise charge.
Common questions about plans, trials and cancelling are answered on the FAQ.
Core concepts
An organization (created right after sign-up) is your account. It holds everything specific to you: your knowledge base, your widget and API keys, your plan and billing, and any teammates you invite. Each organization is fully separate from every other customer's.
Your knowledge base is whatever you've added: files, web pages, written questions and answers, and pasted text, with live database connections in development and not available yet. The widget (or the standalone /ask page) answers visitor questions using only that content, with inline citations back to the source.
Knowledge base
Securely upload your product catalog, FAQs and business policy documents, and ChatAgentLy generates a custom customer-facing chatbot from them. Add content four ways, and mix them: the widget draws from everything at once.
- Files: PDF, Word (.docx), CSV, plaintext, or Markdown. Upload one or several at once. Images too, JPG, PNG, WebP and GIF: the text in them is read out first, so a photographed menu or a scanned policy works as a source. Upload images at the highest resolution you have, since accuracy depends on how legible the text is: a scaled-down copy or a screenshot of a photo loses the small print first, which tends to be the prices and the conditions. A picture with no text in it has nothing to answer from and is refused rather than stored empty. Files go to private storage, never a public URL, and are readable only by your own account.
- URLs: a single page, or a full-site scan (sitemap-first discovery, with a link-crawl fallback, respecting
robots.txt). Add several URLs at once. A scan reads what is on the page, so anything written there as an illustration rather than a fact about you is worth excluding: sample questions and answers, a case study quoting another company, a competitor comparison, a testimonial. Mark the region withdata-nosnippet, the same attribute search engines already honor, and the scan skips it.data-chat-ignoredoes the same thing if you would rather be explicit. Without it a demo answer is indistinguishable from a real one, and it will be quoted back to a visitor with a citation, which is how our own assistant once gave somebody a thirty-day returns policy for a software company. - Questions and answers: the answer you would give yourself, written out. When a visitor asks that question they get your wording, rather than a paraphrase assembled from a longer document, which is what makes it the right place for anything you are particular about.
- Text: paste a policy, an announcement, or anything that never made it into a document in the first place. No file, no page, no upload.
- Live databases — in development, not available yet. The planned support is Postgres, MySQL, SQL Server or Oracle over a read-only connection string, where nothing is copied out and a question triggers a live, sandboxed, read-only query against your actual data instead of a static snapshot. Until it ships, the source types are files, web pages, written questions and answers, and pasted text.
Every source gets its own citation number, shown in brackets next to the claim it supports, including every individual page discovered by a site scan. Re-adding a URL, file, or database connection that already exists is rejected with a clear message rather than silently duplicating it.
Managing sources
Select any number of sources to bulk-delete, or bulk-enable/disable, disabling excludes a source from answers without deleting its embeddings, useful for content that's temporarily outdated. Deleting a file source also deletes its underlying stored file.
Keeping content fresh
URL sources can be set to re-scan automatically (off, daily, weekly, or monthly, depending on your plan). A content-hash check skips the embedding cost entirely when a re-scan finds nothing actually changed. You can also trigger "Rescan now" on demand, rate-limited per day per your plan.
The embeddable widget
One script tag, pasted before the closing </body> tag on any page:
<script src="https://chatagently.com/widget.js" data-tenant-key="ragpk_your_public_key" defer ></script>
It renders in an isolated Shadow DOM, so it can never conflict with your site's own CSS. A chat bubble appears in the corner you choose; clicking it opens a panel that streams answers token-by-token as they generate.
Customization
Set the widget's title, accent color, screen corner, and fallback message (shown when a question can't be answered from your content) from Widget & API key in your dashboard. Changes apply live to every page it's embedded on. Nothing to re-embed.
API keys & domain restriction
A public key (ragpk_...) is safe to publish in client-side HTML. It only grants scoped, rate-limited read access to your knowledge base and can't reach your dashboard. Optionally restrict a key to one or more specific domains so it only works from sites you authorize; an unrestricted key still counts usage against your plan and requires an explicit confirmation when you create it.
No website? Use the /ask page
Every API key also gets a standalone hosted page. The same answers, citations, and features as the embedded widget, full-page instead of a floating bubble. Share it as a plain link or a QR code (generated from Widget & API key), with a customer-editable title and description shown above the chat so a visitor arriving cold, say, from a scanned QR code on a printed flyer, knows who they're talking to before typing anything.
Questions & feedback
Your widget can offer three modes, each enabled independently on your plan. Questions (ask, get a cited answer), Feedback (leave free-text feedback, no answer expected), and Call me back (leave a name, a phone number and what it is about, which lands on your Leads page). With more than one available visitors get a small chooser; with only one, the widget runs in that mode with no chooser shown.
Feedback submissions are automatically sentiment-classified and show up in your Analytics dashboard.
How an answer is found
Two searches run over your content for every question. One matches on meaning, so a visitor asking about “shipping times” finds a page written about “delivery”. The other matches the words literally, which is what makes “what are all the vegetarian options?” return every one rather than the first few. The results are merged, and anything you have written as a Q&A pair is placed first: when a visitor's question matches one you wrote, they get the answer you wrote.
Misspellings are handled. If a question finds nothing, it is corrected and searched again before the assistant gives up, so “wat time do you clsoe” is answered rather than shrugged at.
What it will not do
It answers only from what you have added. Ask it something your content does not cover and it says so rather than filling the gap from general knowledge, because an assistant that invents an answer makes your business look like it published something it never said.
It also will not count things for you. Each answer is written from a handful of retrieved passages rather than a whole document, so asking “how many transactions are in this spreadsheet?” gets an honest “I can't total that from what I can see” instead of a confident wrong number. If you need real totals, connect the data as a database rather than uploading it as a file: the assistant can then run an actual query and give you the true figure.
Optional enhancements (plan-dependent)
- Quick replies: a set of suggested questions shown before the visitor types anything, for a faster first interaction.
- Human handoff: a link to a contact email you set, for when a visitor wants to reach a real person.
- Multi-language answers: the widget detects a visitor's browser language and responds in it automatically, regardless of what language your source content is written in.
Configure all three from the Widget settings page in your dashboard.
Online Ordering and your POS
With ordering enabled, visitors can place an order from your menu or catalog without leaving the chat. They can browse the list, or type what they want in their own words and have the basket filled for them. An order can only ever contain things you have uploaded: every name is checked against your menu before it reaches a basket, and prices are read from your menu rather than from anything the assistant wrote.
The Orders screen opens on the current month. Arrows and month and year dropdowns move through time, This month and Last month are one press each, and Pick dates takes any range. A search finds an order by name, phone or email, with punctuation in the number ignored. The total shown is for the whole period you selected, counted in the database rather than from the rows on screen, so it stays right when a busy month runs past the list. It leaves cancelled orders out, and says so.
Step 1. Build the menu
- Open Online Ordering, Menu & Catalog.
- Give us the menu you already have: upload a PDF, price list, CSV or photo of the board, or paste the web address of your menu page. Long menus are read in sections, so there is nothing to split by hand.
- Check every item, especially prices, and fix anything that is off with Edit. Reading is very good and not perfect, and the menu is what visitors are charged from.
- Add sizes, toppings and paid extras as option groups where you need them. The Menu screen carries a worked example for each kind.
Step 2. Decide how you get paid
Two ways to take the money, and you choose on Online Ordering, Payments. Pay now, the default, charges the visitor's card as they order through your own Stripe account: the food money lands in your balance with your name on the statement, and the kitchen only ever sees paid orders. Pay at pickup takes no card, like a phone order.
- For Pay now, press Connect payouts with Stripe and complete Stripe's own onboarding. Your details go to Stripe, not to us.
- Set your sales tax rate to what you charge at the counter. Decimals are fine, 8.25 for example. Zero removes the tax line everywhere.
- Until Stripe is connected, Pay now still takes orders but nobody is charged, and the screen says so in red. Connect it before you rely on prepayment.
Step 2b. Run a deal, if you want one
Under Online Ordering, Promotions, add a percent off, an amount off, or buy one get one, on the whole order, on named items or on a category. Leave the code blank and it applies on its own and shows above the menu; give it a code and visitors type it in the basket. Set days and hours for a happy hour, a minimum order, and how many times it can be used in total and per customer. One promotion applies per order, the discount comes off before tax and fees, and every order, ticket and receipt says which one.
Step 3. Decide where orders go
Every order appears under Online Ordering, Orders, and is sent the moment it is placed to every destination you set up, each independently. A destination that fails never holds up the others. Set up as many as you like; most restaurants need one.
Email a ticket. Type one or more kitchen addresses under Email Orders to. The order arrives as a ticket a kitchen can read or print. Nothing else to install. Worth knowing: the order does not enter your POS this way, so your end of day totals will not include it.
Square. Press Connect Square and sign in with your Square account. Each order then appears in Square's own Orders queue and kitchen display as a pickup, with the customer's name and number, and an order paid online arrives marked paid so nobody is charged twice. Nothing to re-type.
Toast, Clover, Lightspeed and most other POS systems. These put order injection behind their own partner approval, so the industry reaches them through a connector the POS already trusts. We speak to two: Deliverect, where you link our channel in your Deliverect console and paste the channel link id it gives you, and Checkmate, where you paste the endpoint and token their onboarding issues. Either way the order lands in your POS and your normal kitchen ticket prints itself.
Anything else. Paste any address under Send to your POS and we post each order there as signed JSON, which covers Chowly, Otter, Zapier, Make and anything a developer wires up.
No POS at all. Keep the Orders screen open on a tablet. It is a live queue with a status per order and needs no setup.
If a connection is not switched on for our platform yet, its how-to on the Payments screen says so in red and no field appears. Tell us you need it and we will come back to you rather than leave you guessing.
Step 4. Before you go live
- Place one real order yourself and watch it arrive where you expect: the Orders screen, and your POS or inbox.
- Check the total. Three lines can make it up, each shown separately: the items, your sales tax, and a convenience fee if your agreement carries one. A rate of zero removes its line rather than showing zero. Your Payments screen lists your pricing in full, including whether that fee is added to your customer's bill or absorbed by you, and any flat monthly amount billed with your subscription.
- Learn the two service controls on the Orders screen: Pause online ordering when the kitchen cannot take more, which keeps the menu readable but stops orders, and Hide menu, which removes ordering from the widget entirely.
Scheduling: letting visitors book a time
With scheduling enabled, a Book a time tab appears beside Question in the chat, on your site, on your shareable link and in the Playground. A visitor picks a department, then a day from a month calendar that only offers days with something free, then a time, and leaves their name and whichever contact details you require. Nothing can be booked outside the hours you set, inside your notice period, or on a time somebody else already holds: the slot is checked again at the moment of booking, against the same rule that offered it.
Step 1. Add your departments
- Open Scheduling and press Add a department. Name it the way a visitor would say it: Sales, Service, Hygiene, Billing.
- Set minutes per appointment, how many people you can see at once, the shortest notice you accept, and how far ahead you take bookings, in days or in months.
- Enter where bookings go: an email address, and where your plan includes it, a mobile number for a text. Several of either, separated by commas.
- A department can have parts. Add a sub-department when visitors need to choose between, say, Tires and Body shop. A sub-department follows its parent's hours unless you give it its own.
Step 2. Set the hours
- On each department's card, set the opening and closing time for every weekday it takes bookings. A day left closed offers no times.
- Press Save hours. Nothing is saved until you do, so you can correct a time before it goes live. A department with no hours at all is flagged on the screen, because it cannot be booked.
- Choose your timezone once, at the top of the screen. Times are offered on your clock, not the visitor's, and the booking screen says which clock it is showing.
Step 3. Write the opening line
The first thing a visitor reads is yours to set. A clinic asks who you would like to see; a garage asks what the car needs. Leave it blank to use ours.
Step 4. Try it
The Playground shows your real departments and real open times and refuses to book, so you can walk the whole flow without creating an appointment to cancel afterward.
Working the list
- Every booking emails a standard calendar invitation to the department and to the visitor. Google Calendar, Outlook and Apple Calendar all open it with nothing installed.
- Mark a booking done, no show or cancelled. Cancelling frees the time immediately.
- Move a booking to another open time. The visitor is emailed an updated invitation that replaces the one already in their calendar rather than adding a second event, and the move is written into the booking's notes by itself.
- Leave internal notes on a booking. They are stamped with who wrote them and when, read newest first, and are never shown to the visitor.
- Search the list by name, phone or email, and filter it to one department.
Required contact details
Which of phone and email a visitor must give is set under the chat settings, separately for bookings and for orders. One of the two is always required, so there is always a way to reach the person. The labels on the booking form follow the setting.
What it does not do yet
It does not read your own calendar to block times you booked elsewhere, so a slot you fill by hand in Google Calendar is still offered here. Keep the department's hours and capacity honest, or cancel the slot on the Scheduling screen, until a two-way calendar connection exists.
Analytics
If enabled on your plan, Analytics in your dashboard shows every question and feedback submission, each with automatic sentiment classification, in filterable Questions/Feedback tabs, with a volume-and-sentiment chart, a time-range filter, and a sortable, paginated table of recent activity (including which domain each question or feedback came from, if you embed on more than one site).
Unanswered questions
Questions your widget couldn't answer are auto-detected and grouped into topic categories, so you can see exactly what to add to your knowledge base next, available on select plans.
Digest email
A periodic summary of question/feedback/unanswered activity, sent to whoever you designate, frequency and recipients are configurable, where available on your plan.
Team & billing
Adding people
Open Team in your dashboard, enter an email address, choose what that person may do, and send the invitation. They get an email with a link to join. Until they accept, the invitation holds a seat and shows on the same page as invited, where it can be withdrawn if you typed the wrong address. How many people you can add depends on your plan, and the exact number for each one is listed under Plans and limits above; the Team page shows how many of those seats are in use.
What each person can do
There are two kinds of access. An Admin can change anything: sources, widget settings, API keys, billing, and who else is on the team. A Member can see all of the same screens and change none of it, which is the right choice for anyone who needs the numbers without needing to edit the answers your visitors get.
Only an Admin can invite people or change somebody else's access.
Removing people
An Admin can remove anyone except themselves. Leaving is not the same as being removed, and the button next to your own name would be the one action with no way back, so another Admin has to do it. Two other removals are refused for the same reason: the last Admin, which would leave nobody able to change anything, and the last person on the team, which would leave an account nobody can sign into. Make somebody else an Admin first, or delete the account.
Deleting the account is the way to close it properly, and it is what removes that last person. It cancels the subscription, wipes your sources, connections and API keys, and removes everyone from the account.
Subscribe, switch plans, or cancel any time from Billing in your dashboard, self-serve, no need to contact anyone. Where a plan is offered yearly, the Monthly / Yearly switch above the plan cards changes what you are quoted and what you are charged, and yearly cards show the equivalent monthly figure so the two are comparable. You can move between monthly and yearly on an existing subscription without re-subscribing: moving up is prorated and charged that day, moving down takes effect at your next renewal so you are never billed twice for a period you have already paid for. Switching plans applies immediately with prorated charges/credit; a downgrade that would put you over the target plan's limits (documents, database connections, etc.) is blocked with a clear explanation of what to remove first. Use Manage billing & view invoices on the same page to update your payment method, view/download past invoices, or reach Stripe's own billing tools directly.
Free trials and promotional prices
Where a plan includes a free trial you get its full feature set from the day you subscribe, with usage capped at trial volumes rather than the plan's full allowance, and your card is not charged until the trial ends. Each account gets one trial, so cancelling and resubscribing does not start another. If you would rather have the plan's real limits straight away you can skip the trial when you subscribe, or end one already running, from the same Billing page. Skipping does not use up your trial, because none was ever started.
A promotional price runs for a set number of months counted from your subscribe date, not to a shared end date, so signing up later does not mean a shorter offer. The Billing page shows how long yours has left. When it runs out you move to the plan's normal price with nothing to do at your end.
Not sure which plan you need? Compare plans puts them side by side and lists only what actually differs between them, rather than repeating everything every plan includes.
Data & security
Two different things, and it is worth being precise about which is which.
Your files are stored securely. Uploads go to private storage rather than a public URL, every row and every search is scoped to your account, and database connection strings, for the connections still in development, are encrypted at rest with AES-256-GCM. Nobody browsing the internet can find your documents, and no other customer can reach them.
What is inside them is answerable to visitors, by design. That is the product: anything you add to your knowledge base can be surfaced in an answer to any visitor of a site where your widget or shared link is live, and there is no login on the visitor-facing side. Storing a file securely is not the same as keeping its contents private. Don't add confidential or sensitive information you would not want quoted back to a stranger.
Database connections are in development and not available yet. When they arrive they will be read-only and sandboxed: every query wrapped, capped, and restricted toSELECT/WITH statements only; nothing you connect can be modified through the widget.
Who on your team can see what
Access is per person, not per account. A Member can open every screen and change none of it, which is the right level for anyone who needs the numbers without needing to edit the answers your customers get. An Admin can change anything. Both are set when you invite somebody and can be changed later from Team.
What we do at our end
Pages are served over HTTPS only, with strict transport security, and your dashboard cannot be embedded in a frame on another site. Full dashboard URLs are never sent to third parties in a referrer header, since they identify your account and your documents. When you add a page by URL, we resolve the address first and refuse anything pointing at a private or internal network, following every redirect rather than trusting the address you typed.
If something fails, you see a short message and a reference number rather than the underlying error. The detail is recorded for us, and quoting that reference is enough for us to find exactly what happened.
Closing your account
Deleting your account closes it for good and signs you out, removes your sources, connections and API keys, and removes everyone on the team with them. Reach it from Billing in your dashboard.
Status & maintenance
Current system status, and a history of past incidents and scheduled maintenance, is always available at chatagently.com/status.
Questions this page doesn't answer?
Contact us