AgentSkillsCN

content-collection-setup

当您需要搭建、安装、配置、部署或排查内容采集 Telegram 机器人时,可调用此技能——该机器人能够借助 AI 自动分类功能,将 URL 和文本保存至 Notion。

SKILL.md
--- frontmatter
name: content-collection-setup
description: Use when setting up, installing, configuring, deploying, or troubleshooting the content-collection Telegram bot that saves URLs and text to Notion with AI categorization

Content Collection Bot Setup

Interactive setup wizard for the content-collection Telegram bot. Guides users through API keys, Notion database creation, Railway deployment, and verification.

Repository: https://github.com/ccccccarachen/content-collection

Overview

The bot receives URLs/text via Telegram, uses Claude AI to generate titles and auto-categorize, then saves to a Notion database with columns: Title, Category, Added Time, Content. Users can change categories via number replies.

Setup Flow

dot
digraph setup {
    rankdir=TB;
    node [shape=box];

    start [label="Start Setup" shape=doublecircle];
    check [label="Check: which steps completed?" shape=diamond];
    phase1 [label="Phase 1: API Keys\n~15 min"];
    phase2 [label="Phase 2: Railway Deploy\n~10 min"];
    phase3 [label="Phase 3: Test & Verify\n~5 min"];
    done [label="Setup Complete" shape=doublecircle];

    start -> check;
    check -> phase1 [label="needs keys"];
    check -> phase2 [label="has keys"];
    check -> phase3 [label="deployed"];
    phase1 -> phase2;
    phase2 -> phase3;
    phase3 -> done;
}

Interactive Wizard

IMPORTANT: Run this as a conversation. Ask one question at a time. Validate each answer before proceeding. Celebrate wins.

Step 0: Resume Check

Ask the user:

Which of these have you already completed?

  1. Anthropic API key
  2. Notion integration + database
  3. Telegram bot token
  4. Railway deployment

Reply with numbers (e.g., "1,3") or "none" to start fresh.

Skip completed steps.

Phase 1: API Keys (~15 min)

1A. Anthropic API Key

Ask:

Do you have an Anthropic API key? If not, get one at: https://console.anthropic.com/settings/keys It should start with sk-ant-. Save it somewhere safe — you'll paste it into Railway later.

Confirm once you have it. (yes/no)

On success: "Great, Anthropic API key ready. You'll add it to Railway in Phase 2."

1B. Notion Setup (Most Complex)

This is the longest step. Follow references/notion_setup.md for detailed instructions. Summary:

1B-i. Create Notion Integration:

Ask:

Go to https://www.notion.so/profile/integrations and click "New integration".

  • Name it "Content Collection Bot"
  • Select your workspace
  • Click Submit

Copy the "Internal Integration Secret" and save it somewhere safe — you'll paste it into Railway later. It starts with ntn_ or secret_.

Confirm once you have it. (yes/no)

On success: "Notion integration token ready. You'll add it to Railway in Phase 2."

1B-ii. Create Database:

Ask:

Create a new full-page database in Notion with these exact columns:

ColumnTypeNotes
TitleTitleDefault first column
CategorySelectAdd your category options
Added TimeDate
ContentRich Text

What categories do you want? (comma-separated) Example: Article, Video, Tweet, Tutorial, Resource, Personal, Other

Store their category choices. Instruct them to add each as a Select option in the Category column.

1B-iii. Connect Integration to Database:

Ask:

On your database page, click "..." (top right) > "Connections" > find "Content Collection Bot" > confirm. Done? (yes/no)

1B-iv. Get Database ID:

Ask:

Open your database as a full page. Copy the URL. It looks like: https://www.notion.so/workspace/DATABASE_ID?v=VIEW_ID The database ID is the 32-character string in the URL before the ?v= part. Save it somewhere safe — you'll paste it into Railway later.

Confirm once you have it. (yes/no)

On success: "Database ID ready. You'll add it to Railway in Phase 2."

1C. Telegram Bot Token

Ask:

Open Telegram, message @BotFather, send /newbot. Follow the prompts to name your bot. Copy the token and save it somewhere safe — you'll paste it into Railway later. It looks like 123456789:ABCdefGHI....

Token guide: https://core.telegram.org/bots#how-do-i-create-a-bot

Confirm once you have it. (yes/no)

On success: "Telegram bot token ready. All API keys collected!"

Phase 1 Complete

Show summary:

Phase 1 Complete! You have all 4 credentials ready:

  • Anthropic API key
  • Notion integration token
  • Notion database ID
  • Telegram bot token

You'll paste these into Railway as environment variables in Phase 2. Ready for deployment?

Phase 2: Railway Deployment (~10 min)

2A. Railway Account

Ask:

Do you have a Railway account? If not:

  1. Go to https://railway.com
  2. Sign up (GitHub login recommended)
  3. Free trial includes $5 credit

Ready to deploy? (yes/no)

2B. Deploy from GitHub

Ask:

In Railway:

  1. Click "New Project"
  2. Select "Deploy from GitHub repo"
  3. Connect your GitHub and select content-collection
  4. Railway will auto-detect the Procfile

Done? (yes/no)

2C. Configure Environment Variables

Tell user:

In Railway, go to your service > "Variables" tab. Add these 4 variables:

Then use the scripts/create_railway_config.py script to generate the config, OR instruct manually:

code
TELEGRAM_BOT_TOKEN = {their_token}
NOTION_TOKEN = {their_notion_token}
NOTION_DATABASE_ID = {their_db_id}
ANTHROPIC_API_KEY = {their_api_key}

Ask:

All 4 variables added in Railway? (yes/no)

2D. Verify Deployment

Ask:

Go to your Railway service's "Deployments" tab. Click the latest deployment, then "View Logs". Do you see: Bot started with AI-powered content summarization?

If yes: "Deployment successful!"

If no: Check references/troubleshooting.md for common errors:

  • Missing environment variables - variable names wrong or missing
  • 401 Unauthorized - invalid Notion token
  • Could not validate credentials - invalid Anthropic key
  • Build failures - check Python version

Phase 3: Testing (~5 min)

3A. Send Test Message

Ask:

Open Telegram and find your bot (search for its username). Send it a URL, e.g.: https://github.com/anthropics/claude-code Did you get a response with a title and category?

3B. Check Notion

Ask:

Open your Notion database. Do you see a new entry with Title, Category, Added Time, and Content filled in?

3C. Test Category Change

Ask:

In Telegram, reply with a number from the category list shown after saving. Did the category update in both Telegram and Notion?

3D. Test Pure Text

Ask:

Send a plain text message (no URL) to the bot. E.g.: "Learn about vector databases for RAG applications" Did it generate a title and categorize it?

Setup Complete

Your content collection bot is live!

Quick reference:

  • Send any URL -> auto-titled, categorized, saved to Notion
  • Send text before URL -> uses your text as the title
  • Send plain text -> AI generates title from your text
  • Reply with a number -> changes the category

Troubleshooting: See references/troubleshooting.md Notion details: See references/notion_setup.md

Validation

Run scripts/validate_setup.py to verify all connections:

bash
python scripts/validate_setup.py

This checks: env var presence, API key formats, Notion connection, Notion DB structure, Anthropic API connectivity.

Common Issues Quick Reference

SymptomCauseFix
Bot doesn't respondNot deployed / crashedCheck Railway logs
"Missing environment variables"Env var not setCheck Railway Variables tab
Notion 401Bad token or not connectedReconnect integration to DB
Wrong categoriesDB schema mismatchCheck Category column is Select type
No Content column dataColumn name mismatchMust be exactly "Content" (rich text)

See references/troubleshooting.md for full troubleshooting guide.