> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thread.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft

> Connect Microsoft 365 for calendar integration and email functionality

## Overview

The Microsoft integration connects Thread with Microsoft 365 services, enabling calendar access for scheduling, email capabilities, and user directory features.

***

## Benefits

<CardGroup cols={2}>
  <Card title="Calendar Access" icon="calendar">
    View availability and schedule meetings
  </Card>

  <Card title="Email Sending" icon="envelope">
    Send onboarding emails via Outlook
  </Card>

  <Card title="User Directory" icon="users">
    Access team member information
  </Card>

  <Card title="Enterprise SSO" icon="key">
    Single sign-on for Microsoft-based organizations
  </Card>
</CardGroup>

***

## Available Features

### Calendar Integration

* **View availability** - See free/busy times for scheduling
* **Schedule meetings** - Create calendar events
* **Meeting links** - Generate Teams meeting links
* **Room booking** - Access conference room availability

### Email Integration

* **Send emails** - Dispatch onboarding emails via Outlook
* **Email tracking** - Track opens and clicks
* **Branded sending** - Emails come from your domain
* **Reply handling** - Manage customer responses

### Directory Access

* **User lookup** - Find team members
* **Profile information** - Names, titles, photos
* **Team structure** - Organizational context

***

## Setup Instructions

### Prerequisites

* Microsoft 365 subscription (Business or Enterprise)
* Global Administrator or delegated admin permissions
* Thread account with admin role

### Step 1: Connect OAuth

<Steps>
  <Step title="Navigate to Connectors">
    In Thread: **Connectors** → Find **Microsoft** → Click **"Connect"**
  </Step>

  <Step title="Sign In">
    Redirected to Microsoft login → Sign in with your Microsoft 365 account
  </Step>

  <Step title="Review Permissions">
    Microsoft shows permissions Thread is requesting:

    * Read calendar information
    * Send email on your behalf
    * Read basic user profile
    * Read directory data

    Click **"Accept"** to grant permissions.
  </Step>

  <Step title="Admin Consent (If Required)">
    If your organization requires admin consent:

    * Admin must approve the application
    * May see "Approval required" message
    * Contact your IT admin for approval
  </Step>

  <Step title="Confirm Connection">
    Redirected back to Thread → Green checkmark → Status: "Connected"
  </Step>
</Steps>

### Step 2: Configure Features

<Steps>
  <Step title="Open Connector Settings">
    **Connectors** → **Microsoft** → **Settings**
  </Step>

  <Step title="Enable Calendar">
    Toggle **"Calendar Integration"** to enable:

    * Availability checking
    * Meeting scheduling
    * Teams link generation
  </Step>

  <Step title="Enable Email">
    Toggle **"Email via Outlook"** to enable:

    * Sending onboarding emails
    * Email tracking
    * Reply handling
  </Step>

  <Step title="Configure Email Settings">
    If using email:

    * Select default sending account
    * Configure reply-to address
    * Enable/disable tracking
  </Step>

  <Step title="Save Configuration">
    Click **"Save"** to apply settings.
  </Step>
</Steps>

***

## Calendar Features

### Viewing Availability

When scheduling meetings with customers:

1. Thread checks CSM's calendar
2. Shows available time slots
3. Displays conflicts and busy periods
4. Suggests optimal meeting times

### Scheduling Meetings

<Steps>
  <Step title="Create Meeting Action">
    In templates or manual scheduling, select meeting action.
  </Step>

  <Step title="Select Participants">
    Choose attendees:

    * CSM (required)
    * Customer contacts
    * Additional team members
  </Step>

  <Step title="Set Time">
    Choose date/time or use scheduling assistant.
  </Step>

  <Step title="Generate Link">
    Thread creates Teams meeting link automatically.
  </Step>

  <Step title="Send Invite">
    Calendar invite sent to all participants.
  </Step>
</Steps>

### Teams Integration

If your organization uses Microsoft Teams:

* Meetings include Teams links by default
* No separate Teams setup required
* Works with existing Teams settings

***

## Email Features

### Sending via Outlook

Emails sent through Thread can use your Outlook account:

**Benefits:**

* Emails come from your domain
* Customers see familiar sender
* Replies go to your inbox
* Full tracking capabilities

### Email Configuration

| Setting             | Description                          |
| ------------------- | ------------------------------------ |
| **Sending Account** | Which Outlook account sends emails   |
| **Reply-To**        | Where replies should go              |
| **Signature**       | Whether to include Outlook signature |
| **Tracking**        | Open and click tracking              |

### Tracking Capabilities

Track email engagement:

* **Opens** - When emails are opened
* **Clicks** - Link clicks
* **Replies** - Customer responses
* **Bounces** - Delivery failures

***

## Use Cases

### 1. Automated Meeting Scheduling

**Scenario:** Schedule kickoff calls automatically.

**Workflow:**

1. Account created
2. Template triggers kickoff meeting action
3. Thread checks CSM availability
4. Sends scheduling link to customer
5. Customer picks time
6. Calendar invite sent to all

### 2. Branded Email Communication

**Scenario:** Send onboarding emails from your domain.

**Configuration:**

1. Connect Microsoft integration
2. Enable email via Outlook
3. Select sending account
4. Emails now sent via your Outlook

**Result:** Emails come from `csm@yourcompany.com` instead of generic Thread address.

### 3. Availability-Aware Actions

**Scenario:** Only assign actions when CSM is available.

**How it works:**

1. Workflow checks CSM calendar
2. If available, schedules immediately
3. If busy, queues for later
4. CSM never double-booked

***

## Admin Consent

### Why Admin Consent May Be Required

Microsoft organizations often require admin approval for new applications. This happens when:

* Organizational policy requires admin consent
* Requested permissions need admin approval
* First user from organization is connecting

### Requesting Admin Consent

<Steps>
  <Step title="Identify Admin">
    Find your Microsoft 365 Global Administrator or IT admin.
  </Step>

  <Step title="Share Request">
    Send them the consent request link (shown when blocked).
  </Step>

  <Step title="Admin Reviews">
    Admin logs in and reviews permissions Thread requests.
  </Step>

  <Step title="Admin Approves">
    Admin clicks "Accept" to grant organization-wide consent.
  </Step>

  <Step title="Connect Again">
    You can now complete the connection.
  </Step>
</Steps>

<Info>
  Once admin consent is granted, all users in your organization can connect without individual approval.
</Info>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Connection Requires Admin Consent">
    **Cause:** Your organization requires admin approval.

    **Solution:**

    * Contact your IT/Microsoft 365 admin
    * Share the consent request link
    * Admin must approve the application
    * Then reconnect
  </Accordion>

  <Accordion title="Calendar Not Syncing">
    **Check:**

    * Calendar integration is enabled
    * Correct account connected
    * Permissions include calendar access

    **Try:**

    * Reconnect the integration
    * Verify calendar permissions
    * Check Outlook calendar settings
  </Accordion>

  <Accordion title="Emails Not Sending">
    **Check:**

    * Email feature is enabled
    * Sending account is configured
    * Account has send permissions

    **Try:**

    * Test send from Outlook directly
    * Verify send-as permissions
    * Check email configuration
  </Accordion>

  <Accordion title="Teams Links Not Working">
    **Check:**

    * Teams is enabled for your organization
    * User has Teams license
    * Meeting policies allow external guests

    **Try:**

    * Create meeting manually in Teams
    * Check Teams admin settings
    * Verify meeting policy
  </Accordion>
</AccordionGroup>

***

## Best Practices

<CardGroup cols={2}>
  <Card title="Use Dedicated Account" icon="user">
    Consider a shared mailbox for sending rather than individual accounts
  </Card>

  <Card title="Keep Calendars Updated" icon="calendar-check">
    Accurate calendars ensure correct availability checking
  </Card>

  <Card title="Test Thoroughly" icon="flask">
    Send test emails and meetings before going live
  </Card>

  <Card title="Monitor Deliverability" icon="chart-line">
    Watch email bounce rates and delivery issues
  </Card>
</CardGroup>

### Microsoft-Specific Tips

* **Shared mailboxes** work well for team email sending
* **Distribution lists** can receive replies for team visibility
* **Room resources** can be booked if permissions allow
* **Delegate access** enables sending on behalf of others

***

## Security & Compliance

### Permissions Used

| Permission              | Purpose                     |
| ----------------------- | --------------------------- |
| **Calendars.ReadWrite** | View/create calendar events |
| **Mail.Send**           | Send emails                 |
| **User.Read**           | Basic profile information   |
| **Directory.Read.All**  | Team member lookup          |

### Data Handling

* Calendar data accessed in real-time (not stored)
* Email content logged for tracking
* Directory queries cached briefly
* All data encrypted in transit

### Compliance

* SOC 2 compliant integration
* GDPR considerations honored
* Microsoft data residency respected

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Email Actions" icon="envelope" href="/csm-guide/templates/action-types">
    Configure email actions in templates
  </Card>

  <Card title="Scheduling" icon="calendar" href="/csm-guide/automation/scheduled-actions">
    Set up automated meeting scheduling
  </Card>

  <Card title="Templates" icon="file-lines" href="/csm-guide/templates/creating-templates">
    Create templates with Microsoft features
  </Card>
</CardGroup>
