Starko

One script tag on your site.Chat, help and bug reports.

The widget is the part of Starko your customers see. Visitors chat with Starko AI and your team, read your help center and report a problem. With recording on, it also captures the session around anything that goes wrong, so the factory can see what happened.

Back
NNorthwindHi! How can we help?
Export keeps failing, I need this report for a meeting.
NNorthwindSorry about that. While we look into it, you can download the same report as CSV: open Reports, then the ⋯ menu, then Download CSV.
CSV works, thanks. But the Export button just does nothing?
Type your message...
At a glance

Chat widget in short.

Install
One script tag, or a small Next.js component. The snippet carries your client key.
Screens
Home, Messages and Tickets, on your accent colour with your workspace logo.
Built in languages
English, German, French, Spanish, Italian and Montenegrin. Your own texts translate to any language.
Chat attachments
Images, up to 6 per message, 25 MB each.
Report a Problem
Title, description and attachments up to 10 MB. Each report becomes a ticket.
Identity
An HMAC-SHA256 userHash signed by your server, checked against your identity secret.
Recording
Off by default. Uploads only after an error, a rage click or a conversation.
Price
Free, like the rest of the support side.
Install

Paste one snippet, or let Starko AI add it.

The Installation page under AI assistant shows the snippet with your workspace's client key already in it: a script tag for any website, and a component for Next.js. The widget renders in its own iframe, so your styles and its styles stay apart. During onboarding, Starko AI can open the pull request that adds the snippet to your website's repository instead.
  • Widget.init returns an instance with setOpen, isOpen, identify, logout, setLanguage, setActions and destroy.
  • Set a custom launcher icon with imgSrc, and the bubble's offset from the bottom right corner with position.
  • Pass release with your app version so error tickets say which build raised them.
  • If you let Starko install the widget during setup, it opens that change as a pull request, and it merges only once your repository's checks pass.

Installation basic script

Copy and paste the following code into your website.

<!-- Include the Starko Chat widget script -->
<script src="https://chat.starko.one/widget.js"></script>
<script>
  window.Widget && window.Widget.init({
    props: { clientKey: '3f9a2c71-0b4e' }
  });
</script>

User identity

Pass your logged-in user’s details to the widget so conversations attach to a real customer profile. Verify identities with an HMAC so visitors can’t impersonate each other.

Identity secret

Used by your backend to sign the identifier.

••••••••••••Rotate

Require identity verification

Reject identify() calls without a valid userHash.

Screens

Three tabs: Home, Messages and Tickets.

Home greets the visitor by name when you identify them, offers Ask a question, and lists the collections from your Knowledge hub with their articles. Messages is the chat with Starko AI and your team. Tickets is Report a Problem, a form with a title, a description and attachments that files a ticket in your workspace.
  • Replies stream in as they are written, with formatting, links and cards. Sending a new message interrupts a reply that is still being written.
  • Visitors can attach images in chat: up to 6 per message, 25 MB each.
  • The accent colour sets the launcher and the widget background, and the icon inside is your workspace logo. The default is a deep blue, #1E1E71.
  • The greeting and the Home, navigation and ticket page texts are yours to edit in AI assistant settings.
  • Every chat lands in Conversations, in the same inbox as your other channels.
Identity

Tie every chat to a real customer.

Call identify with the signed in user's id, email and name, plus any custom attributes, and the conversation attaches to their customer profile. Your server signs the id with the workspace's identity secret and passes the result as userHash, so a visitor cannot pose as someone else.
  • Custom attributes, such as plan or account id, show on the customer card next to every conversation, so Starko AI and your team see them.
  • Require identity verification rejects identify calls without a valid userHash. Leave it off while you integrate.
  • Only owners can rotate the identity secret. Rotating it invalidates hashes made with the old one.
  • Call logout when the user signs out, or the next person at that browser sees their chats.
  • Visitors you have not identified still chat, as anonymous visitors.
Page actions

Let the assistant act on the page.

Register a catalogue of actions with setActions: a name, a description and JSON Schema parameters for each, plus one execute callback. When Starko AI decides to act, the action runs right in your page, such as adding to a cart, opening a record or switching a view, and the result goes back to the AI so it can confirm or react.
  • Each reply shows a chip for every page action it ran: Done on this page, or Could not do this on the page.
  • Results are capped at 32 KB and read as data, never as instructions. Return summaries, not whole datasets.
  • Keep actions quick: the assistant waits only a few seconds for a result.
  • Page actions exist only in the web chat, never on WhatsApp, Instagram or email.
Recording

It records the moment something goes wrong, and nothing else.

Turn on Record visitor sessions in Settings, on the Fix agent page. The widget then records the page with rrweb into a buffer in the visitor's browser and uploads a clip only when something happens: a JavaScript error, a failed call to Starko, a page action that failed, a rage click, or the visitor opening a conversation. Ordinary visits upload nothing. The clip shows up next to the conversation, and feeds session replay analysis.
  • Every input is masked before anything leaves the page.
  • Add starko-mask to mask an element's text, or starko-no-capture to leave it out of recordings entirely.
  • Pass sessionReplay: false to keep a page, like checkout, from recording at all.
  • Report page errors as tickets, also off by default, turns uncaught errors into one bug ticket per distinct error. See error tracking.
  • Workspaces with recording off never load the recorder script.
app.northwind.io/reports
Reports
Export
Export failed. Try again later.
Back
NNorthwindHi! How can we help?
Export keeps failing, I need this report for a meeting.
NNorthwindSorry about that. While we look into it, you can download the same report as CSV: open Reports, then the ⋯ menu, then Download CSV.
CSV works, thanks. But the Export button just does nothing?
Type your message...
Modes

A chat bubble, an inline assistant, or a contact form.

The default is the floating chat. Doc mode embeds a compact assistant inside a page, such as your docs, instead of the bubble. Ticket-only mode replaces chat and help center with one Contact us dialog: a message box, image attachments and Send, and each message becomes a ticket.
  • In ticket-only mode, anonymous visitors get one extra field for their email, so someone can reply. With recording on, the minutes before Send become the ticket's recording.
  • Open the ticket-only dialog from your own button with data-starko-open or a trigger selector.
  • Set lang to a language code, or "auto" to follow the browser. setLanguage switches it live when your site's language changes.
  • Starko AI always replies in the language the customer writes in, whatever the widget language.

FAQAbout Chat widget.

Connect a channel and a repository. Turn the support queue into a build queue.

Feedback starts flowing in minutes. The first recommendation shows up as soon as a pattern repeats, and the first pull request as soon as you accept one.