Skip to content

Deployment Guide: Notion to Slack Sync ​

Overview ​

This guide covers deploying the Notion-to-Slack sync system. The system automatically syncs changes from Notion databases to the local SQLite database and triggers Slack home page refreshes.

Architecture ​

Notion Database Changes
  ↓
Backend Sync Endpoint (POST /api/notion/sync)
  ↓
SQLite Database Updated
  ↓
SlackHomeRefreshService Called
  ↓
Node.js Slack Bot API (/api/slack/refresh-homes)
  ↓
Slack Home Pages Refreshed

Quick Setup ​

1. Configure Environment ​

Ensure backend/.env has:

bash
NOTION_API_KEY=ntn_your-key
NOTION_DATABASE_KNOWLEDGE=your-db-id
NOTION_DATABASE_CATEGORIES=your-db-id
NOTION_DATABASE_DIGESTS=your-db-id
SLACK_BOT_URL=http://localhost:3001

2. Start Services ​

bash
# Terminal 1: Backend
cd backend && symfony server:start

# Terminal 2: Slack Bot
npm run dev

3. Verify Sync ​

bash
# Test sync endpoint
curl -X POST http://localhost:8000/api/notion/sync \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-token"

Automated Sync (Optional) ​

For periodic sync, configure a cron job:

bash
crontab -e
# Add: Sync every 5 minutes
*/5 * * * * curl -X POST http://localhost:8000/api/notion/sync -H "Authorization: Bearer your-token" >> /tmp/notion-sync.log 2>&1

Troubleshooting ​

  • Sync errors: Verify Notion API key and database sharing
  • Home not refreshing: Check SLACK_BOT_URL and that the Slack bot process is running
  • Rate limits: Notion API allows 3 requests/second