TL;DR: Each signal type has its own detail page with three panels: configuration (left), live capture feed (right), and outcome metrics (top). Some signal types have additional config — Keywords has per-rule filters, Webhook has payload mapping, Ad Viewed has channel selection.
What every signal detail page has
The shared layout:
- Header strip — signal name, status badge, owner,
Ask Copilot · Tune your signalsbutton in the top-right - Metrics row — Profiles found, Qualified rate, Replied count, Meetings booked, Signed up, Purchase, LTV — same as the Signals table, but scoped to this signal
- Config panel (left) — fields specific to this signal type (see below)
- Capture feed (right) — the most recent records this signal flagged, with timestamp, source, and a click-through to the lead detail
- Settings strip (bottom) — Autoqualify toggle, Credits used, Last run, Pause / Resume / Edit / Delete actions
Per-signal-type configuration
Each signal type has its own config schema. The most common patterns:
Keywords (and similar list-based signals)
A per-rule model: each "rule" is a self-contained query that captures records when its conditions match. You can have N rules under one signal.
For each rule:
- Channel — LinkedIn is shipped today; X / Substack / Podcasts / YouTube are reserved as channel slots
- Account scope — which LinkedIn account authenticates the search (your team's company page, or a connected sales nav account)
- Search terms — keyword or boolean expression
- Time window — how recent posts have to be
- Author filters — restrict to certain titles / functions / companies
- Sentiment filter — positive / negative / neutral / any (LLM-classified)
- Reaction threshold — minimum likes / comments
Each rule has its own profiles-found and qualified counts. Tune rules independently.
Replies, Demo Viewed (1st-party, single-source)
- Source — the connected tool (Smartlead, Apollo, Vidyard, etc.)
- Mailbox / account filter — which inboxes or accounts to listen to
- Watermark — captures from this timestamp forward (skips backfill)
Webhook (catch-all custom)
- Webhook URL — where to POST to
- Auth header / token — for verification
- Payload mapping — JSON-path → record field (e.g.
$.email→lead.work_email) - Event filter — only fire when
event_typematches a list
Ad Viewed / Ad Clicked
- Channel — Google, LinkedIn, Meta, others
- Campaign filter — restrict to specific campaigns
- Frequency floor — minimum ad touches per person before signal fires
Job Changes, Hiring Intent
- Target functions — engineering, RevOps, security, etc.
- Seniority floor — IC / Manager / Director / VP+
- Geography scope
The capture feed
The capture feed on the right of the detail page is a live-updating list. Each entry shows:
- Avatar + name — clicks through to lead detail
- Status badge — Signal received / Qualified / Enriched / Synced
- The triggering event — exactly what fired the signal ("Posted about SOC2 on 2026-05-21", "Replied to your sequence X")
- Source attribution — which sub-rule / account / source it came from
- Engagement at capture — the lead's engagement score at the moment the signal fired
Useful checks:
- Click 3 entries at random. If the names + companies + events all look like records you'd actually want to outreach, the signal is well-tuned. If half look off, the rule is too broad.
Editing the signal
The Edit button (bottom-right of the settings strip) opens the configuration drawer. Changes auto-save. Switching the signal status from Running → Paused stops capture but preserves config.
Two destructive actions sit behind confirmation:
- Reset captures — wipes the captures from this signal (the qualified records remain in
Leadsif they qualified; only the signal-side attribution clears) - Delete signal — removes the signal and all its captures. Records that qualified will retain their record state but lose attribution to this signal source