{"id":32720935,"url":"https://github.com/vennelchenfoo/slack-it-rag-agent","last_synced_at":"2026-06-29T12:31:29.453Z","repository":{"id":320443061,"uuid":"1082124936","full_name":"vennelchenfoo/slack-it-rag-agent","owner":"vennelchenfoo","description":"AI-powered IT support agent for Slack using RAG architecture with n8n, OpenAI, and Supabase","archived":false,"fork":false,"pushed_at":"2025-10-29T08:20:23.000Z","size":665,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-02T20:04:08.010Z","etag":null,"topics":["ai-agent","automation","it-support","llm","n8n-workflow","rag","slack-bot","vector-database"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vennelchenfoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-23T19:14:15.000Z","updated_at":"2025-10-29T08:20:26.000Z","dependencies_parsed_at":"2025-11-02T20:04:03.818Z","dependency_job_id":null,"html_url":"https://github.com/vennelchenfoo/slack-it-rag-agent","commit_stats":null,"previous_names":["vennelchenfoo/slack-it-rag-agent"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vennelchenfoo/slack-it-rag-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vennelchenfoo%2Fslack-it-rag-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vennelchenfoo%2Fslack-it-rag-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vennelchenfoo%2Fslack-it-rag-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vennelchenfoo%2Fslack-it-rag-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vennelchenfoo","download_url":"https://codeload.github.com/vennelchenfoo/slack-it-rag-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vennelchenfoo%2Fslack-it-rag-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34927675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","automation","it-support","llm","n8n-workflow","rag","slack-bot","vector-database"],"created_at":"2025-11-02T20:01:25.751Z","updated_at":"2026-06-29T12:31:29.441Z","avatar_url":"https://github.com/vennelchenfoo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slack IT Knowledge Base RAG Agent\n\nAn intelligent n8n workflow that provides instant IT support through Slack using RAG (Retrieval-Augmented Generation). This workflow automatically answers IT questions by searching your knowledge base stored in Google Drive.\n\n## Overview\n\nThis project demonstrates a production-ready implementation of a conversational AI agent for IT support teams. The bot monitors a Google Drive folder for IT documentation, processes and indexes the content using vector embeddings, and responds to Slack messages with accurate, source-cited answers.\n\n### Key Features\n\n- **Automated Knowledge Indexing**: Monitors Google Drive for new/updated documents\n- **Intelligent Search**: Uses vector embeddings for semantic search (not just keyword matching)\n- **Conversational Memory**: Maintains context across multiple messages\n- **Source Attribution**: Always cites which document the information came from\n- **Real-time Updates**: Automatically re-indexes when documents change\n\n## Architecture\n\n```\nGoogle Drive (IT Documentation)\n    ↓\nn8n Workflow Triggers on File Changes\n    ↓\nLlamaParse Processes Documents\n    ↓\nText Splitting + Vector Embeddings\n    ↓\nSupabase Vector Database\n    ↓\nUser Asks Question in Slack\n    ↓\nRAG Agent Searches Knowledge Base\n    ↓\nResponse with Source Citation\n```\n## Workflow Visualization\n\n### Document Ingestion Pipeline\nThis workflow monitors Google Drive for new/updated documents, \nprocesses them through LlamaParse, and indexes them in the vector database.\n\n![Document Ingestion Workflow](assets/screenshots/document-ingestion-workflow.png)\n\n### Slack Query Response Pipeline\nThis workflow handles incoming Slack messages, searches the knowledge base, \nand generates AI-powered responses with source citations.\n\n![Slack Query Workflow](assets/screenshots/slack-query-workflow.png)\n\n### Technology Stack\n\n- **n8n**: Workflow automation and orchestration\n- **OpenAI GPT-4**: Language model for responses\n- **OpenAI Embeddings**: Vector embeddings (ada-002)\n- **Supabase**: PostgreSQL with pgvector extension\n- **LlamaParse**: Document processing (PDF, DOCX, etc.)\n- **Slack**: User interface\n- **Google Drive**: Document storage\n\n## Use Cases\n\nPerfect for IT teams that want to:\n- Reduce repetitive support tickets\n- Provide 24/7 access to IT knowledge\n- Onboard new team members faster\n- Scale IT support without adding headcount\n- Centralize IT documentation\n\n## Prerequisites\n\nYou'll need accounts/access for:\n- n8n instance (cloud or self-hosted v1.0+)\n- Slack workspace with admin permissions\n- Google Cloud Platform (for Drive API)\n- Supabase account (free tier works)\n- OpenAI API key\n- LlamaIndex account (for LlamaParse)\n\n## Quick Start\n\n**Setup time: ~30 minutes**\n\n1. **Clone this repository**\n2. **Set up Supabase database** (run SQL script in docs/SETUP.md)\n3. **Import workflow** to n8n from `workflows/slack-it-rag-agent.json`\n4. **Configure credentials** in n8n for all services\n5. **Connect Slack webhook** for receiving messages\n6. **Upload IT documentation** to your Google Drive folder\n7. **Activate workflow** and test\n\nDetailed setup instructions: [docs/SETUP.md](docs/SETUP.md)\n\n## Project Structure\n\n```\nslack-it-rag-agent/\n├── workflows/\n│   └── slack-it-rag-agent.json       # Main n8n workflow (sanitized)\n├── docs/\n│   ├── SETUP.md                       # Complete setup guide\n│   └── TROUBLESHOOTING.md             # Common issues \u0026 solutions\n├── .env.example                       # Environment variables template\n├── .gitignore                         # Security exclusions\n├── LICENSE                            # MIT License\n└── README.md                          # This file\n```\n\n## Configuration\n\nAll sensitive credentials are managed through n8n's credential system. See `.env.example` for required environment variables.\n\n### Required Credentials\n\n| Service | Type | Used For |\n|---------|------|----------|\n| Slack | OAuth Token | Sending/receiving messages |\n| Google Drive | Service Account | Monitoring document folder |\n| Supabase | API Key | Vector database storage |\n| OpenAI | API Key | Embeddings + chat completion |\n| PostgreSQL | Connection String | Conversation memory |\n| LlamaParse | Bearer Token | Document processing |\n\n## How It Works\n\n### Document Ingestion Pipeline\n\n1. Google Drive trigger monitors folder for changes\n2. New/updated files are sent to LlamaParse for processing\n3. Extracted text is split into chunks (1000 chars, 200 overlap)\n4. Each chunk is converted to vector embeddings\n5. Embeddings are stored in Supabase with metadata\n\n### Query Response Pipeline\n\n1. User sends message to Slack bot\n2. Message triggers n8n webhook\n3. Bot filters out its own messages\n4. User query is converted to vector embedding\n5. Semantic search finds relevant document chunks\n6. AI agent generates response using retrieved context\n7. Response is validated and sent back to Slack\n8. Conversation is saved to PostgreSQL for memory\n\n## Performance\n\n- **Average response time**: 3-5 seconds\n- **Knowledge base capacity**: 500+ documents tested\n- **Retrieval accuracy**: ~85% (Top-3 chunks)\n- **Estimated cost**: $10-50/month (moderate usage)\n\n## Customization\n\n### Adjust System Prompt\n\nEdit the AI Agent node to customize behavior:\n```\nYou are an IT support assistant for [YOUR_COMPANY].\nAnswer questions using only the knowledge base provided.\nAlways cite your sources as \"Source: [filename]\".\nIf information isn't available, say so and direct users to IT helpdesk.\n```\n\n### Tune Search Parameters\n\n- **Top K**: Number of document chunks to retrieve (default: 3)\n- **Chunk Size**: Text split size (default: 1000 characters)\n- **Similarity Threshold**: Minimum relevance score (default: 0.7)\n\n## Troubleshooting\n\nCommon issues and solutions are documented in [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).\n\n**Quick fixes:**\n- Bot not responding? Check workflow is Active and webhook is verified\n- Poor answers? Increase Top K or adjust similarity threshold\n- Documents not indexing? Verify Google Drive service account permissions\n\n## Security Notes\n\n- All credentials are sanitized in the public workflow\n- Never commit `.env` files to version control\n- Use environment variables for all sensitive data\n- Review `.gitignore` to ensure proper exclusions\n- Rotate API keys regularly (every 90 days recommended)\n\n## Contributing\n\nThis is a learning project and community contributions are welcome! Feel free to:\n- Open issues for bugs or questions\n- Submit pull requests for improvements\n- Share your customizations and use cases\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- n8n community for workflow patterns\n- LlamaIndex for excellent document parsing\n- Supabase for vector database hosting\n- OpenAI for embeddings and language models\n\n## Resources\n\n- **n8n Documentation**: [docs.n8n.io](https://docs.n8n.io)\n- **Supabase Docs**: [supabase.com/docs](https://supabase.com/docs)\n- **OpenAI API**: [platform.openai.com/docs](https://platform.openai.com/docs)\n- **LlamaParse**: [docs.llamaindex.ai/en/stable/llama_cloud/llama_parse.html](https://docs.llamaindex.ai/en/stable/llama_cloud/llama_parse.html)\n\n---\n\n**Note**: This workflow demonstrates RAG (Retrieval-Augmented Generation) architecture for production IT support automation. It serves as a template for teams looking to implement AI-powered knowledge bases without extensive ML engineering resources.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvennelchenfoo%2Fslack-it-rag-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvennelchenfoo%2Fslack-it-rag-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvennelchenfoo%2Fslack-it-rag-agent/lists"}