Imported from kestra-io/plugin-microsoft365 (
AGENTS.md). Install upstream withnpx skills add kestra-io/plugin-microsoft365. Copyright stays with the author.
Kestra Microsoft 365 Plugin
What
- Provides plugin components under
io.kestra.plugin.microsoft365. - Covers Microsoft Graph-based integrations for Outlook, OneShare and SharePoint file operations, and Teams notifications.
- Includes classes such as
Send,MailReceivedTrigger,Upload,Trigger, andTeamsIncomingWebhook.
Why
- What user problem does this solve? Teams need to integrate Microsoft 365 services through the Microsoft Graph API from orchestrated workflows instead of relying on manual console work, ad hoc scripts, or disconnected schedulers.
- Why would a team adopt this plugin in a workflow? It keeps Microsoft 365 steps in the same Kestra flow as upstream preparation, approvals, retries, notifications, and downstream systems.
- What operational/business outcome does it enable? It reduces manual handoffs and fragmented tooling while improving reliability, traceability, and delivery speed for processes that depend on Microsoft 365.
How
Architecture
Single-module plugin. Source packages under io.kestra.plugin:
microsoft365
Infrastructure dependencies (Docker Compose services):
app
Key Plugin Classes
io.kestra.plugin.microsoft365.oneshare.Createio.kestra.plugin.microsoft365.oneshare.Deleteio.kestra.plugin.microsoft365.oneshare.Downloadio.kestra.plugin.microsoft365.oneshare.Exportio.kestra.plugin.microsoft365.oneshare.Listio.kestra.plugin.microsoft365.oneshare.Triggerio.kestra.plugin.microsoft365.oneshare.Uploadio.kestra.plugin.microsoft365.outlook.Getio.kestra.plugin.microsoft365.outlook.Listio.kestra.plugin.microsoft365.outlook.MailReceivedTriggerio.kestra.plugin.microsoft365.outlook.Sendio.kestra.plugin.microsoft365.sharepoint.Createio.kestra.plugin.microsoft365.sharepoint.Deleteio.kestra.plugin.microsoft365.sharepoint.Downloadio.kestra.plugin.microsoft365.sharepoint.Exportio.kestra.plugin.microsoft365.sharepoint.Listio.kestra.plugin.microsoft365.sharepoint.Moveio.kestra.plugin.microsoft365.sharepoint.Uploadio.kestra.plugin.microsoft365.teams.TeamsExecutionio.kestra.plugin.microsoft365.teams.TeamsIncomingWebhookio.kestra.plugin.microsoft365.teams.adaptivecards.Sendio.kestra.plugin.microsoft365.teams.adaptivecards.SendToUser
Project Structure
plugin-microsoft365/
├── src/main/java/io/kestra/plugin/microsoft365/teams/
├── src/test/java/io/kestra/plugin/microsoft365/teams/
├── build.gradle
└── README.md
Important Commands
# Build the plugin
./gradlew shadowJar
# Run tests
./gradlew test
# Build without tests
./gradlew shadowJar -x test
Configuration
All tasks and triggers accept standard Kestra plugin properties. Credentials should use
{{ secret('SECRET_NAME') }} — never hardcode real values.