Skip to main content
Contact Scoring lets you build models that grade individual contacts from 0 to 100 based on the activity and profile signals that show buying intent. Use it to find marketing-qualified and product-qualified leads, route hot contacts to sales the moment they qualify, and keep cold contacts in nurture. Each model writes its score to fields on the contact, so you can use it in dynamic lists, journey branches, and triggers like any other contact field. Contact Scoring works alongside Account Scoring. Both model types live on the same Scoring page.
Permissions: Workspace admins can create signals and create, edit, activate, and pause scoring models. Users with view-only access can open models and signals but cannot change them.
Contact Scoring is in early preview. Contact your Inflection team to turn it on for your workspace.

How Contact Scoring Works

A contact scoring model has three parts:
  1. Signals: reusable conditions that describe a behavior or trait, such as visiting the pricing page or holding a director-level title.
  2. Weights: each signal sits in the positive or negative bucket of a model with a weight that sets how much it counts.
  3. Enrollment: a model scores only the contacts you enroll in it, usually with a journey step.

How the Score Is Calculated

The score is the share of the model’s total signal weight that a contact matches. Matched positive signals add their weight, matched negative signals subtract theirs, and the result is scaled to 0 to 100. Scores never drop below 0 or go above 100. A contact who matches no signals scores 0. For example, a model has three positive signals: Submitted a demo request (weight 8), Visited pricing page (weight 5), and Invited a teammate (weight 3). The total weight is 16.
  • A contact who submitted a demo request and visited the pricing page scores (8 + 5) ÷ 16 × 100 = 81.
  • A contact who only submitted a demo request scores 8 ÷ 16 × 100 = 50.
  • A contact who matches nothing scores 0.

Create Signals

Signals are reusable conditions. Create a signal once, then add it to as many contact scoring models as you need.
  1. Click Scoring in the left navigation, then under Signals, click Contact.
  2. Click New signal.
  3. Enter a Signal name, for example Viewed pricing page.
  4. Under Signal criteria, click Add event and choose Marketing event, Product event, or Contact event. Then pick the event and set its conditions. Each signal checks one event.
  5. Click Create signal.
Contact signals list with the New signal button in the top right The New signal drawer opens on the right: New signal drawer with name, description, and one condition A signal can check any of these sources:
Signals cannot be edited after you create them. To change a signal, create a new one, swap it into your models, and delete the old one.

Create a Contact Scoring Model

  1. Click Scoring in the left navigation, then click New scoring model in the top right.
  2. Under Model type, select Contact.
  3. Under Model name, enter a name, for example MQL Score. The name becomes the prefix of the fields the model writes to.
  4. Click Create.
New scoring model drawer with Contact scoring selected and the model name entered A new model starts in Draft status. Draft models do not score any contacts.

Get Suggested Signals

When you create a contact scoring model, Inflection opens a setup step that can suggest signals for you. Inflection uses AI to read your business context and the signals you already have, then proposes positive and negative signals with weights.
  1. Under What should this model score for?, describe your goal in a sentence or two, or click a starter: MQL identification, Product-qualified leads, ICP fit, or Churn risk.
  2. Click Suggest signals.
  3. Review the suggestions. Each one shows its source, its suggested weight, and why it was suggested. A signal marked New does not exist yet and is created when you apply it. Things to consider lists tips about the suggestions.
  4. Clear the checkbox on any signal you don’t want.
  5. Click Apply. Inflection creates the selected signals, adds them to the model with the suggested weights, and opens the model page.
Model setup step asking what the model should score for, with starter options and the Suggest signals button To build the model yourself, click Skip — I’ll pick signals myself.
Suggestions are a starting point. Review every signal and weight on the model page before you activate the model.

Add Signals to the Model

The model page shows Available signals on the left and the signal buckets on the right.
  1. Drag a signal from Available signals into Positive signals to raise the score when a contact matches it, or into Negative signals to lower it.
  2. Click a signal in a bucket to adjust its weight. A higher weight means the signal counts for more.
  3. To change several weights at once, click Customize weights above a bucket. The Customize Signal Weights window shows each signal’s share of the total weight. Adjust the weights, then click Confirm.
  4. Click Save.
Model page with Available signals on the left and Positive and Negative signal buckets on the right Customize Signal Weights window showing each signal's weight and share of the total
To create a signal without leaving the model, click New signal in the Available signals panel. The new signal appears in the panel, ready to drag into a bucket.

Set Score Categories

Categories group scores into bands, such as Cold, Warming, and Marketing Qualified. The model writes the contact’s current band to <Model>.CurrentCategory and the highest band they have reached to <Model>.PeakCategory.
  1. On the model page, turn on Categorization. It starts with three bands: Cold (score 0 and up), Warming (50 and up), and Marketing Qualified (80 and up).
  2. Rename a band or change the score where it starts. A contact is placed in the highest band whose starting score they reach.
  3. Click Add band to add a band, or click the delete icon on a band to remove it.
  4. Click Save.
Every band needs a unique name, the lowest band must start at 0, and each band must start at a higher score than the one before it. To stop writing categories, turn off Categorization and click Save.

Activate the Model

When the model is ready, click Save, then click Activate. The model status changes to Active. Activate is available once the model has at least one signal, your changes are saved, and its contact fields are ready. To change an active model, edit its signals, weights, categories, or AI reason, then click Save. To stop scoring for a while, click Pause. Click Activate to start again.

Enroll Contacts in Scoring

A contact scoring model scores only the contacts whose <Model>.ScoringEligible field is true. Contacts are never enrolled automatically, which keeps scoring focused on the contacts you care about. Enroll contacts from a journey with the Update value flow step:
  1. Open a journey and add an Update value step to the canvas.
  2. Choose the model’s <Model>.ScoringEligible field and set it to true.
  3. Publish the journey.
You can also set <Model>.ScoringEligible through an inbound webhook or a data sync. Once a contact is enrolled, their score updates in real time as their activity arrives. To stop scoring a contact, set the field to false. The contact keeps their last score, and it stops updating.

How Scores Appear on the Contact

Each contact scoring model writes these fields to the contact. The prefix is the model name with spaces removed, so a model named MQL Score writes MQLScore.CurrentScore. The model page lists these fields under Writes to contact.

Give Sales the AI Reason

A score tells sales that a contact is ready. The AI reason tells them why. When a contact’s score crosses the threshold you set, Inflection generates the reason from the contact’s signals: which positive signals they matched and which negative signals pulled the score down. It writes a short, plain-language explanation to the model’s <Model>.Reason field, so sales can open a conversation with real context instead of asking what the lead did. For example:
Jane crossed 80 after submitting a demo request and visiting the pricing page three times. She also logged into the product. No negative signals matched.

How the AI Reason Is Written

  • Written when the contact qualifies. The reason is generated once, when the contact’s score first crosses the threshold (80 by default). It is not rewritten on every score change.
  • Generated from the signals. The reason describes the signals that pushed the contact over the threshold, such as a demo request, repeated pricing-page visits, or product activity, and any negative signals that counted against them.
  • Kept on the contact. Once written, the reason stays on the contact. It is not cleared if the score later drops, so sales sees the explanation that was true at handoff.

Turn On the AI Reason

  1. Open a contact scoring model.
  2. Turn on AI reason. It is off by default.
  3. Next to Generate when score ≥, set the threshold. It is 80 by default. Match it to the score where your qualified category starts.
  4. Click Save.

Share the AI Reason With Sales

The AI reason is a contact field, so you can put it wherever sales works:
  • On the contact record. The reason appears with the contact’s other fields in Inflection.
  • In an alert. Add the reason to a Send internal email alert step that fires when a contact reaches your qualified category, so the owner gets the context with the notification.

Use Scores in Audiences and Journeys

Score fields are regular contact fields, so they work everywhere other contact fields do.

Filter a Dynamic List by Score

In the audience builder, add a person property filter on the model’s score field, for example MQLScore.CurrentScore greater than 70. As scores change, contacts move in and out of the list automatically.

Branch and Trigger Journeys by Score

On the Journey Canvas, use Branch by value on the category field to route contacts, for example sending Marketing Qualified contacts to sales and everyone else to nurture. Use Branch by filter to split on a score threshold.
Learn more about branching: Journey Flow Steps Reference

Manage Models and Signals

Archive a Model

Archiving removes a model from the Scoring list and stops it from updating scores. Its fields stay on your contacts, so dynamic lists, journeys, and integrations that use them keep working.
  1. Pause the model if it is active. Active models cannot be archived.
  2. On the Scoring page, click the actions menu on the model’s row, then click Archive.
  3. Click Archive to confirm.
To find archived models, turn on Show archived on the Scoring page. To restore one, click the actions menu on its row, then click Unarchive.

Delete a Signal

On the Contact Signals page, click the actions menu on a signal’s row, then click Delete. You can only delete a signal that no model uses. Remove it from every model first. Scoring models list with model type, status, and the actions menu on each row

Common Use Cases

  • Identify marketing-qualified leads. Score demo requests, pricing page visits, and email engagement. Route contacts to sales when their category reaches Marketing Qualified.
  • Hand off with context. When a contact reaches Marketing Qualified, alert the owner and include the AI reason so the first call starts from what the contact actually did.
  • Find product-qualified leads. Score product activity such as completing onboarding, inviting teammates, and using core features to find trial users ready for a sales conversation.
  • Filter out poor-fit contacts. Add negative signals such as a personal email domain or an unsubscribe so those contacts score lower.
  • Prioritize within a key account. Combine a contact score with the account’s Account Scoring field to find the most engaged people at your best-fit accounts.

Frequently Asked Questions

Only contacts whose <Model>.ScoringEligible field is true. Set it with the Update value journey step, an inbound webhook, or a data sync. Contacts who are not enrolled have no score for that model.
No. The reason is generated once from the contact’s signals, when the contact first crosses the threshold. It stays on the contact even if the score drops later.
Yes. Change its signals, weights, categories, or AI reason, then click Save.
No. Each signal checks one event. To score a combination of behaviors, create a signal for each one and add them all to the model.
No. Create a new signal with the updated criteria, replace the old one in your models, then delete the old signal.
Yes. When you create a contact scoring model, describe your goal or pick a starter, and Inflection suggests signals and weights for you to review. See Get Suggested Signals above.
Activate the model, then enroll a test contact and check their <Model>.CurrentScore field.

Additional Resources