Upload documents to Google Drive and Claude AI automatically extracts key information, structures it into well-organized articles, and creates pages in Notion — building a searchable knowledge base without manual effort.
1. Create a dedicated Google Drive folder called "Knowledge Base Inbox" — this is where team members will drop documents (PDFs, docs, meeting notes, etc.).
2. Set up a workflow triggered by "New File in Folder" on your Google Drive inbox folder.
3. Add a Google Drive "Download File" node to get the file content. For PDFs, you may need an intermediate step to extract text (use a Code node with a PDF parsing approach, or convert to Google Docs first).
4. Add an HTTP Request node to call Claude API. Use model "claude-sonnet-4-20250514" with max_tokens: 4096. Prompt: "You are a technical writer building a knowledge base. Given the following document, extract the key information and structure it as a KB article with: Title, Summary (2-3 sentences), Key Points (bullet list), Detailed Content (organized with headers), Related Topics, and Tags. Format as JSON. Document: [content]"
5. Add a Code node to parse Claude's JSON response into the fields needed for Notion.
6. Add a Notion "Create Page" node. Set the parent to your Knowledge Base database. Map Claude's output to Notion properties: Title, Summary (rich text), Tags (multi-select), and the article body as page content blocks.
7. Add a Slack notification node that posts to #knowledge-base: "📚 New KB article created: [Title] — [Summary]. View: [Notion URL]"
8. Test with a few sample documents of different types (meeting notes, process docs, technical specs) and refine the prompt based on output quality.
Troubleshooting
**PDF content extraction fails:** Google Drive API doesn't directly extract PDF text. Convert the PDF to Google Docs first using Drive API's convert feature, then read the Docs content. Alternatively, use a dedicated OCR service for scanned PDFs.
**Claude returns malformed JSON:** Add explicit JSON formatting instructions to your prompt: "Return ONLY valid JSON, no markdown code fences." Add a try/catch in your Code node that falls back to treating the response as plain text if JSON parsing fails.
**Notion page formatting is off:** Notion's API has specific block types. Map Claude's headers to heading_2 blocks, bullet points to bulleted_list_item blocks, and paragraphs to paragraph blocks. Test the Notion API payload structure separately before integrating.
**Large documents exceed token limits:** For documents over ~50K characters, split them into chunks. Process each chunk separately with Claude, then have a final Claude call that synthesizes all chunk summaries into one cohesive article.