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
Documentation site A public site via its sitemap Sync

#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 a space/collection 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 → AdministrationAPI 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 — Click "Connect Confluence"

  1. In LiKE go to Control panelIntegrations
  2. Find the Confluence card → click "Connect"
  3. The Atlassian authorization window opens

#Step 2 — Authorize in Atlassian

  1. Sign in to your Atlassian account (if you haven't already)
  2. Atlassian shows a request: "LiKE is requesting access to your Confluence"
  3. Review the permissions — LiKE requests read-only: page content and the list of spaces
  4. Click "Accept"

#Step 3 — You return to LiKE

After confirmation you're automatically redirected back to Integrations. The Confluence card shows:

  • Status: Connected
  • Your Confluence site name
  • A "Sync" button

#Step 4 — Run the sync

  1. Click "Sync" for the first import
  2. LiKE loads all pages from the accessible Confluence spaces
  3. Articles appear in the knowledge catalog

#Step 5 — Configure auto-sync

Open the settings (the gear icon on the Confluence card):

Parameter Description
Auto-sync Enable automatic updates
Interval Every 6, 12, 24, or 48 hours

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 integrationsNew 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 panelIntegrations → Notion → "Connect"
  2. Paste the Integration Secret (copied in step 1)
  3. Choose a space for the import (existing or create a new one)
  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. Click "Connect"
  2. LiKE loads all pages the integration has access to

#Step 4 — Configure auto-sync

Open the settings (the gear icon on the Notion card):

Parameter Description
Auto-sync Enable automatic updates
Interval Every 6, 12, 24, or 48 hours

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


#Connecting a documentation site

The connector pulls articles from a public site: it reads the sitemap and keeps a copy in LiKE. Useful when your documentation is already published — on your own domain, in Docusaurus, GitBook, Docsify and the like.

#Step 1 — the site address

Integrations → Documentation site → Connect site. Paste the address — any page will do, we take the whole site. The sitemap is found for you: first via robots.txt, then via /sitemap.xml.

#Step 2 — what we found

Press Check site. The scan saves nothing: it only reads the sitemap and shows how many pages were found and how many will be added once filters are applied. If there is no sitemap, the connection does not start and we say so plainly instead of quietly importing nothing.

#Step 3 — where to put it

Choose a space and a collection — the collection can be created right in the wizard. After Connect the crawl starts immediately: progress is visible on the connector card ("Crawling site 22 of 92") 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;
  • Site sections limit the crawl by path (/docs/, /guides/); leave empty to take the whole site;
  • service sections such as search and tags are skipped by default;
  • Pages per run 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.

#Repeat updates

With automatic sync 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.

Remove pages that disappeared is off by default: if a page is gone from the site, the article stays in your base. Turn it on when the copy must mirror the site strictly.

#Which sites will work and which will not

A public site with a sitemap will work — that is how most documentation generators are built. 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 connection will not start
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 required: without one the connection will not be made;
  • 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.


#File import

#Uploading files

  1. Control panelImport
  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, 100 MB for a ZIP
Batch upload Up to 10 files at a time
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 panelImport → 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

Connecting Telegram:
1. Create a bot via @BotFather in Telegram
2. Copy the bot token
3. Paste the token into LiKE → Integrations → Telegram
4. Add the bot to the desired group

Features:

  • Direct messages to the bot → an AI answer
  • In a group chat: /ask question → an answer
  • Support for 25+ languages

#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 → Widgets → "+ Create widget" → give it a name 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

#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
Language The chat UI language (auto-detected from <html lang> if not set)
Placeholder The text in the input field ("Ask a question…")
Chat logo Branding of the chat header (on plans with white-label)
"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 → Widgets → "+ Create".

#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 → API Keys → "Create key"
  2. Specify a name (what the key is for) and a scope (same as for a widget — public_umbrella / space / collection)
  3. Copy the key — it's shown only once, after reopening it will be masked

Use the key in the X-API-Key header or as a Bearer token.

Main endpoints:

Endpoint What it does
POST /api/public/search AI search across the knowledge base (full flow: retrieval + answer + sources)
POST /api/public/ask The same, without the AI answer — only a list of relevant articles
GET /api/public/articles List of articles in the api-key's scope
GET /api/public/articles/{id} Article content
GET /api/public/collections The scope's collection tree

Limits: rate limits depend on the plan and are tied to the api-key. Exceeding them returns HTTP 429 with a Retry-After header. The exact values for your plan are on the Plans page and in the admin panel.

Full API documentation: API & widget.


#Languages

LiKE supports 25+ languages for AI search and cross-language search (the interface itself is available in 11 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.