How to Implement Signal-led Prioritisation in Salesforce and HubSpot

The strategic argument for signal-led GTM is covered in the pillar piece on building a signal-led GTM motion without replacing your sales stack. This is the tactical companion: what you actually create inside Salesforce or HubSpot so the rep's queue is sorted by buying-window event instead of by static account list.

The level of detail below is platform-specific but stops short of menu-click documentation - both Salesforce and HubSpot rearrange their UIs often enough that step-by-step screenshots age badly. What matters is the data model, the views, the routing logic, and the rep's daily flow once it's live. Field-creation specifics are easy to look up in vendor docs; what's harder to find is the operating shape the implementation has to land in.

The four data objects you need to model

Signal-led prioritisation needs four things modelled inside the CRM. Most teams already have two of them and just need to add the others.

Object 1
Account / Company
The base record. Already exists. The signal layer attaches to this.
Object 2
Signal event
The buying event itself - trial started, renewal opening, vendor churned. Time-bound. Has a source.
Object 3
Opportunity Score
Three sub-scores: ICP Fit, Purchase Intent, Win Likelihood. Composite tells the rep how to sort.
Object 4
Window-close date
When the buying window closes. Drives the rep's calendar sort.
Four data objects. Two already exist in most CRMs. Two get added.

Most teams already have the Account/Company object and an Opportunity/Deal object. The two new objects are the Signal event (what changed, when, and where the signal came from) and the Opportunity Score (the composite that sorts the rep's queue). Window-close dates can either be modelled as a property on the signal event or as a derived field on the account, depending on platform - both work.

The signal layer (typically MarketSizer or one of the platforms in the purchase intent platform directory) writes into these objects via the CRM connector. The rep's job is to consume what's written, not to maintain it.

Setting up signal-led prioritisation in Salesforce

Salesforce gives you the most flexibility but also the most ways to overcomplicate the setup. Stay close to native objects - Account, Opportunity, Task, and the platform's existing queue logic - rather than building a custom object hierarchy. The setup below is the minimum that gets to a working rep workflow.

Salesforce: custom fields on Account and Opportunity

Six custom fields, each with a clear job:

  • Opportunity Score (Number, 0-100) on the Account. The composite that sorts the queue.
  • ICP Fit Score (Number) on the Account. The first sub-score. Fit assessment against your best-fit customer profile.
  • Purchase Intent Score (Number) on the Account. The temporal layer - observable buying signals.
  • Win Likelihood Score (Number) on the Account. The competitive layer - historical win rate against the incumbent vendor at this account.
  • Active Signal Type (Picklist - Trial Started / Renewal Window / Vendor Churned / Tech Stack Change / Champion Move / Other) on the Account. The named event the rep references in outreach.
  • Window Close Date (Date) on the Account. When the buying window closes - the field reps sort by.

Two optional fields worth adding once the core six are in place:

  • Signal Source (Text) - which platform produced the signal, so reps and ops can audit the layer.
  • Signal First Detected (Date/Time) - when the event was first picked up, so you can track time-to-first-touch.

Put all eight in a dedicated Account page layout section called something obvious like "Signal Intelligence" so reps know where to look. Don't bury them in a custom related list - they need to be visible in the standard view.

Salesforce: list views and queues

The rep's primary working surface is a list view called something like My Active Buying Windows:

  • Filter: Active Signal Type is not blank AND Owner = current user.
  • Sort: Window Close Date ascending (soonest first).
  • Display columns: Account Name, Active Signal Type, Window Close Date, Opportunity Score, Purchase Intent Score, Last Activity.

A second list view called Unassigned Active Windows with the same filter minus the Owner clause becomes the team queue - any rep without active accounts works from this list, and the team's SDR manager assigns based on coverage rather than turn-by-turn round-robin.

For teams running ABM or named-account models, a third view called Named Accounts in Window filters to accounts on the strategic list AND with an active signal, so AEs see which of their assigned accounts just opened a buying window.

Salesforce: routing and alerts

Routing in Salesforce can be handled inside flows or via the assignment rules used elsewhere - the choice depends on team size and complexity.

Minimum routing logic:

  • When Active Signal Type changes from blank to a value AND the account has an existing Owner, post a Chatter notification to that Owner.
  • When Active Signal Type changes AND there is no Owner, run the same assignment logic the team uses for marketing-source leads.
  • When Window Close Date is within 14 days, escalate to the team channel for visibility.

Alert routing should go where the rep already works - Chatter, Slack via the connector, or a Salesforce mobile notification - not into yet another tool. The signal layer is only useful if it reaches the rep in time.

Setting up signal-led prioritisation in HubSpot

HubSpot's strength here is the workflow engine - the visual workflow builder makes signal-based routing simpler to wire up than equivalent Salesforce flows. The data model is otherwise close enough that the move-by-move logic carries across with small naming differences.

HubSpot: custom properties on Company and Deal

The equivalent six properties on the Company object:

  • Opportunity Score (Number, 0-100) - the composite.
  • ICP Fit Score (Number) - your ICP scoring output.
  • Purchase Intent Score (Number) - observable buying signal strength.
  • Win Likelihood Score (Number) - competitive odds.
  • Active Signal Type (Dropdown) - same set of options as the Salesforce picklist.
  • Window Close Date (Date picker) - when the window closes.

Add the same two optional properties for source attribution and detection time. Group all eight into a Company property group called "Signal Intelligence" so they sit together in the record view.

HubSpot: saved views and workflows

HubSpot's equivalent of the Salesforce list view is a saved Company view. Three to create:

  • My Active Buying Windows: filter on Active Signal Type is known AND Company Owner = current user, sort by Window Close Date ascending.
  • Unassigned Active Windows: same filter without the owner clause.
  • Named Accounts in Window: layer in a "Target Account" boolean property if you run a named-account programme.

Save each as a default view for the relevant team role so SDRs and AEs land on them when they log in.

HubSpot: routing and alerts

HubSpot workflows handle the routing natively. Three workflows are enough to cover the operational logic:

  • "New active signal - assigned owner": triggered when Active Signal Type changes from blank to any value AND Company Owner is not blank. Action: send the owner a HubSpot task linked to the company, plus a Slack notification via the connector.
  • "New active signal - unassigned": triggered when Active Signal Type changes AND Company Owner is blank. Action: route via the existing lead-assignment workflow.
  • "Window closing soon": triggered when Window Close Date is within 14 days AND the deal isn't already in late stage. Action: post to the team Slack channel, escalate to the owner.

Keep workflows simple. Two of the most common failure modes for HubSpot signal-led implementations are workflow sprawl (twenty automations all triggering off the same property change) and silent automation conflicts (one workflow updates a property that triggers another). Three workflows is enough.

The daily rep workflow once it's wired in

The point of the implementation is what the rep does every morning once the layer is live. The flow looks roughly like this:

  1. Open the CRM and land on the My Active Buying Windows view. The list is sorted by window-close date, so the accounts with the tightest deadlines are at the top.
  2. Pick the top three accounts. For each one, check the Active Signal Type and the Window Close Date. The rep should be able to articulate, in one sentence per account, what changed and when.
  3. Open the first account. The Signal Intelligence section on the record shows the named event, the source, the sub-scores. The rep uses this as the opening reference in outreach.
  4. Send the first touch. The opening line of the email or call references the named event - "I saw your team started evaluating Vendor X six days ago" - not the generic value prop.
  5. Log the touch and move on. A successful touch updates Last Activity, which feeds into the team's coverage view.

The whole flow per account takes 5-10 minutes once the rep has done it ten times. The lift comes from two things: the rep is working accounts that are actually buying, and the opening line references something the buyer recognises. Both compound.

Common implementation traps

The traps that recur across teams that get the data model right but the operational logic wrong:

  • Creating fields no one looks at. Custom fields buried five tabs deep get ignored. If the signal data isn't in the rep's primary view within a week of going live, the project quietly stalls. Put the fields on the default record layout and make the list view the rep's home page.
  • Letting the signal layer write without supervision. The signal source needs an audit trail - which platform wrote the value, when, and based on what. Reps quickly stop trusting fields they can't trace.
  • Skipping the unassigned queue. Teams that route every signal to the existing owner miss the accounts that don't have one. The Unassigned view is what catches new-business accounts before they become a missed-opportunity pipeline review note.
  • Modelling signals as a custom object instead of properties on the account. Custom objects look cleaner in a data model but create a workflow tax - every report, view, and automation has to handle the join. Start with properties on the Account/Company and only upgrade to a custom object if you genuinely need many-to-many signal-to-account relationships.
  • Triggering on every property change. If three workflows all trigger when Active Signal Type changes, you get three notifications per event. Pick one trigger workflow and let downstream automations fan out from there.
  • Forgetting the integration handshake. The signal-source platform needs the right CRM permissions to write back. Check the integrations layer before reporting to the wider team that the implementation is live - the most common "it doesn't work" report is actually "the connector isn't authenticated."

Frequently Asked Questions

Do I need a custom object for signal events?
Usually not for the first implementation. Start with custom properties on the Account/Company object - the operational logic works the same way and the workflow complexity is lower. Upgrade to a dedicated custom object if you need to track signal history at the event level rather than the most-recent-signal level.

How do I write the Opportunity Score back to the CRM?
Most signal-intelligence platforms write the composite score via their native CRM connector - the score lands as a number in the field you created, refreshed on the platform's standard cadence. If your signal platform doesn't have a native connector, write via the CRM API and run the sync as a scheduled job. Either way, the field that holds the score should be flagged read-only for reps to prevent manual overrides.

Should reps be able to edit the signal fields?
No. The signal layer is the source of truth for those fields; reps editing them creates an audit trail that nobody trusts. The fields the rep can edit are downstream of the signal - outreach status, next action, notes - not the underlying signal data.

How does this affect existing lead-routing rules?
The signal layer should sit above existing routing, not replace it. When a new active signal fires on an account that already has an owner, the existing routing applies. When a new active signal fires on an account with no owner, the existing lead-assignment logic kicks in. The signal layer changes which accounts qualify, not how they're assigned.

How long does this take to set up?
For a team that's already on the target CRM, the data-model and view setup is typically half a day to a day of admin work. The longer piece is rep enablement - making sure SDRs and AEs land on the new view as their default, understand the Signal Type vocabulary, and know how to reference the named event in outreach. Plan a two-week rollout, not a single launch day.

Can I run this without the signal platform's native connector?
Yes, via CSV import on a daily or weekly cadence. The trade-off is freshness - a CSV update once a day means the rep is working with up-to-24-hour-old data, which is fine for renewal windows but starts to miss the edge of a 14-day competitor trial. Live API integration is the operating standard once volume is past pilot.

What if my team uses a CRM other than Salesforce or HubSpot?
The data model carries across. Pipedrive, Close, and Microsoft Dynamics all support custom fields, list views, and workflow triggers - the names of those primitives are different but the operational logic is the same. Six fields, three views, three automations.

Your market is mapped.
Your opportunities are waiting.

15 minutes. No commitment. We'll show you the accounts in your market that are actively evaluating right now.

No credit card · Tailored to your ICP · Live data, not a slide deck