TeamsToaster
A .NET 8 Windows automation tool that monitors incoming Microsoft Teams PSTN calls in real-time, extracts caller information from the Teams UI, and forwards it to a backend API for CRM integration.
Overview
TeamsToaster solves a unique integration challenge: enriching Microsoft Teams call metadata with CRM context when PSTN calls arrive. Unlike traditional VoIP solutions with built-in integrations, Teams doesn't expose call metadata through standard APIs during incoming PSTN calls, requiring a creative approach to bridge the gap.
The tool monitors Teams in real-time using Windows UI Automation to detect incoming calls, extracts the caller's phone number and name from the Teams UI, and sends it to a CRM API for immediate context lookup—all without modifying Teams itself or requiring administrative privileges beyond the local user.
Key Features
- Real-Time Call Detection: Monitors Teams UI for incoming PSTN calls and captures the moment a call arrives
- Caller Information Extraction: Uses Windows UI Automation to safely read the caller's phone number and display name from the Teams interface
- CRM API Integration: Forwards call details to a backend service for context enrichment, customer lookup, or call logging
- Background Service Operation: Runs as a background process with minimal resource overhead and no user interaction required
- Reliability & Logging: Robust error handling with detailed logging for troubleshooting and audit trails
- Non-Invasive Design: Operates through UI accessibility APIs—no Teams modification, no special permissions, no local admin rights needed
Technical Architecture
Client Side (Windows)
- .NET 8 (latest LTS framework)
- Windows UI Automation API
- System.Diagnostics for process monitoring
- HttpClient for API communication
- Serilog for structured logging
Integration Pattern
- Real-time event-driven architecture
- RESTful API calls to backend service
- Webhook-style delivery of call events
- Retry logic for transient failures
Deployment
- Self-contained .NET executable
- Windows Service or scheduled task runner
- Single-machine deployment model
- Configuration via appsettings.json
Impact & Outcomes
TeamsToaster unblocks a common integration gap for organizations using Teams as their phone system:
- Provides instant caller context to teams without requiring additional dialer software
- Eliminates manual caller name lookups by automating context retrieval
- Integrates Teams PSTN calling with existing CRM workflows seamlessly
- Works with standard Teams licenses—no premium add-ons or special configuration required
- Runs locally on user machines, respecting security and compliance policies
Challenges Solved
Building this tool required solving several technical challenges specific to the Windows/Teams ecosystem:
- UI Accessibility: Reliable extraction of information from Teams' dynamic UI without brittle selectors
- Process Lifecycle: Handling Teams restarts, crashes, and background process management gracefully
- Call Detection Accuracy: Distinguishing between incoming and outgoing calls, avoiding false triggers
- Network Reliability: Queueing and retrying API calls when the network is unavailable
- Minimal Permissions: Operating without admin rights or Teams modification to ensure organizational safety