Sync documentation and screenshots to any knowledge base provider (Pylon, Zendesk, Confluence, etc.). Handles two modes: (1) Upload screenshots to KB CDN and return URLs, (2) Sync markdown documentation to KB with proper collection assignment. Provider-agnostic with automatic provider detection from config.
Sync screenshots and documentation to any knowledge base provider.
Supported Providers: Pylon, Zendesk, Confluence, Notion, and more.
This skill handles knowledge base integration in two modes:
The skill automatically detects your active KB provider from config.yaml:
knowledge_base:
provider: "pylon" # or "zendesk", "confluence", etc.
providers:
pylon:
# Pylon-specific config
zendesk:
# Zendesk-specific config
You can also override the provider for a specific operation using .
--providerAfter screenshots are captured, before creating documentation. You need CloudFront URLs to embed in documentation.
Find the captured screenshots:
ls -lh output/screenshots/[feature]-*.png
Verify:
Use the generic KB upload script for each screenshot:
cd /path/to/max-doc-ai
# Uses provider from config.yaml
python3 scripts/kb/upload.py \
--image output/screenshots/[feature]-overview.png \
--alt "[Feature Name] overview"
# Or specify provider explicitly
python3 scripts/kb/upload.py \
--provider zendesk \
--image output/screenshots/[feature]-overview.png \
--alt "[Feature Name] overview"
For multiple screenshots, upload each one:
# Screenshot 1
python3 scripts/kb/upload.py \
--image output/screenshots/[feature]-overview.png \
--alt "[Feature Name] overview"
# Screenshot 2
python3 scripts/kb/upload.py \
--image output/screenshots/[feature]-detail.png \
--alt "[Feature Name] detailed view"
# ... continue for all screenshots
The upload script will output CDN URLs like:
📤 Uploading: feature-overview.png
✅ Uploaded: https://cdn-url.example.com/attachments/abc123/feature-overview.png
Save all URLs - you'll need them for the documentation.
Note: URL format varies by provider:
Document the mapping:
## CloudFront URLs for [Feature Name]
1. **[feature]-overview.png**
- CloudFront URL: https://d1234abcd.cloudfront.net/attachments/abc123/feature-overview.png
- Alt text: [Feature Name] overview
2. **[feature]-detail.png**
- CloudFront URL: https://d1234abcd.cloudfront.net/attachments/abc123/feature-detail.png
- Alt text: [Feature Name] detailed view
[... continue for all screenshots ...]
Return the CloudFront URLs so they can be used in documentation:
✅ Screenshot Upload Complete
Uploaded [X] screenshots to Pylon CDN.
CloudFront URLs:
- feature-overview: https://cloudfront.url/1.png
- feature-detail: https://cloudfront.url/2.png
[... list all ...]
These URLs should be used in the documentation markdown.
After documentation is written with embedded CloudFront URLs. This publishes the documentation to Pylon knowledge base.
Check that documentation file exists and is valid:
cat output/features/YYYY-MM-DD_[feature-slug]/[feature-slug].md
Verify:
Create a unique key for state tracking:
Pattern: [category]-[feature-slug]
Examples:
features-dashboardsintegrations-slackgetting-started-quickstartThis key is used to track whether the article already exists in Pylon.
Use the generic KB sync script:
cd /path/to/max-doc-ai
# Uses provider from config.yaml
python3 scripts/kb/sync.py \
--file output/features/YYYY-MM-DD_[feature-slug]/[feature-slug].md \
--key [category]-[feature-slug] \
--title "[Feature Name]" \
--slug "[feature-slug]" \
--collection [category]
# Or specify provider explicitly
python3 scripts/kb/sync.py \
--provider zendesk \
--file output/features/YYYY-MM-DD_[feature-slug]/[feature-slug].md \
--key [category]-[feature-slug] \
--title "[Feature Name]" \
--slug "[feature-slug]" \
--collection [category]
Example:
python3 scripts/kb/sync.py \
--file output/features/2025-12-22_dashboards/dashboards.md \
--key features-dashboards \
--title "Dashboards" \
--slug "dashboards" \
--collection features
The script will:
Watch for:
📄 Syncing: dashboards.md
🔄 Converting markdown to HTML...
✅ 3 images with React wrappers
✨ Creating new article...
Collection: features (abc-123-collection-id)
✅ Created article ID: xyz-789-article-id
💾 State updated: features-dashboards
The sync will output:
✅ Article synced successfully!
Public URL: https://yourproduct-kb.help.usepylon.com/articles/dashboards
Internal URL: https://app.usepylon.com/docs/[kb-id]/articles/[article-id]
Save both URLs:
Optional but recommended - verify the article in Pylon:
Provide a summary:
## Documentation Synced: [Feature Name]
**Article Title:** [Feature Name]
**Slug:** [feature-slug]
**Category/Collection:** [category]
**State Key:** [category]-[feature-slug]
### URLs:
**Public (for announcements):**