# Buyer intent and lead scoring

Lead scores built from page views and form fills miss what people actually
say. "Do you ship to Norway?" and "can I pay by invoice for 40 seats?" are
different leads. SigWise reads the messages and actions of each user or
account and tells you where they are in a purchase, as one of the stages you
name.

## Define the stages

A `choice` signal picks one option and gives a probability for each:

```json
PUT /v1/signals/buyer_intent
{
  "type": "choice",
  "instructions": "Where is this user in a purchase?",
  "criteria": {
    "browsing": "looking around, no specific item or need",
    "comparing": "asks about specific items, alternatives or competitors",
    "ready_to_buy": "asks about payment, delivery, contracts or availability"
  }
}
```

Every new account starts with this signal. For B2B, name the stages your sales
team uses, and add a `noul` for the question you most want answered:

```json
PUT /v1/signals/enterprise_fit
{
  "type": "noul",
  "instructions": "Is this lead a fit for the enterprise plan?",
  "criteria": { "true": "many seats, SSO, security review, procurement, invoices", "false": "individual or small team" }
}
```

## Send the conversation

Chat messages, support tickets, product events and CRM notes all count:

```json
POST /v1/objects/lead-981/events
{
  "object_type": "lead",
  "events": [
    { "type": "event", "name": "pricing.viewed" },
    { "type": "message", "content": "We're about 40 people, do you support SAML and can we pay by invoice?" }
  ]
}
```

## Route the hot leads

```json
{
  "key": "buyer_intent",
  "type": "choice",
  "choice": "ready_to_buy",
  "probabilities": { "browsing": 0.05, "comparing": 0.15, "ready_to_buy": 0.8 },
  "confidence": 0.8
}
```

- **Alert sales.** A [rule](https://sigwise.ai/docs/guides/rules.md) fires once when a lead becomes
  ready:
  `"when": "buyer_intent = ready_to_buy and enterprise_fit >= 70"`, to Slack
  or email.
- **Sync to your CRM.** A [webhook](https://sigwise.ai/docs/guides/webhooks.md) on
  `analysis.completed` carries every answer; update the lead's stage from it.
- **Build a list.** `GET /v1/objects?q=buyer_intent = ready_to_buy` returns
  every lead at that stage.

## Next steps

- [Quickstart](https://sigwise.ai/docs/guide/quickstart.md)
- [Reading results](https://sigwise.ai/docs/guides/reading-results.md)
