← Back to projects

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