Use case: CRM and sales

Every rep's email, logged to the right deal.

Reps live in Gmail and Outlook, and your CRM only knows what they remember to log. workwae syncs their mailboxes, sends from their own address and reports what happens next, so the timeline fills itself in.

deal-email.ts
// Send from the rep's own mailbox
const send = await workwae.outbox.create({
  accountId: rep.accountId,
  to: [{ address: "jordan@example.com" }],
  subject: "Proposal and next steps",
  html: proposal,
  reference: "deal_4821",
  tracking: { opens: true, clicks: true },
});
// Your webhook, when Jordan opens it
{
  "type": "message.opened",
  "data": {
    "reference": "deal_4821",
    "actor": "human",
    "isMachine": false
  }
}
What you get

The sales inbox, as CRM data

Everything below is one API and one typed SDK, on Gmail, Microsoft 365 and IMAP accounts alike.

Activity capture without logging

Every message in the sync window is indexed with its thread, participants and direction, inbound or outbound. A webhook for each new message lets you match it to contacts and deals by address or domain.

Mail in the product overview

Send from the rep's mailbox

Messages go out through the rep's own Gmail, Microsoft 365 or SMTP account, from their address or a send-as alias, with their signature. Schedule a send for later, or give reps a window to undo it.

Mail in the product overview

Opens and clicks, minus the bots

Turn on open and click tracking per send or per account. Each hit is classified as a person or a machine, such as an image proxy, prefetch or link scanner, so automated opens don't inflate engagement.

Mail in the product overview

Bounces and replies

Delivery failures are matched to the send that caused them and reported as message.bounced. With AI features on, replies to your sends are classified as human replies, auto-replies, opt-outs or bounces, with out-of-office return dates.

AI features in the product overview

Templates and mail merge

Store Handlebars templates for the whole team or one rep, and send one personalized message per recipient. Sends to a list get one-click unsubscribe and skip suppressed addresses.

Mail in the product overview

Contacts and meetings

Sync Google, Microsoft 365 and CardDAV contacts, and read the events on a rep's calendars, so the CRM knows who they met and when.

Contacts in the product overview
How it fits

From connected mailbox to updated deal

  1. Reps connect their mailbox

    From your app, through a hosted connect page or your own UI. Or an administrator connects the whole team at once with Google Workspace delegation or Microsoft 365 admin consent.

  2. workwae syncs and listens

    Mail, calendars and contacts are indexed and kept current with provider push, and every change becomes a signed webhook and an entry in the change feed.

  3. Your CRM logs and sends

    Match messages to records by address, send with your own reference, and update the deal when a message is opened, clicked, bounced or answered.

Early access

Stop asking reps to log their email.

We are onboarding a small number of teams. Tell us what you are building.