Feature

Mail and meetings, modeled for the contact.

Fresno already stores email and calendar accounts per tenant, builds Google OAuth authorize URLs, and writes matched messages and meetings as CRM activity. The provider fetch itself (token exchange, IMAP, calendar APIs) is still stubbed — this page describes the model, not a live inbox crawl.

Account types in the data model

Email and calendar are separate accounts. These are the providers the schema already names.

Email

  • Google (OAuth)
  • Microsoft (OAuth)
  • IMAP

Calendar

  • Google Calendar
  • Microsoft Calendar
// matching

Activity only when the contact exists

When a message is logged, inbound matches on the from-address and outbound on the to-addresses. Unmatched addresses are skipped — sync does not invent contacts from every newsletter.

// email

Sent and received as CRM rows

A matched message becomes an email_sent or email_received activity with the subject. That write path is live; pulling the message from Gmail/IMAP is not yet.

// calendar

Meetings on the same timeline

A worker is ready to upsert events and log attendee matches as calendar activity. The Google/Microsoft calendar API client still returns NotImplemented.

// calls too

Transcripts can land as activity

Call transcripts can be logged against matching participants (and an optional deal) — the same activity log call coaching reads from.

// accounts you control

Connect, list, disconnect

Email and calendar accounts are listed per tenant. Token rows exist for Google and Microsoft; authorize URLs are built today. Token exchange/refresh and IMAP connect are still stubs.

The CRM side of sync is already here.

Start free