Turn Read.AI meeting reports into an organized, team-shared OneNote notebook and Salesforce activity, automatically.
Status: design complete, implementation in progress. This README is the spec.
Read.AI captures meeting summaries, action items, topics, and transcripts. This tool listens for Read.AI's workspace webhook and, for each completed meeting:
- Writes a page into a shared OneNote notebook, organized as one section per customer and one page per meeting.
- Logs the meeting against the matching Salesforce account/contact.
The "customer" for a meeting is derived from the external attendee's email domain (for example
jdoe@contoso.com maps to Contoso), which is also the key used to match the Salesforce account.
Meetings with no external attendee go to an "Internal" section.
Read.AI workspace webhook ──► Azure Function (HTTP) ──► OneNote (Microsoft Graph)
(every member's meetings) verify signature section per customer,
derive customer page per meeting
write + push └───────► Salesforce
- Source: one Read.AI workspace webhook delivers every workspace member's meeting reports to a
single endpoint. A one-time backfill of historical meetings uses the Read.AI REST API
(
list_meetings+get_meeting_by_id). - Engine: an Azure Function (HTTP trigger) verifies the
X-Read-Signatureheader, dedups onrequest_id, and keys each page onsession_id. - Payload: the
meeting_endwebhook is self-contained (summary, action items, topics, transcript, participants), so the Function needs no follow-up API call for new meetings. Seedocs/read-ai-webhook-payload.sample.json. Workspace webhooks also fire a thinmeeting_startevent (no report yet), which the Function ignores.
The notebook lives in a Microsoft 365 group, which provides a SharePoint site and a group OneNote notebook shared with its members by default. On deploy you can either:
- Auto-create a default group (for example "Read.AI Meeting Notes"), or
- Use an existing group/notebook (
use-existing-groupparameter).
Free and open source. The ARM template provisions an Azure Function App (plus storage and Application Insights), and the Deploy-to-Azure button reads the template straight from this public repo.
You supply, as parameters / app settings:
- Your Read.AI webhook signing key.
- An Entra app registration with Microsoft Graph
Notes.ReadWrite(andGroup.ReadWrite.Allonly if auto-creating the group). - Salesforce auth.
Microsoft 365 group creation and the app registration are handled by a one-time setup script (Microsoft Graph), since those are not Azure resources an ARM template can create.
After deploying, create the workspace webhook in Read.AI (Integrations → Workspace tab) pointed at the Function URL.
MIT.