Skip to main content
TrailsparkDocs

Understanding Signals

Signal Pipeline

Signals flow through Trailspark in a defined pipeline:

  1. Source
  2. Staging
  3. Mapping Rules
  4. Processing
  5. Lead Profile
  6. Evaluation
  1. Source: Signals arrive through your webhook endpoints (universal, source-specific, batch or bulk), the JavaScript tracking script, and connected integrations. Trailspark detects the sending system from the payload; see Signal Sources.
  2. Staging: Each signal is checked and stored before anything else happens, and duplicates are dropped. Signals from people who aren't identified yet are held until an identify call links them to a lead.
  3. Mapping Rules: Your rules match each signal by source, event name and payload fields, and the highest-priority match wins. Signals that no rule matches wait on the Signal Queue tab until you create one.
  4. Processing: The matched signal creates or updates the lead (by email, CRM ID or product user ID) and links it to an account: by CRM account, product workspace, or email domain. Personal email domains are never used to find an account.
  5. Lead Profile: The signal appears on the lead's Signals tab under the matching rule's name, and the lead's signal count and last-active time update.
  6. Evaluation: New activity triggers a fresh Hot, Warm or Cold score for the lead and its account, with the reasoning behind it. Scores also refresh when your ICP or settings change, when account or CRM data changes, and on a routine check.

Signal Sources

Trailspark auto-detects the source from payload structure. Recognized sources:

SourceHow signals arrive
SegmentIdentify, track, and page events via webhook destination
MarketoMarketing automation events (detected by mktLeadId in payload)
HubSpotCRM events (detected by portalId or hs_object_id)
SalesforceCRM events (detected by sObject in payload)
StripeBilling events from a Stripe webhook (detected by type and data.object in payload)
HeapHeap Webhooks (beta), one webhook per labeled event; the webhook URL includes ?source=heap
Custom / GenericAny system sending HTTP POST to your webhook endpoint. Falls back to generic if no source is detected

You can also explicitly set the source via the source-specific webhook URL (/api/signal-staging/webhook/{source}/{apiKey}) or by including an X-Source header or source field in the payload.

Signal Types

When creating mapping rules, you assign a signal type to categorize the signal:

TypeUse for
Page ViewWebsite page visits
Form FillForm submissions
Product ActivityIn-product actions
Sales EventSales interactions
Email OpenEmail opens
Email ClickEmail link clicks

What You See for Each Signal

The Signal Explorer page lists your signals in two tabs:

TabColumns
ProcessedSignal Name, Source, Lead, Processed At, Rule
FailedEvent Type, Source, Status, Error, Failed At

Signal Name is the name of the mapping rule that matched, and Rule links to that rule. Cards above the tabs count pending, processed and failed signals.

Signal Mapping Page

Navigate to Signal Mapping from the main navigation. The page has two tabs:

  • Signal Rules -- View, create, edit, and delete mapping rules
  • Signal Queue -- View staged signals grouped by pattern, and create rules from them

Trailspark Signal Mapping Page

Signal Processing States

What you seeMeaning
Counted under Pending SignalsWaiting to be processed. A signal no rule matches stays pending, on the Signal Queue tab, in case you add a rule later
Processed tabMatched a rule and added to the lead
Failed tab, Failed badgeProcessing hit an error. It is retried automatically, up to 3 times
Failed tab, Skipped badgeA plan limit was reached, so the signal is paused; it's picked up again once capacity frees up

Plan Limits

Each plan includes a monthly ingested-signal allowance and a signal retention window (in days). As you approach the allowance, usage warnings display in the Signal Explorer.

Past the allowance, Trailspark keeps collecting your signals at no extra charge up to twice the allowance and holds them — the Usage page marks them Paused. Paused signals don't update your scores, and they're deleted when the billing period ends. Enabling usage overages in Settings > Billing on a paid plan, or upgrading, resumes them immediately. Beyond twice the allowance, webhook responses return 429 status codes and new signals are rejected until the next billing period.

Next Steps