Control panel → Integrations — connect content sources and channels for accessing knowledge.


#Content sources

#Connected (always active)

Source Description
LiKE Editor Built-in AI editor for creating articles
File import Upload PDF, DOCX, TXT, MD, RTF, ZIP
Import by link Google Docs, Dropbox, direct file links

#Available connectors

Source Description Mode
Wiki.js Import or sync articles Sync / Import
Confluence Import from Atlassian Confluence Cloud (OAuth) Sync / Import
Notion Import pages and databases Sync / Import
GitHub Sync Wiki and Markdown files from repositories Sync / Import
GitLab Sync Wiki and Markdown files from projects Sync / Import
Gitea Sync Wiki and Markdown files from self-hosted Gitea Sync / Import
Web connector Pages of your public website: via its sitemap or by crawling links Sync

The number of connected sources is limited by your plan. When the limit is used up, the "Connect" button on sources is inactive — disconnect one or move to a higher plan. Slack and Telegram bots do not count toward this limit.


#Connecting GitHub

#Step 1 — Authorization

  1. In LiKE go to Integrations → GitHub → "Connect"
  2. Choose an authorization method:
Method Description
Personal Access Token (PAT) Create a token in GitHub → Settings → Developer settings → Personal access tokens. Fine-grained (recommended): Repository access + Permissions → Contents: Read-only (Metadata: Read is added automatically); for organization repositories the token must be approved by the organization's owner. Classic: scope repo. Enterprise: specify the Base URL https://HOST/api/v3
OAuth Authorization via GitHub App — click "Authorize" and confirm access

#Step 2 — Choosing content

  1. After connecting, a repository tree with folders and files is shown
  2. Check the specific files or folders to import (Selective Sync)
  3. Supported formats: .md, .mdx, Wiki pages

#Step 3 — Running the sync

  1. Click "Sync"
  2. Progress is shown in real time
  3. Once finished, articles appear in the list with a GitHub label

#Connecting GitLab

#Step 1 — Authorization

  1. In LiKE go to Integrations → GitLab → "Connect"
  2. Choose an authorization method:
Method Description
Personal Access Token (PAT) Create a token in GitLab → Preferences → Access Tokens. Scopes: api and read_user; the token role must be at least Reporter (Guest can't see code). Works for GitLab.com and self-hosted (for self-hosted, specify the instance's Base URL)
OAuth Authorization via GitLab Application — click "Authorize"

#Step 2 — Choosing content

  1. A project tree with Wiki pages and Markdown files is shown
  2. Check the specific pages to import (Selective Sync)

#Step 3 — Running the sync

Same as GitHub — click "Sync" and wait for it to finish.


#Connecting Gitea

Gitea is a self-hosted git platform. It connects via a Personal Access Token and a mandatory URL of your instance (there is no cloud Gitea by default).

#Step 1 — Create a token in Gitea

  1. In Gitea open Settings → Applications → Generate New Token
  2. Grant the scopes read:repository and read:user
  3. Copy the token

#Step 2 — Connect in LiKE

  1. In LiKE go to Integrations → Gitea → "Connect"
  2. Specify the Base URL of your instance (for example https://gitea.company.com) — this field is mandatory, without it the connection won't go through
  3. Paste the token
  4. Choose where to put the articles (a Space and a folder in it — or create new ones) and a mode (Sync — a continuous mirror / Import — a one-time copy)

OAuth 2.0 is also supported if the Gitea administrator has set up an OAuth application in advance. The primary path is the token.

#Step 3 — Choosing content and syncing

  1. A repository tree with Wiki pages and Markdown files (.md, .mdx) is shown
  2. Check the nodes you need (Selective Sync) and click "Sync"
  3. For auto-updates on push, set up a webhook — the secret is generated in the connector card. Articles from Gitea are read-only (as with GitHub/GitLab)

#File selection and sync filters (GitHub, GitLab, Gitea)

For git sources (GitHub, GitLab, and Gitea), the logic of choosing what to sync is more nuanced than a simple "repository on/off":

#What gets synced

Source inside the repository Included
Wiki pages (<repo>.wiki) By default, all Wiki pages of the selected repository
Markdown files in the main tree (*.md, *.mdx) By default, all Markdown files, unless filters are configured
README.md Included as a separate article with the title = <repo-name> · README
Documentation in /docs/** Included if the folder exists; the article name is taken from the # ... heading or the filename
Non-Markdown files (.txt, .rst, .json, code) Not synced automatically — LiKE doesn't parse arbitrary formats

#Path filters (selective sync)

You can narrow down exactly what to take from the repository:

Path filters
+ docs/** + guides/*.md − internal/**
Only files from docs/ and guides/, excluding internal/
Prefix Action
+ path/pattern Include — include files by pattern (glob syntax)
- path/pattern Exclude — exclude files from the sync
(empty) No filters: all Wiki + all .md/.mdx in the repository

#Change detection (recent changes)

LiKE doesn't "download everything" on every run. Change detection is used:

  • GitHub — via webhook (recommended) or polling using If-Modified-Since headers. The webhook reacts to a push instantly, polling — every 6/12/24/48 hours (depends on auto-sync).
  • GitLab — likewise: webhook or polling by last_activity_at via the Projects API.
  • Gitea — webhook (X-Gitea-Signature signature) or polling. The push trigger fires only when *.md/*.mdx changes.

Once a change is detected, only the affected files are synced; the rest of the corpus is not recomputed. This saves a lot of GitHub/GitLab API quota and execution time.

#Branch and tags

Parameter Default value
Branch The repository's default branch (usually main / master)
Alternative branch Can be specified explicitly (for example, sync with release/v2)
Tag-based sync Optional: syncing by a version tag (for example, documentation for version v3.0)
Multi-branch Pro+: you can sync several branches in parallel as different articles

#History and conflicts

  • Sync history — the "History" tab in the connector card: date, status ( ok / warnings / error), the number of added / updated / deleted articles, run duration. Useful for debugging "why an article from the repository didn't appear."
  • Edit conflicts — if an article from the source was edited in LiKE (for GitHub/GitLab this is not allowed by default — articles are read-only). If the mode is Import (a one-time copy), the articles become editable and the link to the source is broken.

#Selective Sync for other connectors

Notion, Confluence, Wiki.js — they have their own selection logic (a page tree), but the principle is the same:

  1. On connecting, the source's content tree is shown
  2. Checkboxes — mark the nodes you need
  3. The rest is not imported
  4. On a re-sync, only the selected items are updated

#Connecting Wiki.js

#Step 1 — Get a Wiki.js API token

  1. Open your Wiki.js → Administration → API Access
  2. Enable the API (if it's disabled)
  3. Click New API Key
  4. Name the key (for example LiKE Integration)
  5. Group: Administrators (access to all pages is required)
  6. Expiration: no expiration or 1 year
  7. Copy the generated token

#Step 2 — Connect in LiKE

  1. In LiKE go to Integrations → Wiki.js → "Connect"
  2. Enter the URL of your Wiki.js (for example https://wiki.company.com)
  3. Paste the API token
  4. Choose a mode:
Mode Description
Sync A continuous link — changes in Wiki.js appear in LiKE automatically
Import A one-time copy of all articles
  1. Click Save

#Step 3 — Configure the sync

Parameter Description
Auto-sync Enable/disable automatic updates
Interval Every 6, 12, 24, or 48 hours
Language Filter by article language (all / specific)

#Connecting Confluence

Confluence connects via OAuth 2.0 — secure authorization without entering passwords.

#Step 1 — Connect your Confluence site

  1. Requires Confluence Cloud — an address like your-company.atlassian.net. Confluence Server and Data Center are not supported
  2. Click «Connect» and sign in to your Atlassian account
  3. In the access window, select your Confluence site and click «Accept». LiKE will only see what is available to you
  4. Seeing «Access denied»? Check at start.atlassian.com that your account has a Confluence site. If it does, ask your Atlassian administrator to allow app connections: admin.atlassian.com → Apps → your site → Connected apps → Settings → turn off «Block user apps»

Review the permissions — LiKE requests read-only: page content and the list of spaces

#Step 2 — Where to put articles and what to take

Open "Configure" on the Confluence card:

Parameter Description
Target space for articles Space and Where to put it — the folder inside the space where the articles will go. No suitable one — Create collection inside or Create new space. The space itself cannot be the target
What to synchronise The Confluence tree on the right: spaces and their pages. It is re-read every time you open it
Schedule The "Enabled" checkbox — automatic updates at the interval
Sync Interval Every 1, 2, 4, 6, 12, or 24 hours
Delete articles when removed from source On — a page deleted in Confluence is deleted in LiKE too, including one already marked. Off — the article stays, marked "Removed from source", and the decision is yours

Click "Synchronise".

#How selection works

What is ticked What sync takes
Whole space All its pages — including those that appear in Confluence later. The space's articles go into their own folder
Individual pages Only the ticked ones; new pages of the space are not taken

While nothing is ticked, there is nothing to sync — the card will say so. An unticked space is removed from LiKE together with its folder.

#What we do not transfer

  • Personal spaces — they are not in the tree: these are employees' personal notes, and their name is the person's name.
  • Mentions of people — a labelled mention keeps its label as text, a mention without a label is removed; task assignees are not transferred. LiKE does not store Atlassian user identifiers or profiles.

Articles from Confluence are read-only. To edit, change the original in Confluence, and LiKE will update on the next sync.

When disconnecting Confluence, you can keep a copy of the articles in LiKE (they become editable) or delete them.


#Connecting Notion

#Step 1 — Create an integration in Notion

  1. Open Notion → click your avatar (top-left corner) → Settings
  2. In the left menu choose My connections (or Integrations)
  3. Click Develop or manage integrations → New integration
  4. Enter a name (for example LiKE Import), choose a workspace
  5. Click Submit → copy the Internal Integration Secret (starts with ntn_; for older integrations — with secret_)

#Step 2 — Give the integration access to pages

By default, the integration has no access to any pages. You need to explicitly allow it:

  1. In Notion, open each page (or the parent page/database) you want to import
  2. Click ⋯ (three dots, top-right corner) → Connect to → choose your LiKE Import integration
  3. Confirm access
Tip: Give access to the root page — all child pages automatically become available to the integration. There's no need to connect each page separately.

#Step 3 — Connect in LiKE

  1. In LiKE → Control panel → Integrations → Notion → "Connect"
  2. Paste the Integration Secret (copied in step 1)
  3. Choose where to put the articles: a Space and a folder inside it — or create a new folder or a new space right here
  4. Choose a mode:
Mode Description
Sync A continuous link — changes in Notion appear in LiKE automatically. Articles are read-only
Import A one-time copy. Articles become editable in LiKE
  1. On the "Select content" step, tick what to take: whole catalogs or individual pages. A catalog is a root page or database you gave access to in step 2. Until something is ticked, the wizard won't let you continue
  2. Click "Connect & Sync" — each catalog's articles go into their own folder inside the folder chosen in step 3

#How selection works

What is ticked What sync takes
Whole catalog All its pages — including those that appear in Notion later
Individual pages Only the ticked ones; new pages of that catalog are not taken

Pages without text — for example, database records with nothing but properties — do not become articles. The Notion card shows how many were skipped: "empty pages skipped: N".

#Step 4 — Settings

Open "Configure" on the Notion card:

Parameter Description
Target space for articles Space and Where to put it — the folder that holds the catalog folders. You can choose another one or create a new one
What to synchronise The Notion tree on the right. It is re-read every time you open it — new pages of the selected catalogs are already ticked. You can change the ticks at any time: an unticked catalog is removed from LiKE together with its folder
Schedule The "Enabled" checkbox — automatic updates at the interval
Sync Interval Every 1, 2, 4, 6, 12, or 24 hours
Delete articles when removed from source On — a page deleted in Notion is deleted in LiKE too, including one already marked. Off — the article stays, marked "Removed from source", and the decision is yours

When disconnecting Notion, you can keep a copy of the articles in LiKE (they become editable) or delete them.


#Web connector

The web connector connects the pages of your website to LiKE in a couple of minutes. Paste the address — LiKE finds the pages via the sitemap or by crawling links, pulls their text and keeps the copy up to date. LiKE AI search works on these pages right away, and if needed you can put a search widget on the site — for customers or for employees.

Useful when your documentation or help center is already published — on your own domain, in Docusaurus, GitBook, Docsify and the like. The site must be public. One organization connects one site.

#Step 1 — the address and how to find pages

Integrations → Web connector → Connect. Paste the address — any page will do, we take the whole site.

How to find pages:

  • By sitemap — the default. The sitemap is found for you: first via robots.txt, then via /sitemap.xml;
  • No sitemap — follow links — we follow links from the home page within this site; set the Crawl depth. Pages the site renders with scripts stay invisible to the crawl.

Press Check the site. If no sitemap was found, the wizard offers to switch to following links and check again.

#Step 2 — what we will take

The check saves nothing: it shows how many pages were found and how many will be added. If the volume does not fit your plan, the wizard says so right away, not after the crawl.

  • Language version — appears if the site serves pages in several languages. Choose which one to take; the numbers and folders are recalculated for it.
  • What we will take — the list of folders you will get in the base, with the number of pages in each. Ticked means we take it; an unticked folder can be ticked again. The Selected counter counts only ticked ones.
  • Tag and category archives — link lists to articles that will be imported anyway — are not taken by default; tick them if you need them.
  • If the site is organized by year, each year becomes its own folder. When there are three or more years, the site's two most recent years are ticked; the others can be ticked manually.
  • The site's home page becomes a separate article in the "Home" folder.
  • Pages per crawl is our setting, not the size of the site: the rest is picked up by later runs.

A page's folder is only visible from the page itself, so more pages are checked than will be added; the wizard shows both numbers.

Suggestion: what to take (only when following links). The Ask the model button suggests which groups of addresses to take and which not, with reasons. It is a suggestion, not a decision: tick what you agree with. Usage is counted like the editor's AI operations; the answer is remembered and recalculated only with the Recompute button.

#Step 3 — how to save and where to put it

How to save the pages:

  • Internal — visible to the team only — the default;
  • Public — visible to everyone.

If the selected folder is already open to everyone, the wizard warns you and suggests Public: pages in such a folder are available to all. To keep them for your team only, choose Internal — they then stay hidden even in an open folder. In a closed folder, internal pages follow its access: if you later make the folder public, they open with it — after the personal data check.

Public access requires both checkboxes: that you hold the rights to the site and its content, and that personal data on the site is published lawfully and you may make it available in search and assistant answers. Without them the Connect button is inactive. The consent is recorded — who confirmed which text and when — and applies to all articles of this site: when they are published, personal data does not need to be confirmed for each article separately. It does not apply to articles written in the editor. To withdraw consent, disconnect the site and connect it again choosing "Internal".

Where to put it: choose a Space and a folder inside it. No suitable folder — Create collection inside; no suitable space — Create new space: they are created when you connect. The space itself cannot be a target, and the folder must be empty: only the connector itself puts content into a source's folder.

After Connect the crawl starts immediately: progress is visible on the connector card ("Syncing 22 of 92 selected") and in the background-jobs indicator.

#What is taken and what is not

  • the page content is taken — without the site's menu, header and footer;
  • folders are ticked in the wizard and later in the connector settings (Configure → Site folders);
  • service sections such as search and tags are skipped by default;
  • Pages per crawl caps a single run — protection against very large sites;
  • pages disallowed in robots.txt are not fetched; their count is shown in the run summary;
  • the assistant's answer and the article header have an Open on the site link — to the original page.

#Repeat updates

With Update automatically on, we re-read the site on a schedule. Only changed pages are re-indexed — the run summary says exactly that: "added", "updated", "unchanged". Unchanged pages do not consume the indexing allowance.

Delete articles that vanished at the source is off by default: if a page is gone from the site, the article stays in your base marked "gone at the source". Turn it on when the copy must mirror the site strictly.

Changing the language version after connecting (Configure → Language version) changes what the source consists of. The site no longer updates articles of the previous version, so LiKE asks what to do with them: Delete or Keep as mine (they become editable). Without an answer the setting is not saved.

#Which sites will work and which will not

A public site will work — with a sitemap, like most documentation generators, or without one when following links. Everything else we turn down at the check step rather than after connecting:

What gets in the way What you will see
No sitemap — neither in robots.txt nor at /sitemap.xml The wizard offers to switch to link crawling
The sitemap address returns something other than XML — usually a bot-protection page The connection will not start
There is a sitemap, but after filters no pages are left in it The connection will not start
robots.txt disallows crawling the whole site The connection will not start
robots.txt is unavailable because of a server error The connection will not start: "no answer" is not the same as "allowed"
The site is password-protected or reachable only from an internal network The pages cannot be read
The content is drawn by scripts in the browser The page may come out almost empty — we read the HTML as the server returned it

Individual pages may still be left out after the site has connected: those disallowed in robots.txt, those answering with an error, those over 10 MB, or those returning something other than HTML. All of them appear in the run summary with the reason — "skipped" and "blocked by robots.txt".

Files (PDF, ZIP, images) are not taken from the site. There is a separate path for them — file import, with its own processing.

#Limitations

  • one site per organisation;
  • the site must be public — pages behind a password are not read;
  • a sitemap is not required: without one, link crawling works, but it only sees what the site links to;
  • we respect robots.txt, including the crawl delay it specifies.

Disconnecting. Synchronisation stops, and the articles already imported can be deleted or kept as ordinary ones — LiKE asks about that when you disconnect.


#After connecting: AI search and a widget on your site

  1. When the crawl finishes, the site pages take part in LiKE AI search on a par with articles written in the editor, and the answer links to the original page — Open on site.
  2. To search right on your site, create a widget: Integrations → Channels → JS Widget → Manage widgets → Create widget. In Address of the site where the widget will live, enter this site's address.
  3. Choose the widget type:
    • Public — searches public articles only and is open to every visitor. Suited for customers; for this, save the site pages as Public (step 3).
    • Corporate — searches the selected spaces, internal articles included, and requires signing in. Suited for employees.
  4. Add a search scope and enable the widget. For the Public type — All public articles or the folder (collection) where the connector put the pages: a public widget cannot cover a whole space. For the Corporate type — the space or the folder with the site pages.
  5. Copy the Embed code and paste it into your site. Where to do this in WordPress, Tilda, Wix, Webflow, Squarespace, Shopify, Framer, Google Tag Manager and Docusaurus — see API and widget, section Where to paste the code in website builders.

#File import

#Uploading files

  1. Control panel → Import
  2. Drag files in or click the upload zone
  3. Supported formats: PDF, DOCX, TXT, MD, RTF, ZIP
  4. The AI automatically generates a title and slug for each file
  5. Before publishing you can edit the title or open it in the editor
Parameter Description
Maximum size 20 MB per file, ZIP archive — 24.8 MB (the most a single upload can carry)
Batch upload Up to 50 files at a time; a large selection is sent in parts automatically
Language Detected automatically

#ZIP archives

Upload a ZIP archive with many documents — LiKE automatically unpacks and processes each file. Handy for migrating an entire knowledge base.

Supported files inside a ZIP: PDF, DOCX, TXT, MD, RTF. Other files (images, executables) are skipped.

#Import by link

Paste a link to a document — LiKE downloads and imports it:

  1. Control panel → Import → the "Import by link" section
  2. Paste a URL → click "Add"
  3. You can add up to 10 links at a time
  4. Click "Import"

Supported sources:

  • Google Docs — automatically exported as DOCX
  • Google Sheets — exported as CSV
  • Dropbox — a direct file link
  • Any direct URL to a PDF, DOCX, TXT, MD, or RTF file

#Default visibility

For each source you can configure a default visibility:

  • Draft — articles are created hidden
  • Team — visible to authorized users
  • Public — visible to everyone, including anonymous users

Configured in Integrations → source card → Visibility.


#Access channels

Channels let your employees search for information through familiar tools.

#Slack bot

Connecting Slack:
1. Click "Connect Slack" in the Integrations section
2. Authorize the LiKE app in your Slack workspace
3. Choose a channel for notifications
4. Done — employees use /like question or @LiKE

Features:

  • /like how do I set up SSO? → an AI answer right in Slack
  • Mentioning @LiKE in any channel → an answer in the thread
  • Links to source articles (clickable)

#Telegram bot

The bot answers your team's questions right inside Telegram, using your knowledge base.

#Step 1. Create the bot in Telegram

Bots are created inside Telegram itself, through the service bot @BotFather — the official tool that issues new bots and manages their settings.

Finding it. Search Telegram for BotFather and pick the one with a blue checkmark — many accounts use similar names, and the checkmark is the only reliable sign of the real one.

Creating. Open the chat, press Start, then send as a normal message:

/newbot

BotFather asks two questions:

  1. Bot name — visible to chat participants. Any language, spaces allowed, for example Lynkora Assistant.
  2. Bot address — how people find it in search. Latin letters, digits and underscores only, and it must end with bot: for example lynkora_help_bot. If the address is taken, BotFather asks for another.

You will receive a token — a string like 8123456789:AAEhBOwe…. You need it for the next step.

The token is the bot's password. Never forward or publish it. If it leaks, send /revoke to BotFather — the old token stops working and you get a new one.

If the bot already exists and the token is lost, use /mytoken.

#Step 2. Connect the bot to LiKE

Open Integrations → Telegram, paste the token into the Bot Token field and press Connect. Owner or administrator rights required.

If the token is rejected, check that you copied the whole string including the digits before the colon, with no stray spaces. A token from a different bot will not work: each bot has its own.

Once connected, the card shows the bot address and an Active badge.

#Step 3. Choose the source of answers

Press Configure and pick the space the bot draws answers from — you can narrow it down to specific collections. Without this the bot replies that it doesn't know, whatever you ask.

The same screen sets whether it serves public articles only or internal ones too. Internal articles require an identified asker — see the next step.

#Step 4. Decide where the bot works

In private chats — one-to-one with the bot. To let the bot know who is writing, the chat is linked to a work account: on the portal home page press Ask in chat, then Get linking code, and send that code to the bot as one message. The code is single-use and valid for 10 minutes. After linking, the bot answers within that person's permissions, internal articles included. Everyone links their own chat.

In a group chat — the bot answers everyone, but from public articles only: a shared chat gives no way to tell who asked.

To make it work in a group:

  1. Turn off message hiding: send /setprivacy to BotFather, pick the bot, press Disable. By default Telegram hides group messages from bots, so the bot simply never sees the questions.
  2. Remove the bot from the group and add it back — otherwise the setting has no effect: Telegram applies it when the bot joins.
  3. Add the group chat to the allowed list in the integration settings.

#Step 5. Check it works

Ask the bot something covered by your knowledge base. The answer arrives in the same chat with links to the source articles.

The answer language follows the question — ask in German, get German. The "service message language" setting only covers service replies: refusals and linking confirmations.

#Disconnecting and deleting

Disconnect from LiKE: Integrations → Telegram → Disconnect. The bot stops answering and the link is removed; the bot itself stays in Telegram and can be connected again.

Switch to another bot: disconnect the current one first, then connect the new one. The other way round leaves the old bot pointed at LiKE, sending messages nobody will process.

Delete the bot entirely: /deletebot in BotFather. This is irreversible — the address is released and the bot cannot be restored.

#If the bot stays silent

What you see Why What to do
Silent in a group, answers in private Telegram hides group messages from the bot /setprivacy → Disable, then remove the bot from the group and add it back
Silent everywhere though connected You are writing to a different bot — similar names are easy to mix up Compare the bot address in the chat with the one on the integration card
Replies that the chat is not linked The private chat is not tied to a work account Get the linking code in the portal and send it to the bot
In a group answers from public articles only By design: a shared chat hides who is asking For internal articles write to the bot privately
Stopped answering after switching bots The new one was connected without disconnecting the old Disconnect the integration and connect the right bot again
Answers "I don't know" to everything No source of answers selected Integrations → Telegram → Configure → pick a space

#JS widget (for your website)

A floating AI search button to embed on any website. The most popular integration — a user sees a button in the corner of the page, clicks it, and a chat with the AI and search across your knowledge base opens.

#Simple installation

Install in 3 steps:
1. Integrations → Channels → the "JS Widget" card → "Manage widgets" → "Create widget" → give it a name, enter the site address and save
2. Copy the embed code (a `<script>` tag with a unique api-key)
3. Paste it before </body> on any page of your website

When the AI-answer allowance is used up. The public widget is not shown on the page at all — no button, no limit message; the hotkey does nothing. Once the allowance is available again, the widget appears on the next page load.

#Basic parameters

Parameter Description
Name The widget's internal name (for the admin panel, not visible to users)
Position Bottom-left or bottom-right corner
Accent color The color of the button and accents in the chat (taken from branding by default)
Hotkey For example Ctrl+K / ⌘K to open the chat from the keyboard
Button on the site Rinni (default), the bubble or your own icon — a PNG, JPEG or WebP image up to 512 KB: it is rebuilt on our server, so only pixels reach the button. Changes on the site right away; the embed code stays the same. If the image fails to load, the site shows the bubble
Icon background For Rinni: no background (default) or a white circle — Rinni stays whole inside and does not get lost on a busy site. The bubble and your own icon already sit in a circle
Visitor hint Bubble (default): after 3 seconds an invitation to ask appears next to the button and folds into a dot on the button after 15 seconds. Label: “Ask a question” slides out next to the button for 9 seconds. Off — no hint. Once per visit; a bubble closed with the cross stays hidden for 7 days. Not shown while the widget is open, a site field has focus or the tab is hidden With a named icon the bubble greets visitors in its name: “Hi, I'm Rinni!”; on phones the second line is “Ask me!”.
Remind On signals (default): rings around the button when a visitor is looking for an answer — 25 seconds of inactivity, scrolling up and down, the third page of a visit; otherwise once every 60–90 seconds. Occasionally — only once every 60–90 seconds. Never. At most 3 times per page, none after the widget has been opened. With the system “reduce motion” setting there are no rings or jumps
Your own hint text One per language, up to 140 characters. A language without your own text gets the standard text in the visitor's language
Assistant name Up to 7 characters (letters, digits, space, hyphen), one for all languages, with any icon: the assistant greets visitors with “Hi, I'm …!” in the bubble and introduces itself in the widget window. Empty — Rinni is called “Rinni”, the bubble and your own icon have no name
On phones and above site bars On phones the button is smaller and closer to the corner; the bubble shows a title and a short line, appears after 5 seconds and folds after 8. On any device: if a site bar is pinned to the bottom of the screen under the button (cookie banner, bottom menu), the button moves above it and the hint waits until the bar is gone
Default language Used only when the visitor's language is unknown: the visitor's choice in the widget window and their browser languages take priority. The language of the site page is not considered
Site address Where the widget works; separate several with commas. The widget can't be enabled without an address
"Powered by Lynkora" footer Can be hidden on plans with white-label

#Dual-auth: two authentication modes (ADR 0032)

In LiKE the widget can work in one of two modes — chosen at creation:

Mode 1 — Allowed paths
For public websites
A widget on a landing page, marketing pages, or a support center. Authentication is anonymous — any visitor can use it.
Protection:
  • Whitelist of URLs where the api-key is valid
  • Scope = __public__ or specific public collections
  • Rate limit per api-key
Mode 2 — Session JWT
For a corporate site with authentication
A widget on a corporate intranet or SaaS application. The widget accepts the user's session JWT and sees exactly what they have access to.
Use case:
  • The company's internal portal
  • An SSO-aware widget in your own product
  • Sees the user's spaces

For details on configuring each mode and integrating with your backend, see API & widget.

#Scope: what the widget can find

When creating a widget, you set a scope — what exactly it searches:

Scope entries
public_umbrella — all public articles of the organization (for an allowed-paths widget)
space:<id> — a specific space (for a session-JWT widget)
collection:<id> — a specific collection (a narrow scope, for example only the FAQ)

Within a single widget you can combine several scope entries (for example, two collections from the same space).

#Multi-widget per tenant (ADR 0029 Stage 4)

Within an organization you can create several independent widgets with different scopes and modes:

Widget Scope Where embedded
Marketing site widget public_umbrella (Public KB) On yourcompany.com — anonymous
Support center widget collection:faq-coll On support.yourcompany.com — FAQ only
Intranet widget space:eng-space (by JWT) On intranet.yourcompany.com — corporate, sees spaces by permissions

Each has its own api-key and usage analytics, and the key can be revoked independently. Management is in Integrations → Channels → JS Widget → "Manage widgets".

#Session management (Session JWT mode)

In Session JWT mode, each user session has a unique sessionId. An admin can view the active sessions of a specific widget and forcibly revoke a token (for example, if compromise is suspected). The list is in Integrations → Widgets → [widget] → Sessions.

#iframe / Direct Link

Embed the full LiKE search interface on any page:

  1. Integrations → iframe → copy the code
  2. Paste <iframe src="..."> into your page
  3. Or use the direct link to navigate (a full page, not an embed)

iframe and Direct Link also support dual-auth — chosen at creation.

#REST API

A full API for programmatic integration (for example, your own UI or integration with other systems):

  1. Integrations → Public API → "Create Key"
  2. Specify a name and the allowed domains
  3. Copy the key — it's shown only once, after reopening it will be masked

Use the key in the X-API-Key header. The key serves only public articles.

Main endpoints:

Endpoint What it does
POST /api/public/search AI search across the knowledge base (full flow: retrieval + answer + sources)
GET /api/public/toc Table of contents of public articles
GET /api/public/articles List of public articles
GET /api/public/articles/{id} Article content

Limits: requests are limited per key; exceeding the limit returns HTTP 429 with a Retry-After header.

Full API documentation: API & widget.


#Languages

LiKE supports 25+ languages for AI search and cross-language search (the interface itself is available in 12 UI locales):

Русский, English, Deutsch, Français, Español, Português, Italiano, Nederlands, Polski, Čeština, Svenska, Dansk, Suomi, Română, Magyar, Hrvatski, Türkçe, Afrikaans, Kiswahili, Bahasa Indonesia, Tiếng Việt, Українська, Српски, Български, Ελληνικά, 한국어, 日本語, 中文, हिन्दी, ไทย, עברית, العربية.

Cross-language search: a question in one language → an answer from articles in another.