BuyerSignal object
A BuyerSignal is a per-recipient engagement roll-up for one sent email — a compact "did this specific person open / click / reply, and when?" record. Returned by GET /api/v1alpha1/buyer-signals/sent-emails/{sentEmailId}/signals.
One row per recipient, one count per tracked event type (opens / replies / clicks / visits).
The BuyerSignal schema
{
"recipientEmail": "guest@example.com",
"contactId": "cont_...",
"opens": 5,
"clicks": 1,
"replies": 1,
"lastOpenAt": "2026-08-12T09:22:03Z",
"lastClickAt": "2026-08-12T09:22:41Z",
"lastReplyAt": "2026-08-12T10:14:07Z"
}Fields
recipientEmail string
Recipient's email address as it appeared on the sent email. Case-preserved from the original send.
contactId string
(optional) cont_... id when the recipient email matches a Cirrus contact. null when the address isn't in the contact model (e.g., a first-touch outbound to a lead not yet imported).
opens, clicks, replies number
Raw event counts for this recipient on this specific sent email. opens = 3 means the pixel fired three times — could be the recipient opening the message multiple times, or their mail client re-rendering it.
There is no sends field; this row exists because the recipient was sent the email.
lastOpenAt, lastClickAt, lastReplyAt string
(optional) ISO 8601 UTC. Timestamp of the most recent event of each type for this recipient. null when the corresponding count is 0.
Signal variants
The four tracked event types and their fields on this object:
| Signal | Field |
|---|---|
| Opens | opens / lastOpenAt |
| Replies | replies / lastReplyAt |
| Clicks | clicks / lastClickAt |
| Visits | not yet exposed via API |