Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .env.rag.example
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,11 @@ S3_ACCOUNT1_SCHEDULES=
#SERPAPI_KEY=your-serpapi-api-key
#SERPAPI_QUERIES="OpenAI news, Bitcoin price, Tesla updates"
#SERPAPI_SCHEDULES=60

# OUTLOOK CONNECTORS (optional):

#OUTLOOK1_CLIENT_ID=your-azure-app-client-id
#OUTLOOK1_CLIENT_SECRET=your-azure-app-client-secret
#OUTLOOK1_TENANT_ID=your-azure-tenant-id
#OUTLOOK1_USER_EMAIL=user@company.onmicrosoft.com
#OUTLOOK1_SCHEDULES=3600
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,42 @@ SERPAPI1_QUERIES=aaa
SERPAPI1_SCHEDULES=3600
````

### Outlook Connector

The Outlook connector ingests emails from a Microsoft 365 mailbox via the Microsoft Graph API.
Uses the [LlamaIndex OutlookEmailReader](https://llamahub.ai/l/readers/llama-index-readers-microsoft-outlook-emails)
for authentication and email fetching.

> **Note:** Only **Microsoft 365 / Entra ID (Business)** accounts are supported.
> Personal Microsoft accounts are not supported (client credentials flow limitation).
> Requires an Azure app registration with `Mail.Read` application permission and admin consent.

```yaml
# config.yaml

sources:
- type: "outlook"
name: "outlook1"
config:
client_id: "${OUTLOOK1_CLIENT_ID}"
client_secret: "${OUTLOOK1_CLIENT_SECRET}"
tenant_id: "${OUTLOOK1_TENANT_ID}"
user_email: "${OUTLOOK1_USER_EMAIL}"
folder: "Inbox" # optional, default Inbox; display names like "My Folder" are supported
num_mails: 100 # optional, default 10
schedules: "${OUTLOOK1_SCHEDULES}"
```

```dotenv
# .env.rag

OUTLOOK1_CLIENT_ID=your-azure-app-client-id
OUTLOOK1_CLIENT_SECRET=your-azure-app-client-secret
OUTLOOK1_TENANT_ID=your-azure-tenant-id
OUTLOOK1_USER_EMAIL=user@company.onmicrosoft.com
OUTLOOK1_SCHEDULES=3600
```

## Embeddings and Inference

### Embeddings support
Expand Down
11 changes: 11 additions & 0 deletions config.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,17 @@ sources:
# queries: "${SERPAPI_QUERIES}"
# schedules: "${SERPAPI_SCHEDULES}"

#- type: "outlook"
# name: "outlook1"
# config:
# client_id: "${OUTLOOK1_CLIENT_ID}"
# client_secret: "${OUTLOOK1_CLIENT_SECRET}"
# tenant_id: "${OUTLOOK1_TENANT_ID}"
# user_email: "${OUTLOOK1_USER_EMAIL}"
# folder: "Inbox" # optional, default Inbox; display names like "My Folder" are supported
# num_mails: 100 # optional, default 10
# schedules: "${OUTLOOK1_SCHEDULES}"

embedding:
# can be `local` or `openrouter`/`openai`
provider: local
Expand Down