Integrasi SharePoint | Botpress Hub

# Sharepoint Document Library Connector

Overview

The sharepoint library connector integration allows you to setup a connector between a document library in a sharepoint site and a KB in botpress.

Configuration

Add the following keys to the integration’s configuration block:

  • clientId (required) — Application (client) ID of your Microsoft Entra (Azure AD) app registration.
  • tenantId (required) — Directory (tenant) ID of the same app registration.
  • thumbprint (required) — Thumbprint of the certificate uploaded to the app registration.
  • privateKey (required) — PEM-formatted private key that matches the certificate (everything between -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY-----).
  • primaryDomain (required) — SharePoint primary domain (the part before .sharepoint.com).
    Example: contoso
  • siteName (required) — Name of the SharePoint site that owns the document libraries you want to sync.
  • documentLibraryNames (optional) — Comma-separated list or JSON array of document libraries to sync.
    Examples:
    Policies,Procedures
    ["Policies","Procedures"]
  • folderKbMap (optional) — JSON object that maps kbId ⇒ array of folder prefixes for routing files to specific KBs.
    Example:
    {"kb-marketing":["Campaigns"],"kb-policies":["HR","Legal"]}

Tip:

  • If you omit documentLibraryNames, all document libraries in the specified site will be synced.
  • If you omit folderKbMap, every file is routed to the default KB configured for its library.

[!IMPORTANT]
Due to reliability issues, Moves and Copies are not supported. Those events from sharepoint will not reflect in the knowledge bases. If you wish to move/copy a file to another location, Upload or Create the file instead.

How to's

How to register a app on Microsoft Entra admin center

  • From the Home page of Microsoft Entra admin center, Open App registrations ( This is under Applications in the Left Nav )
  • Add a new registration by clicking on “+ New registration”
  • Give your app an appropriate name, and click register.
  • Open the App registration and take note of the following:
  • Application (client) ID
  • Directory (tenant) ID

How to create a certificate for your app registration

  • We will be using a self signed certificate to authenticate, to create a self signed certificate run the following commands in order
  • openssl genrsa -out myPrivateKey.key 2048 → This will generate a 2048-bit private key and save it as myPrivateKey.key.
  • openssl req -new -key myPrivateKey.key -out myCertificate.csr → This will create a CSR cert. You will be prompted to enter some information, fill as needed.
  • openssl x509 -req -days 365 -in myCertificate.csr -signkey myPrivateKey.key -out myCertificate.crt → This will create a certificate file named myCertificate.crt that is valid for 365 days.

How to add your certificate to your app registration

  • Navigate to the Azure portal and go to your Azure AD app registration.
  • Under “Certificates & secrets,” choose “Certificates” and click “Upload certificate.”
  • Upload your .crt

How to update API permissions for your app registration

  • Go to “API Permissions” it should be under the Manage Group, in your App Registration "
  • Click “Add a permissions”
  • click on "Microsoft Graph".
  • Select “Application permissions” as the type of permission.
  • Check Sites.FullControl.All , Sites.Manage.All , Sites.Read.All , Sites.ReadWrite.All, Sites.Selected.All, Files.Read.All and Files.ReadWriteAll
  • Click “Add a permissions again.”
  • Click the “Add a permission” button again
  • Scroll till you find Sharepoint and click on it.
  • Select “Application permissions” as the type of permission.
  • Check Sites.FullControl.All , Sites.Manage.All , Sites.Read.All , Sites.ReadWrite.All and Sites.Selected.All
  • Click “Add permissions.”
  • You should see All the permissions you added in the permissions list.
  • Click on “Grant admin consent for

Folder‑to‑KB Mapping (folderKbMap)

This is an optional advanced feature. If you skip it, every file in the document library will go to the single KB you specified above.

Why use it?

Sometimes one SharePoint document library contains several distinct collections of content—HR procedures, Legal policies, Marketing campaigns, etc.—but you want each collection to live in its own Botpress KB for cleaner search results and permissions.
folderKbMap lets you do exactly that.

How it works

  • folderKbMap is a JSON object whose keys are KB IDs and whose values are arrays of folder prefixes (relative paths) to watch.
  • During sync, the integration checks each file’s server‑relative path.
  • If the path starts with one of the prefixes you listed, that file is routed to the corresponding KB.
  • If no prefix matches, the file falls back to the default KB for the library.

Configuration syntax

// Example: route folders within the libraries
"folderKbMap": {
  "kb-id-1": ["doclib1","doclib1/ExampleFolder/2025"],
  "kb-id-2":  ["doclib2/HR","doclib2/ExampleFolder"]
}

Prefixes are case‑insensitive and may include simple wildcards (*).

Rules & limitations

  1. No KB sharing across libraries. A single KB cannot receive content from two different libraries—even via folder mapping.
  2. Create KBs first. All KB IDs used in folderKbMap must already exist in Botpress before you save the configuration.
  3. Recursive files Every file within a document library, regardles whether it is in a nested folder - will be recursively copied.

Quick checklist

Step
Create a separate KB for each content group you want.
Identify folder (or folder‑prefix) boundaries inside the SharePoint library.
Build a folderKbMap JSON object mapping kbId → [prefixes].
Add the JSON to your integration configuration.
Save & verify: upload a test file in each folder and confirm it appears in the expected KB.