What we build on Microsoft 365 and Graph
Half of operations still runs in a SharePoint workbook that someone updates on Friday. We don't fight that; we read it through the Graph API, including the cell colours people use as status, and connect it to the systems that should have had the data in the first place.
What we build
Each piece runs in your own cloud account against the Microsoft 365 API. Adopt one or all of them.
SharePoint workbook as intake or status
Polling a workbook on a schedule, reading ranges and tables, even cell fill colours used as status, and writing results back to a separate sheet so the people in Excel keep working as they do.
App-only auth with least privilege
Azure app registration with application permissions scoped to specific sites via Sites.Selected, not tenant-wide read. Credentials in your Key Vault.
License and seat reconciliation
Assigned licenses and active users from Graph against what you invoice each client or department. The same audit method we use for phone seats.
Reports that render in Outlook
Branded HTML reports built to survive Outlook's rendering engine, with drill-down links, delivered on a schedule.
Teams and Outlook notifications
Nudges and alerts into Teams channels or as Outlook mail, with the same ignore and escalation rules as our helpdesk nudges.
Survey and form imports
Microsoft Forms responses matched to customers, filtered by contact permission, with detractor follow-up tickets.
Microsoft 365 specifics we have already solved
The parts that cost a first-time integrator a week each.
429s and the retry-after header
Graph throttles per app and per tenant. Every client honours retry-after and batches requests where the API allows it.
Workbook sessions and locks
Excel through Graph needs a workbook session for consistent reads and writes; the poller opens one, does its work, and closes it so users are never locked out.
Sites.Selected setup
Granting a specific site to an app is a two-step process most tenants have never done. We document it for your admin, or do it with them on a call.
Proof
From production systems, described without client names. Numbers are rounded.
Including cell fill colours as status, 429 handling, app-only auth.
Sent through the systems that own the domain, with merge fields and throttling.
With a contact-permission filter and detractor follow-up.
Questions and pricing
If yours is not here, write to hello@tightlywired.com.
Do you need Global Admin?
Can you work with on-premises SharePoint?
Will this break the spreadsheet people use?
How is it priced?
Related services
Schedule a 30-minute assessment
Bring one process that costs your team hours each week. You will leave with an integration approach and a fixed-price estimate, whether or not we work together.
Schedule an assessment Pick a time now · or write to hello@tightlywired.com