+
-The Deploy modal keeps a full version history—inspect any snapshot, compare it against your draft, and promote or roll back with one click when you need to restore a prior release.
+### Version History
+
+The **General** tab in the Deploy modal shows a version history table for every deployment. Each row shows the version name, who deployed it, and when.
+
+{/* TODO: Screenshot of the version history table with multiple versions */}
+
+From the version table you can:
+
+- **Rename** a version to give it a meaningful label (e.g., "v2 — added error handling")
+- **Add a description** with notes about what changed in that deployment
+- **Promote to live** to roll back to an older version — this makes the selected version the active deployment without changing your draft canvas
+- **Load into editor** to restore a previous version's workflow into the canvas for editing and redeploying
+- **Preview a version** by selecting a row, then toggle between viewing the live deployment and the selected version in the canvas
+
+{/* TODO: Screenshot of the version preview toggle (live vs selected) */}
+
+
+ Promoting an old version takes effect immediately — all API, Chat, Schedule, and Webhook executions will use the promoted version. Your draft canvas is not affected.
+
## Programmatic Execution
diff --git a/apps/docs/content/docs/en/execution/meta.json b/apps/docs/content/docs/en/execution/meta.json
index fd2124b9dd4..9092f40f161 100644
--- a/apps/docs/content/docs/en/execution/meta.json
+++ b/apps/docs/content/docs/en/execution/meta.json
@@ -1,3 +1,3 @@
{
- "pages": ["index", "basics", "files", "api", "logging", "costs"]
+ "pages": ["index", "basics", "files", "api", "api-deployment", "chat", "logging", "costs"]
}
diff --git a/apps/docs/content/docs/en/knowledgebase/connectors.mdx b/apps/docs/content/docs/en/knowledgebase/connectors.mdx
index c6573ed5505..b4f0953338d 100644
--- a/apps/docs/content/docs/en/knowledgebase/connectors.mdx
+++ b/apps/docs/content/docs/en/knowledgebase/connectors.mdx
@@ -43,7 +43,13 @@ Open a knowledge base and click **Add Connector**. You'll see the full list of a
Most connectors use **OAuth** — select an existing credential from the dropdown, or click **Connect new account** to authorize through the service's login flow. Tokens are refreshed automatically, so you won't need to re-authenticate unless you revoke access.
-A few connectors (Evernote, Obsidian, Fireflies) use **API keys** instead. Paste your key or developer token directly, and it will be stored securely.
+A few connectors use **API keys** instead of OAuth. Paste your key or developer token directly, and it will be stored securely.
+
+| Connector | Credential | Where to find it |
+|-----------|-----------|-----------------|
+| **Evernote** | Developer Token (starts with `S=`) | [Evernote Developer Tokens](https://dev.evernote.com/doc/articles/dev_tokens.php) — request a developer token from your account settings |
+| **Obsidian** | API Key | Install the [Local REST API](https://github.com/coddingtonbear/obsidian-local-rest-api) community plugin in Obsidian, then copy the API key from the plugin settings |
+| **Fireflies** | API Key | Generate an API key from the Integrations page in your Fireflies account settings |
If you rotate an API key in the external service, you'll need to update it in Sim as well. OAuth tokens are refreshed automatically, but API keys are not.
@@ -59,7 +65,8 @@ Each connector has its own configuration fields that control what gets synced. S
- **Notion**: Choose between syncing an entire workspace, a specific database, or a single page tree
- **GitHub**: Specify a repository, branch, and optional file extension filter
- **Confluence**: Enter your Atlassian domain and optionally filter by space key or content type
-- **Obsidian**: Provide your vault URL and optionally restrict to a folder path
+- **Obsidian**: Provide your vault URL (default: `https://127.0.0.1:27124`) and optionally restrict to a folder path
+- **Fireflies**: Optionally filter by host email or limit the number of transcripts synced
All configuration is validated when you save — if a repository doesn't exist or a domain is unreachable, you'll get an immediate error.
@@ -137,6 +144,37 @@ You can add multiple connectors to a single knowledge base. For example, you mig
Each connector manages its own documents independently. Metadata tag slots are shared across the knowledge base, so keep an eye on slot usage if you're combining several connectors that each populate tags.
+## PDF Processing and OCR
+
+When connectors sync PDF files, Sim can use OCR (Optical Character Recognition) to extract text from scanned documents, images within PDFs, and complex layouts that standard text extraction would miss.
+
+### OCR Providers
+
+Sim supports two OCR providers. If neither is configured, PDFs fall back to a basic text parser.
+
+| Provider | Setup | Notes |
+|----------|-------|-------|
+| **Mistral OCR** | Set `MISTRAL_API_KEY` environment variable, or add a Mistral key via workspace BYOK settings | Splits large PDFs (1,000+ pages) into chunks and processes them concurrently |
+| **Azure Mistral OCR** | Set `OCR_AZURE_ENDPOINT`, `OCR_AZURE_API_KEY`, and `OCR_AZURE_MODEL_NAME` environment variables | Same 1,000-page chunking behavior as Mistral OCR |
+
+
+ OCR is automatic — if the environment variables are configured, PDF processing uses OCR. No per-connector toggle is needed.
+
+
+### Self-Hosted OCR Setup
+
+If you're self-hosting Sim, add the relevant environment variables to your `.env` file:
+
+```bash
+# Option 1: Mistral OCR
+MISTRAL_API_KEY=your-mistral-api-key
+
+# Option 2: Azure Mistral OCR
+OCR_AZURE_ENDPOINT=https://your-azure-endpoint.openai.azure.com
+OCR_AZURE_API_KEY=your-azure-api-key
+OCR_AZURE_MODEL_NAME=your-model-name
+```
+
## Common Use Cases
- **Internal knowledge base**: Sync your team's Notion workspace and Confluence spaces so AI agents can answer questions about internal processes, policies, and documentation
diff --git a/apps/docs/content/docs/en/knowledgebase/tags.mdx b/apps/docs/content/docs/en/knowledgebase/tags.mdx
index 47b64b58b19..cd4ecfad1fe 100644
--- a/apps/docs/content/docs/en/knowledgebase/tags.mdx
+++ b/apps/docs/content/docs/en/knowledgebase/tags.mdx
@@ -2,6 +2,7 @@
title: Tags and Filtering
---
+import { Callout } from 'fumadocs-ui/components/callout'
import { Video } from '@/components/ui/video'
import { FAQ } from '@/components/ui/faq'
@@ -15,15 +16,37 @@ You can add custom tags to any document in your knowledgebase to organize and ca
-### Tag Management
-- **Custom tags**: Create your own tag system that fits your workflow
-- **Multiple tags per document**: Apply as many tags as needed to each document. Each knowledgebase has 17 tag slots total: 7 text, 5 number, 2 date, and 3 boolean slots, shared by all documents in the knowledgebase
-- **Tag organization**: Group related documents with consistent tagging
+### Tag Slots and Field Types
+
+Each knowledge base has **17 tag slots** shared across all documents. Slots are organized by field type:
+
+| Field Type | Slots | Accepted Values | Example |
+|-----------|-------|----------------|---------|
+| **Text** | 7 slots | Any string (case-insensitive matching) | `category: "engineering"` |
+| **Number** | 5 slots | Any valid number | `priority: 3` |
+| **Date** | 2 slots | `YYYY-MM-DD` format | `published: 2025-06-15` |
+| **Boolean** | 3 slots | `true` or `false` | `reviewed: true` |
+
+