← Prospect Intelligence Platform
Live

Inbound email to qualified lead

Beyond the outbound research flow, the platform also captures leads coming in the other direction: a real inbound message, parsed and scored by an agent, with a tool call that lands the result in a spreadsheet a salesperson already has open. Real demo, real example.

Inbound email arrives in a mailbox 01 · IMAP connector syncs the mailbox pull-based, on demand · writes a connector event 02 · Deterministic intent parser scores it extracts contact, classifies intent, becomes a lead above the confidence threshold 03 · Agent's Google Sheets tool appends the row, live

IMAP connector pulls the mailbox

A per-user IMAP connection (encrypted password, mailbox settings) is synced on demand, either from a REST endpoint or a queued job, using a hand-rolled IMAP client built on raw sockets rather than PHP's imap extension. Each new message becomes a ConnectorEvent, the same raw-event shape a WhatsApp webhook produces, so downstream processing doesn't care which channel a message arrived on. Sync is pull-based: it runs when triggered, not continuously via IMAP IDLE.

Deterministic intent parsing decides if it's a lead

Every connector event goes through a lead-ingestion service that extracts a contact's email, phone, name, company, and location, classifies the message's intent and category, and computes a confidence score. A message only becomes a Lead once confidence clears a per-connector threshold and the intent isn't support or an unsubscribe request. This first pass is rule-based, not a model call, so it's fast, deterministic, and cheap to run on every inbound message; an LLM-driven agent path exists alongside it for cases the rules don't confidently resolve.

Parsed messages table showing IMAP and WhatsApp rows with confidence scores and decisions
Click to enlarge · the Messages tab for the Inbound Leads Agent

An agent tool appends the lead to Google Sheets

Once a lead is created, an agent with a google_sheets tool assigned checks that a spreadsheet and Google OAuth connection are configured for the org, then calls the Sheets API directly to append the row, live, not logged for later. Duplicate appends are prevented, and a failed call is recorded as a capability gap rather than silently dropped, so a salesperson can tell the difference between "no lead yet" and "the integration broke."

Google Sheets workspace showing a connected spreadsheet with Share, Chat, and Edit actions
Click to enlarge · the Google Sheets workspace