> For the complete documentation index, see [llms.txt](https://docs.graphlit.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.graphlit.dev/api-guides/use-cases/feeds/messaging/feed-create-microsoft-teams.md).

# Create Microsoft Teams Feed

## User Intent

"How do I sync messages from Microsoft Teams channels? Show me how to create a Teams feed with OAuth."

## Operation

**SDK Method**: `createFeed()` with FeedTypes.MicrosoftTeams\
**OAuth**: Required via Developer Portal

***

## Code Example (TypeScript)

```typescript
import { Graphlit } from 'graphlit-client';
import { FeedListingTypes, FeedTypes } from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

const feed = await graphlit.createFeed({
  name: 'Engineering Team',
  type: FeedTypes.MicrosoftTeams,
  microsoftTeams: {
    type: FeedListingTypes.Past,
    clientId: process.env.MICROSOFT_CLIENT_ID!,
    clientSecret: process.env.MICROSOFT_CLIENT_SECRET!,
    refreshToken: process.env.MICROSOFT_REFRESH_TOKEN!,
    teamId: 'team-id',
    channelId: 'channel-id',
    readLimit: 1000,
  },
  // Optional: add workflow for content processing
  // workflow: { id: workflow.createWorkflow.id }
});

console.log(`Created Teams feed: ${feed.createFeed.id}`);
```

***

## Configuration

**Channels**: Specify channels or leave empty for all\
**readLimit**: Messages per channel (default: 100)\
**includeAttachments**: Sync file attachments

***

## OAuth Setup

1. Developer Portal → Connectors → Messaging
2. Authorize Microsoft Teams
3. Copy OAuth token
4. Use in feed creation

***

## What Gets Synced

* Channel messages
* Mentions
* File attachments (if enabled)
* Message metadata (author, timestamp)

***
