Skip to content

Conversation

@waleedlatif1
Copy link
Collaborator

Summary

  • added more slack tools

Type of Change

  • New feature

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Dec 5, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
docs Error Error Dec 5, 2025 9:21pm

@waleedlatif1 waleedlatif1 merged commit 5d6c1f7 into staging Dec 5, 2025
4 of 5 checks passed
@waleedlatif1 waleedlatif1 deleted the feat/slack branch December 5, 2025 21:22
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 5, 2025

Greptile Overview

Greptile Summary

This PR expands Slack integration by adding four new workspace management tools: list channels, list channel members, list users, and get user info.

Key Changes:

  • Added slack_list_channels to retrieve all public/private channels with filtering options
  • Added slack_list_members to get member IDs for a specific channel
  • Added slack_list_users to list all workspace users with profile data (filters out Slackbot automatically)
  • Added slack_get_user to retrieve detailed user information by ID
  • Extended Slack block UI with new operations and conditional field rendering
  • Updated type definitions to support all new tools with proper TypeScript interfaces
  • Registered all tools in the registry for system-wide availability
  • Added comprehensive documentation for all new tools with clear parameter descriptions

Additional Improvements:

  • Enhanced documentation for Google Calendar, Drive, and Sheets tools with clearer examples
  • Simplified icon SVGs and fixed React prop names (stopColor instead of stop-color)
  • Added new MCP icon component

All new tools follow established patterns, include proper OAuth integration, error handling, and pagination support.

Confidence Score: 5/5

  • This PR is safe to merge with high confidence - all changes are additive, well-structured, and follow established patterns
  • The implementation is clean with consistent patterns across all new tools. Each tool properly handles authentication, includes comprehensive error handling with specific error messages, implements pagination limits, and has complete TypeScript typing. The block integration correctly handles conditional field rendering. Documentation is thorough and helpful. No breaking changes or security issues identified.
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
apps/sim/tools/slack/list_channels.ts 5/5 Added new tool to list Slack channels with proper OAuth integration, error handling, and pagination support
apps/sim/tools/slack/list_members.ts 5/5 Added tool to list channel members with clean implementation and appropriate error handling
apps/sim/tools/slack/list_users.ts 5/5 Implemented list users tool with filtering for deleted users and Slackbot, returns comprehensive user profiles
apps/sim/tools/slack/get_user.ts 5/5 Added tool to get detailed user info by ID with extensive profile data returned
apps/sim/blocks/blocks/slack.ts 5/5 Integrated new Slack operations into the block UI with conditional field rendering and proper parameter handling
apps/docs/content/docs/en/tools/slack.mdx 5/5 Comprehensive documentation added for all four new Slack tools with clear parameter descriptions and examples

Sequence Diagram

sequenceDiagram
    participant User
    participant Block as Slack Block UI
    participant Tool as Slack Tool
    participant API as Slack API
    
    Note over User,API: List Channels Flow
    User->>Block: Select "List Channels" operation
    Block->>Tool: slack_list_channels(accessToken, includePrivate, limit)
    Tool->>API: GET conversations.list?types=public_channel,private_channel
    API-->>Tool: Return channels array
    Tool-->>Block: {channels: [...], count: n}
    Block-->>User: Display channel list
    
    Note over User,API: List Channel Members Flow
    User->>Block: Select "List Channel Members" + channel
    Block->>Tool: slack_list_members(accessToken, channel, limit)
    Tool->>API: GET conversations.members?channel=C123
    API-->>Tool: Return member IDs array
    Tool-->>Block: {members: [U123, U456], count: n}
    Block-->>User: Display member IDs
    
    Note over User,API: List Users Flow
    User->>Block: Select "List Users" operation
    Block->>Tool: slack_list_users(accessToken, includeDeleted, limit)
    Tool->>API: GET users.list
    API-->>Tool: Return users array
    Tool-->>Block: {users: [...profiles...], count: n}
    Block-->>User: Display user profiles
    
    Note over User,API: Get User Info Flow
    User->>Block: Select "Get User Info" + userId
    Block->>Tool: slack_get_user(accessToken, userId)
    Tool->>API: GET users.info?user=U123
    API-->>Tool: Return detailed user object
    Tool-->>Block: {user: {...detailed profile...}}
    Block-->>User: Display user details
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

13 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants