elsa-workflows / elsa-workflows/elsa-extensions

Add Teams Integration

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **Microsoft Teams** in Elsa Workflows. The module should allow workflows to interact with Microsoft Teams, supporting team and channel management, messaging, meetings, and event monitoring.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.Teams`
- [ ] Implement **Workflow Activities**:
- [ ] **AddMember** - Adds a new member to a Microsoft Team.
- [ ] **AddMemberToGroup** - Adds a member to an Office 365 Group.
- [ ] **CreateChannel** - Creates a new channel in a Microsoft Team.
- [ ] **CreateTeamFromGroup** - Creates a Microsoft Team from an Office 365 Group.
- [ ] **CreateOffice365Group** - Creates a new Office 365 Group.
- [ ] **CreateOnlineMeeting** - Creates an online meeting that is not linked to a calendar event.
- [ ] **DeleteChannel** - Deletes a channel from a team.
- [ ] **DeleteTeamOrGroup** - Deletes a Microsoft Team or Office 365 Group from an organization.
- [ ] **DeleteOnlineMeeting** - Deletes an online meeting by its ID.
- [ ] **GetUsersPresence** - Retrieves the presence status of selected users (not available for personal accounts).
- [ ] **GetChannel** - Retrieves the properties and relationships of a channel.
- [ ] **GetTeam** - Retrieves the properties and relationships of a Microsoft Team or Office 365 Group.
- [ ] **GetOnlineMeeting** - Retrieves an online meeting by its ID.
- [ ] **ListAllTeamsAndGroups** - Retrieves a list of all Microsoft Teams in an organization, including Office 365 Groups.
- [ ] **ListChannels** - Retrieves a list of all channels in a Microsoft Team.
- [ ] **ListJoinedTeams** - Retrieves a list of all Microsoft Teams that the authenticated user has joined.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **ReplyToChannelMessage** - Creates a new reply to a message in a specified channel.
- [ ] **SearchUsers** - Searches for users by a filter parameter.
- [ ] **SendMessage** - Sends a message to a team's channel or chat.
- [ ] **UpdateChannel** - Updates the properties of a specified channel.
- [ ] **UpdateTeam** - Updates the properties of a Microsoft Team or Office 365 Group.
- [ ] **UpdateOnlineMeeting** - Updates an online meeting by its ID.
- [ ] **WatchMessages** - Triggers when someone sends a message in a team's channel or chat.
- [ ] **WatchNewReplies** - Triggers when a new reply to a selected message is received (not available for personal accounts).
- [ ] **WatchTeams** - Triggers when a new Microsoft Team or Office 365 Group is created.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [Microsoft Teams API Docs](https://learn.microsoft.com/en-us/graph/teams-concept-overview)
- 🛠️ [Microsoft Graph .NET SDK](https://www.nuget.org/packages/Microsoft.Graph/)

## **Notes**
- This integration should follow the standard Elsa Workflows structure.
- Authentication should be via **OAuth 2.0** using Microsoft Graph API.
- Ensure proper permission handling for organization-wide and user-specific operations.
- Real-time monitoring of messages, teams, and user activity should be optimized.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.