Painel de controle → Integrações — conecte fontes de conteúdo e canais de acesso ao conhecimento.
#Fontes de conteúdo
#Conectadas (sempre ativas)
| Fonte | Descrição |
|---|---|
| LiKE Editor | Editor de IA integrado para criar artigos |
| Importação de arquivos | Envie PDF, DOCX, TXT, MD, RTF, ZIP |
| Importação por link | Google Docs, Dropbox, links diretos de arquivos |
#Conectores disponíveis
| Fonte | Descrição | Modo |
|---|---|---|
| Wiki.js | Importar ou sincronizar artigos | Sincronização / Importação |
| Confluence | Importar do Atlassian Confluence Cloud (OAuth) | Sincronização / Importação |
| Notion | Importar páginas e bancos de dados | Sincronização / Importação |
| GitHub | Sincronizar arquivos Wiki e Markdown de repositórios | Sincronização / Importação |
| GitLab | Sincronizar arquivos Wiki e Markdown de projetos | Sincronização / Importação |
| Gitea | Sincronizar arquivos Wiki e Markdown de um Gitea auto-hospedado | Sincronização / Importação |
| Site de documentação | Site público através do seu sitemap | Sync |
#Conectando o GitHub
#Passo 1 — Autorização
- No LiKE, vá para Integrações → GitHub → "Conectar"
- Escolha um método de autorização:
| Método | Descrição |
|---|---|
| Personal Access Token (PAT) | Crie um token em GitHub → Settings → Developer settings → Personal access tokens. Fine-grained (recomendado): Repository access + Permissions → Contents: Read-only (Metadata: Read é adicionado automaticamente); para repositórios de organização, o token deve ser aprovado pelo owner da organização. Classic: escopo repo. Enterprise: especifique o Base URL https://HOST/api/v3 |
| OAuth | Autorização via GitHub App — clique em "Authorize" e confirme o acesso |
#Passo 2 — Escolhendo o conteúdo
- Após conectar, é mostrada uma árvore do repositório com pastas e arquivos
- Marque os arquivos ou pastas específicos a importar (Selective Sync)
- Formatos suportados:
.md,.mdx, páginas Wiki
#Passo 3 — Executando a sincronização
- Clique em "Sync"
- O progresso é mostrado em tempo real
- Ao concluir, os artigos aparecem na lista com um rótulo GitHub
#Conectando o GitLab
#Passo 1 — Autorização
- No LiKE, vá para Integrações → GitLab → "Conectar"
- Escolha um método de autorização:
| Método | Descrição |
|---|---|
| Personal Access Token (PAT) | Crie um token em GitLab → Preferences → Access Tokens. Escopos: api e read_user; a função do token deve ser no mínimo Reporter (Guest não consegue ver o código). Funciona para GitLab.com e auto-hospedado (para auto-hospedado, especifique o Base URL da instância) |
| OAuth | Autorização via GitLab Application — clique em "Authorize" |
#Passo 2 — Escolhendo o conteúdo
- É mostrada uma árvore do projeto com páginas Wiki e arquivos Markdown
- Marque as páginas específicas a importar (Selective Sync)
#Passo 3 — Executando a sincronização
Igual ao GitHub — clique em "Sync" e aguarde a conclusão.
#Conectando o Gitea
O Gitea é uma plataforma git auto-hospedada. Ele se conecta por meio de um Personal Access Token e uma URL obrigatória da sua instância (não há um Gitea em nuvem por padrão).
#Passo 1 — Crie um token no Gitea
- No Gitea, abra Settings → Applications → Generate New Token
- Conceda os escopos
read:repositoryeread:user - Copie o token
#Passo 2 — Conecte no LiKE
- No LiKE, vá para Integrações → Gitea → "Conectar"
- Especifique o Base URL da sua instância (por exemplo
https://gitea.company.com) — este campo é obrigatório; sem ele a conexão não é concluída - Cole o token
- Escolha um espaço/coleção e um modo (Sync — um espelho contínuo / Import — uma cópia única)
O OAuth 2.0 também é suportado se o administrador do Gitea tiver configurado previamente um aplicativo OAuth. O caminho principal é o token.
#Passo 3 — Escolhendo o conteúdo e sincronizando
- É mostrada uma árvore do repositório com páginas Wiki e arquivos Markdown (
.md,.mdx) - Marque os nós de que você precisa (Selective Sync) e clique em "Sync"
- Para atualizações automáticas em cada push, configure um webhook — o segredo é gerado no cartão do conector. Os artigos do Gitea são somente leitura (como com GitHub/GitLab)
#Seleção de arquivos e filtros de sincronização (GitHub, GitLab, Gitea)
Para fontes git (GitHub, GitLab e Gitea), a lógica de escolher o que sincronizar é mais sutil do que um simples "repositório ligado/desligado":
#O que é sincronizado
| Fonte dentro do repositório | Incluída |
|---|---|
Páginas Wiki (<repo>.wiki) |
Por padrão, todas as páginas Wiki do repositório selecionado |
Arquivos Markdown na árvore principal (*.md, *.mdx) |
Por padrão, todos os arquivos Markdown, a menos que filtros estejam configurados |
| README.md | Incluído como um artigo separado com o título = <repo-name> · README |
Documentação em /docs/** |
Incluída se a pasta existir; o nome do artigo é extraído do título # ... ou do nome do arquivo |
Arquivos que não sejam Markdown (.txt, .rst, .json, código) |
Não são sincronizados automaticamente — o LiKE não analisa formatos arbitrários |
#Filtros de caminho (sincronização seletiva)
Você pode restringir exatamente o que extrair do repositório:
docs/ e guides/, excluindo internal/| Prefixo | Ação |
|---|---|
+ path/pattern |
Include — incluir arquivos por padrão (sintaxe glob) |
- path/pattern |
Exclude — excluir arquivos da sincronização |
| (vazio) | Sem filtros: todo o Wiki + todos os .md/.mdx no repositório |
#Detecção de alterações (mudanças recentes)
O LiKE não "baixa tudo" a cada execução. É usada a detecção de alterações:
- GitHub — via webhook (recomendado) ou polling usando cabeçalhos
If-Modified-Since. O webhook reage a um push instantaneamente; o polling — a cada 6/12/24/48 horas (depende da sincronização automática). - GitLab — da mesma forma: webhook ou polling por
last_activity_atvia a Projects API. - Gitea — webhook (assinatura
X-Gitea-Signature) ou polling. O gatilho de push dispara apenas quando*.md/*.mdxmuda.
Assim que uma alteração é detectada, apenas os arquivos afetados são sincronizados; o restante do corpus não é recalculado. Isso economiza bastante a cota da API do GitHub/GitLab e o tempo de execução.
#Branch e tags
| Parâmetro | Valor padrão |
|---|---|
| Branch | A branch padrão do repositório (geralmente main / master) |
| Branch alternativa | Pode ser especificada explicitamente (por exemplo, sincronizar com release/v2) |
| Sincronização por tag | Opcional: sincronização por uma tag de versão (por exemplo, a documentação da versão v3.0) |
| Multi-branch | Pro+: você pode sincronizar várias branches em paralelo como artigos diferentes |
#Histórico e conflitos
- Histórico de sincronização — a aba "History" no cartão do conector: data, status (✅ ok / ⚠ avisos / ❌ erro), o número de artigos adicionados / atualizados / excluídos, a duração da execução. Útil para depurar "por que um artigo do repositório não apareceu".
- Conflitos de edição — se um artigo da fonte foi editado no LiKE (para GitHub/GitLab isso não é permitido por padrão — os artigos são somente leitura). Se o modo for Import (uma cópia única), os artigos tornam-se editáveis e o vínculo com a fonte é rompido.
#Selective Sync para outros conectores
Notion, Confluence, Wiki.js — eles têm sua própria lógica de seleção (uma árvore de páginas), mas o princípio é o mesmo:
- Ao conectar, é mostrada a árvore de conteúdo da fonte
- Caixas de seleção — marque os nós de que precisa
- O restante não é importado
- Em uma nova sincronização, apenas os itens selecionados são atualizados
#Conectando o Wiki.js
#Passo 1 — Obtenha um token de API do Wiki.js
- Abra o seu Wiki.js → Administration → API Access
- Ative a API (se estiver desativada)
- Clique em New API Key
- Nomeie a chave (por exemplo
LiKE Integration) - Grupo: Administrators (é necessário acesso a todas as páginas)
- Expiração: sem expiração ou 1 ano
- Copie o token gerado
#Passo 2 — Conecte no LiKE
- No LiKE, vá para Integrações → Wiki.js → "Conectar"
- Insira a URL do seu Wiki.js (por exemplo
https://wiki.company.com) - Cole o token de API
- Escolha um modo:
| Modo | Descrição |
|---|---|
| Sync | Um vínculo contínuo — as alterações no Wiki.js aparecem no LiKE automaticamente |
| Import | Uma cópia única de todos os artigos |
- Clique em Salvar
#Passo 3 — Configure a sincronização
| Parâmetro | Descrição |
|---|---|
| Sincronização automática | Ativar/desativar atualizações automáticas |
| Intervalo | A cada 6, 12, 24 ou 48 horas |
| Idioma | Filtro pelo idioma do artigo (todos / específico) |
#Conectando o Confluence
O Confluence se conecta por meio de OAuth 2.0 — autorização segura sem inserir senhas.
#Passo 1 — Clique em "Conectar Confluence"
- No LiKE, vá para Painel de controle → Integrações
- Encontre o cartão do Confluence → clique em "Conectar"
- A janela de autorização da Atlassian é aberta
#Passo 2 — Autorize na Atlassian
- Faça login na sua conta Atlassian (se ainda não fez)
- A Atlassian mostra uma solicitação: "O LiKE está solicitando acesso ao seu Confluence"
- Revise as permissões — o LiKE solicita somente leitura: o conteúdo das páginas e a lista de espaços
- Clique em "Accept"
#Passo 3 — Você retorna ao LiKE
Após a confirmação, você é redirecionado automaticamente de volta para Integrações. O cartão do Confluence mostra:
- Status: Conectado
- O nome do seu site Confluence
- Um botão "Sync"
#Passo 4 — Execute a sincronização
- Clique em "Sync" para a primeira importação
- O LiKE carrega todas as páginas dos espaços acessíveis do Confluence
- Os artigos aparecem no catálogo de conhecimento
#Passo 5 — Configure a sincronização automática
Abra as configurações (o ícone de engrenagem no cartão do Confluence):
| Parâmetro | Descrição |
|---|---|
| Sincronização automática | Ativar atualizações automáticas |
| Intervalo | A cada 6, 12, 24 ou 48 horas |
Os artigos do Confluence são somente leitura. Para editar, altere o original no Confluence, e o LiKE atualizará na próxima sincronização.
Ao desconectar o Confluence, você pode manter uma cópia dos artigos no LiKE (eles se tornam editáveis) ou excluí-los.
#Conectando o Notion
#Passo 1 — Crie uma integração no Notion
- Abra o Notion → clique no seu avatar (canto superior esquerdo) → Settings
- No menu à esquerda, escolha My connections (ou Integrations)
- Clique em Develop or manage integrations → New integration
- Insira um nome (por exemplo
LiKE Import), escolha um workspace - Clique em Submit → copie o Internal Integration Secret (começa com
ntn_; para integrações mais antigas — comsecret_)
#Passo 2 — Dê à integração acesso às páginas
Por padrão, a integração não tem acesso a nenhuma página. Você precisa permitir isso explicitamente:
- No Notion, abra cada página (ou a página/banco de dados pai) que deseja importar
- Clique em ⋯ (três pontos, canto superior direito) → Connect to → escolha a sua integração
LiKE Import - Confirme o acesso
#Passo 3 — Conecte no LiKE
- No LiKE → Painel de controle → Integrações → Notion → "Conectar"
- Cole o Integration Secret (copiado no passo 1)
- Escolha um espaço para a importação (existente ou crie um novo)
- Escolha um modo:
| Modo | Descrição |
|---|---|
| Sync | Um vínculo contínuo — as alterações no Notion aparecem no LiKE automaticamente. Os artigos são somente leitura |
| Import | Uma cópia única. Os artigos tornam-se editáveis no LiKE |
- Clique em "Conectar"
- O LiKE carrega todas as páginas às quais a integração tem acesso
#Passo 4 — Configure a sincronização automática
Abra as configurações (o ícone de engrenagem no cartão do Notion):
| Parâmetro | Descrição |
|---|---|
| Sincronização automática | Ativar atualizações automáticas |
| Intervalo | A cada 6, 12, 24 ou 48 horas |
Ao desconectar o Notion, você pode manter uma cópia dos artigos no LiKE (eles se tornam editáveis) ou excluí-los.
#Ligar um site de documentação
O conector recolhe artigos de um site público: lê o respetivo mapa (sitemap) e mantém uma cópia no LiKE. Útil quando a documentação já está publicada — em domínio próprio, no Docusaurus, GitBook, Docsify e semelhantes.
#Passo 1 — endereço do site
Integrações → Site de documentação → Ligar site. Cole o endereço: pode ser o de qualquer página, o site é recolhido por inteiro. O sitemap procuramos nós: primeiro em robots.txt, depois em /sitemap.xml.
#Passo 2 — o que encontrámos
Carregue em Verificar site. A verificação não guarda nada: apenas lê o sitemap e mostra quantas páginas foram encontradas e quantas serão adicionadas com os filtros aplicados. Se não houver sitemap, a ligação não se estabelece e dizemo-lo claramente, em vez de importar zero páginas em silêncio.
#Passo 3 — onde colocar
Escolha o espaço e a coleção — a coleção pode ser criada no próprio assistente. Depois de Ligar, o percurso começa de imediato: o progresso vê-se no cartão do conector («A percorrer o site 22 de 92») e no indicador de tarefas em segundo plano.
#O que é recolhido e o que não é
- é recolhido o conteúdo da página, sem menu, cabeçalho e rodapé do site;
- Secções do site limitam o percurso por caminho (
/docs/,/guides/); em branco, recolhemos o site inteiro; - secções de serviço, como pesquisa e etiquetas, são ignoradas por predefinição;
- Páginas por execução limita uma única passagem: proteção contra sites muito grandes;
- as páginas bloqueadas em
robots.txtnão são recolhidas; o seu número aparece no resumo da execução.
#Atualizações seguintes
Com a sincronização automática ativa, relemos o site conforme o agendamento. Só as páginas alteradas são reindexadas — o resumo di-lo assim: «adicionadas», «atualizadas», «sem alterações». As páginas sem alterações não consomem o limite de indexação.
Remover páginas desaparecidas está desativado por predefinição: se uma página desaparecer do site, o artigo permanece na sua base. Ative-o quando a cópia tiver de refletir o site com rigor.
#Que sites servem e quais não
Serve um site público com sitemap — é assim que funcionam quase todos os geradores de documentação. O resto recusamos no passo de verificação, e não depois de ligar:
| O que impede | O que vai ver |
|---|---|
Não há sitemap — nem em robots.txt nem em /sitemap.xml |
A ligação não será iniciada |
| No endereço do sitemap não está XML — normalmente uma página de proteção contra robôs | A ligação não será iniciada |
| Há sitemap, mas após os filtros não sobra nenhuma página | A ligação não será iniciada |
O robots.txt proíbe percorrer todo o site |
A ligação não será iniciada |
O robots.txt está indisponível por erro do servidor |
A ligação não será iniciada: «sem resposta» não é o mesmo que «permitido» |
| O site está protegido por palavra-passe ou só é acessível a partir de uma rede interna | As páginas não podem ser lidas |
| O conteúdo é desenhado por scripts já no navegador | A página pode chegar quase vazia — lemos o HTML tal como o servidor o devolveu |
Mesmo com o site ligado, algumas páginas podem ficar de fora: as bloqueadas no robots.txt, as que respondem com erro, as com mais de 10 MB ou as que não devolvem HTML. Todas aparecem no resumo da execução com o motivo — «ignoradas» e «bloqueadas pelo robots.txt».
Os ficheiros (PDF, ZIP, imagens) não são recolhidos do site. Para eles existe outro caminho: a importação de ficheiros, com o seu próprio processamento.
#Limites
- um site por organização;
- o site tem de ser público: páginas protegidas por palavra-passe não são lidas;
- é necessário um sitemap: sem ele não há ligação;
- respeitamos o
robots.txt, incluindo a pausa entre pedidos que indique.
Desligar. A sincronização para e os artigos já importados podem ser eliminados ou mantidos como artigos normais — o LiKE pergunta isso ao desligar.
#Importação de arquivos
#Enviando arquivos
- Painel de controle → Importação
- Arraste os arquivos ou clique na zona de envio
- Formatos suportados: PDF, DOCX, TXT, MD, RTF, ZIP
- A IA gera automaticamente um título e um slug para cada arquivo
- Antes de publicar, você pode editar o título ou abri-lo no editor
| Parâmetro | Descrição |
|---|---|
| Tamanho máximo | 20 MB por arquivo, 100 MB para um ZIP |
| Envio em lote | Até 10 arquivos por vez |
| Idioma | Detectado automaticamente |
#Arquivos ZIP
Envie um arquivo ZIP com muitos documentos — o LiKE descompacta e processa automaticamente cada arquivo. Útil para migrar uma base de conhecimento inteira.
Arquivos suportados dentro de um ZIP: PDF, DOCX, TXT, MD, RTF. Outros arquivos (imagens, executáveis) são ignorados.
#Importação por link
Cole um link para um documento — o LiKE o baixa e importa:
- Painel de controle → Importação → a seção "Importação por link"
- Cole uma URL → clique em "Adicionar"
- Você pode adicionar até 10 links por vez
- Clique em "Importar"
Fontes suportadas:
- Google Docs — exportado automaticamente como DOCX
- Google Sheets — exportado como CSV
- Dropbox — um link direto de arquivo
- Qualquer URL direta para um arquivo PDF, DOCX, TXT, MD ou RTF
#Visibilidade padrão
Para cada fonte, você pode configurar uma visibilidade padrão:
- Rascunho — os artigos são criados ocultos
- Equipe — visíveis para usuários autorizados
- Público — visíveis para todos, inclusive usuários anônimos
Configurada em Integrações → cartão da fonte → Visibilidade.
#Canais de acesso
Os canais permitem que seus funcionários pesquisem informações por meio de ferramentas familiares.
#Bot do Slack
1. Clique em "Conectar Slack" na seção Integrações
2. Autorize o aplicativo LiKE no seu workspace do Slack
3. Escolha um canal para notificações
4. Pronto — os funcionários usam
/like pergunta ou @LiKE
Recursos:
/like como configuro o SSO?→ uma resposta de IA direto no Slack- Mencionar
@LiKEem qualquer canal → uma resposta na thread - Links para os artigos de origem (clicáveis)
#Bot do Telegram
1. Crie um bot via @BotFather no Telegram
2. Copie o token do bot
3. Cole o token no LiKE → Integrações → Telegram
4. Adicione o bot ao grupo desejado
Recursos:
- Mensagens diretas ao bot → uma resposta de IA
- Em um chat de grupo:
/ask pergunta→ uma resposta - Suporte a 25+ idiomas
#Widget JS (para o seu site)
Um botão flutuante de pesquisa por IA para incorporar em qualquer site. A integração mais popular — o usuário vê um botão no canto da página, clica nele, e abre um chat com a IA e a pesquisa em toda a sua base de conhecimento.
#Instalação simples
1. Integrações → Widgets → "+ Criar widget" → dê um nome e salve
2. Copie o código de incorporação (uma tag `<script>` com uma api-key única)
3. Cole-o antes de
</body> em qualquer página do seu site
#Parâmetros básicos
| Parâmetro | Descrição |
|---|---|
| Nome | O nome interno do widget (para o painel administrativo, não visível aos usuários) |
| Posição | Canto inferior esquerdo ou inferior direito |
| Cor de destaque | A cor do botão e dos destaques no chat (extraída da identidade visual por padrão) |
| Tecla de atalho | Por exemplo Ctrl+K / ⌘K para abrir o chat pelo teclado |
| Idioma | O idioma da interface do chat (detectado automaticamente de <html lang> se não definido) |
| Placeholder | O texto no campo de entrada ("Faça uma pergunta…") |
| Logo do chat | Identidade visual do cabeçalho do chat (nos planos com white-label) |
| Rodapé "Powered by Lynkora" | Pode ser ocultado nos planos com white-label |
#Dual-auth: dois modos de autenticação (ADR 0032)
No LiKE, o widget pode funcionar em um de dois modos — escolhido na criação:
- Lista de permissões de URLs onde a api-key é válida
- Escopo =
__public__ou coleções públicas específicas - Limite de taxa por api-key
- O portal interno da empresa
- Um widget com reconhecimento de SSO no seu próprio produto
- Vê os espaços do usuário
Para detalhes sobre a configuração de cada modo e a integração com o seu backend, consulte API e widget.
#Escopo: o que o widget pode encontrar
Ao criar um widget, você define um escopo — o que exatamente ele pesquisa:
Dentro de um único widget, você pode combinar várias entradas de escopo (por exemplo, duas coleções do mesmo espaço).
#Multi-widget por tenant (ADR 0029 Stage 4)
Dentro de uma organização, você pode criar vários widgets independentes com escopos e modos diferentes:
| Widget | Escopo | Onde incorporado |
|---|---|---|
Marketing site widget |
public_umbrella (KB pública) |
Em yourcompany.com — anônimo |
Support center widget |
collection:faq-coll |
Em support.yourcompany.com — apenas FAQ |
Intranet widget |
space:eng-space (por JWT) |
Em intranet.yourcompany.com — corporativo, vê os espaços por permissões |
Cada um tem sua própria api-key e sua análise de uso, e a chave pode ser revogada de forma independente. O gerenciamento está em Integrações → Widgets → "+ Criar".
#Gerenciamento de sessões (modo JWT de sessão)
No modo JWT de sessão, cada sessão de usuário tem um sessionId único. Um admin pode visualizar as sessões ativas de um widget específico e revogar um token à força (por exemplo, se houver suspeita de comprometimento). A lista está em Integrações → Widgets → [widget] → Sessões.
#iframe / Link direto
Incorpore a interface de pesquisa completa do LiKE em qualquer página:
- Integrações → iframe → copie o código
- Cole
<iframe src="...">na sua página - Ou use o link direto para navegar (uma página completa, não uma incorporação)
O iframe e o Link direto também suportam dual-auth — escolhido na criação.
#REST API
Uma API completa para integração programática (por exemplo, sua própria interface ou integração com outros sistemas):
- Integrações → API Keys → "Criar chave"
- Especifique um nome (para que serve a chave) e um escopo (igual ao de um widget — public_umbrella / space / collection)
- Copie a chave — ela é mostrada apenas uma vez; após reabrir, ficará mascarada
Use a chave no cabeçalho X-API-Key ou como um Bearer token.
Endpoints principais:
| Endpoint | O que faz |
|---|---|
POST /api/public/search |
Pesquisa por IA na base de conhecimento (fluxo completo: retrieval + resposta + fontes) |
POST /api/public/ask |
O mesmo, sem a resposta da IA — apenas uma lista de artigos relevantes |
GET /api/public/articles |
Lista de artigos no escopo da api-key |
GET /api/public/articles/{id} |
Conteúdo do artigo |
GET /api/public/collections |
A árvore de coleções do escopo |
Limites: os limites de taxa dependem do plano e estão vinculados à api-key. Ao excedê-los, é retornado HTTP 429 com um cabeçalho Retry-After. Os valores exatos do seu plano estão na página Planos e no painel administrativo.
Documentação completa da API: API e widget.
#Idiomas
O LiKE oferece suporte a 25+ idiomas para pesquisa por IA e pesquisa entre idiomas (a própria interface está disponível em 11 locais de UI):
Русский, 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, Українська, Српски, Български, Ελληνικά, 한국어, 日本語, 中文, हिन्दी, ไทย, עברית, العربية.
Pesquisa entre idiomas: uma pergunta em um idioma → uma resposta a partir de artigos em outro.