Skip to main content
Timing is one of the biggest factors in whether a cold outreach lands. Buying signals help you reach out at the right moment — when something has changed for a prospect that makes your message more relevant. Topo automatically detects these signals from multiple sources, filters them against your ICP, and surfaces them where you make decisions: in the contact list, your task queue, and the lead drawer.

What buying signals are

A buying signal is an observable event that suggests a contact or their company may be more receptive to outreach right now. Examples include a contact starting a new job, their company just raising a funding round, or a competitor’s product appearing in their tech stack. Signals are scored based on how recent they are, how relevant they are to your ICP, and the inherent importance of the signal type. This scoring ensures the most actionable signals always appear first.

Signal types

Topo detects the following categories of signals out of the box:
SignalWhat it means
New roleThe contact started a new position within the last 90 days. New hires often evaluate and switch tools shortly after joining.
PromotionThe contact was promoted within the same company. Increased responsibility often comes with increased budget authority.
Left companyThe contact no longer works at the company you originally targeted. Their sequence will be flagged so you don’t continue outreach to an outdated role.

Where signals appear

Buying signals surface in three places across Topo, all showing the same data:

Contact list

Up to two signal badges appear next to each contact row, with a “+N” indicator when more signals exist. You can sort the contact list by signal score to prioritize your strongest leads.

Tasks view

A “Why now” panel at the top of each task’s detail pane shows the top three active signals for that contact, so you have context before making a call or writing a manual email.

Lead drawer

The full Signals section at the top of the lead drawer shows every active signal: a hero row for the top signal, a grouped timeline of all signals (Intent, Engagement, Fit), and details for each one. Click any signal row to see the raw source data.

Signal scoring

Signals are ranked using a deterministic formula that combines three factors:
score = signal_weight × recency_decay × relevance_score
  • Signal weight — each signal type has a default importance weight. Higher-weight signals (like a positive reply or a funding round) rank above lower-weight ones (like a single email open).
  • Recency decay — signals score highest immediately after detection and decrease toward zero as they approach their expiry date. A job change from yesterday ranks higher than the same job change from 60 days ago.
  • Relevance score — a 0–1 score that reflects how applicable this specific signal is to your organization’s ICP. A tech adoption signal for a tool outside your target stack scores low; one for a direct competitor scores high.
The top-scored signal is treated as the lead summary signal — the one shown in compact spaces like the contact list badge.
Signals that fall below your organization’s relevance threshold are stored but never shown in the UI. This keeps your signal feed focused on what actually matters to your ICP.

ICP filtering

Not every signal is relevant to every company. Topo filters signals against your organization’s ICP automatically so you only see what’s actionable for you. For example:
  • If your ICP targets companies that use HubSpot, a tech_added: HubSpot signal scores high. A tech_added: Figma signal — likely irrelevant to your product — scores low and may be hidden.
  • If your ICP is revenue-stage companies, a funding_round signal is highly relevant. If you sell to bootstrapped SMBs, it’s much less useful and scores accordingly.
ICP-based signal configuration is pre-filled automatically when your organization is set up. You can review and adjust it in Settings → Signals, where you can enable or disable specific signal types and adjust their weights for your context.

First-party signals

In addition to signals detected from third-party sources, you can push your own events to Topo using the Topo Signals API. This lets you connect product usage, website activity, and CRM events directly to your outreach context. Common first-party events to push:
  • A prospect visits your pricing page
  • A free-tier user logs in after 30 days of inactivity
  • A contact submits a demo request form
  • A product usage event crosses a key threshold (e.g., user creates their 10th project)

Sending first-party events

1

Generate an API key

Go to Settings → Signals → First-party API and generate an API key for your organization.
2

Push events to the API

Send a POST request to the ingestion endpoint with the event name, timestamp, and a subject resolver (email address, LinkedIn URL, or company domain) to identify who the event belongs to.
{
  "event_name": "pricing_page_visit",
  "occurred_at": "2025-06-15T14:32:00Z",
  "email": "jane.smith@acmecorp.com",
  "payload": {
    "page": "/pricing",
    "duration_seconds": 120
  }
}
3

View the signal in Topo

Once ingested, the event appears as a First-party event signal on the matched contact within seconds. It’s scored, ICP-qualified, and surfaces in the same places as any other signal.
Use the optional external_event_id field in your API calls to make ingestion idempotent. If your system sends the same event twice (e.g., due to a retry), Topo will deduplicate it automatically and never create a duplicate signal.

What Topo does when it receives a first-party event

  1. Topo resolves the subject to a contact or company in your workspace using the identifier you provided (email, LinkedIn URL, or company domain).
  2. A buying signal of type First-party event is created for that contact or company.
  3. The signal is evaluated against your ICP for relevance and scored.
  4. If the contact is in an active sequence and the signal score is high enough, Topo can automatically create a task to prompt a manual follow-up.
If the email address or company domain you send doesn’t match any existing contact or company in your Topo workspace, the event is rejected. Make sure the contact has been imported into Topo before pushing events for them.

Managing your signal configuration

You can customize which signal types are active for your organization and how they’re weighted in Settings → Signals:
SettingWhat it controls
Enable / disable signal typeTurns a signal type on or off entirely for your org. Disabled types are never detected, scored, or displayed.
Weight overrideAdjust the importance of a signal type relative to others. Increase the weight of signals you find especially actionable; decrease ones that create noise.
Relevance thresholdSignals below this score are stored but hidden from all UI surfaces. Lower the threshold to see more signals; raise it to reduce noise.
Changes to signal configuration take effect immediately — no re-processing required.