Skip to content

CRM

Your Contacts, Organizations, leads and deals on one record, with qualify, assign, advance and win as calls every agent and app shares.

System
CRM
Nouns
4
Verbs
13
Events
10
Lead.qualify
You, to your agent

Rosa booked Tuesday’s call: qualify Northgate Rentals for Leaseline and open the Deal.

curl -X POST "https://api.sb/leaseline.app/leads/qualify?mode=try" \
  -H "Authorization: Bearer $SB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lead":"lead_Nr5gT1aV7k","offer":"offer_Ls1mP4qR8v"}'
npx startup-builder do Lead.qualify --try --data '{"lead":"lead_Nr5gT1aV7k","offer":"offer_Ls1mP4qR8v"}'
{
  "name": "do",
  "arguments": {
    "mode": "try",
    "code": "return await $.Lead.qualify({ lead: 'lead_Nr5gT1aV7k', offer: 'offer_Ls1mP4qR8v' })"
  }
}
import { $ } from 'startup-builder'

const result = await $.try.Lead.qualify({ lead: 'lead_Nr5gT1aV7k', offer: 'offer_Ls1mP4qR8v' })
Response
{
  "api": "https://api.sb/leaseline.app",
  "deal": {
    "$type": "Deal",
    "status": "Open",
    "value": {
      "amount": 1788,
      "currency": "USD"
    },
    "nextStep": "Discovery call, Tuesday, November 3, 2:00 p.m. Central"
  },
  "lead": {
    "$id": "https://api.sb/leaseline.app/leads/lead_Nr5gT1aV7k",
    "$type": "Lead",
    "status": "working",
    "fit": "strong",
    "interest": "Can you send times for Tuesday?"
  },
  "action": {
    "operation": "Lead.qualify",
    "mode": "try",
    "status": "done"
  }
}
Try mode reads, stores nothing and spends nothingAPI referenceIts Nouns

Nouns

NounWhat it is
ContactA Contact is a person or Agent a startup knows by at least one address, where Consent to message them is recorded.
OrganizationAn Organization is an outside party as one startup knows it, keyed by its domain, such as an employer or a vendor.
LeadA lead is a Contact who raised a hand, by joining a Waitlist, filling a Form, or replying, without accepting an offer.
DealA deal is a startup’s pursuit of one buyer’s acceptance of one or more offers, ending won or lost.

Properties

The hub defines each Noun’s core Properties; CRM adds the ones a sale needs.

Contact

PropertyTypeWhat it holdsDefined by
emailemailThe primary email address.The hub
phonestringThe primary phone number.The hub
namestringThe name the Contact goes by.The hub
titlestringTheir job title as they state it, refreshed by Contact.enrich.CRM
organizationOrganizationWhere they work now; a job change moves it and keeps the old one in history.CRM
acquisitionAcquisitionWhere they came from: the Play, the site and the first touch.CRM
lastTouchAtdatetimeThe last Message either way, so no seat writes to someone touched this week.CRM

Organization

PropertyTypeWhat it holdsDefined by
namestringThe name it trades under.The hub
hostnamestringThe web domain that keys it.The hub
headcountintegerPeople on staff, as read by Organization.enrich; ranges stay ranges.CRM
fit'strong' | 'partial' | 'none'Fit to your ICP, graded from the evidence, never typed in.CRM
evidencestring[]The quotes and pages that show the fit, each with its URL.CRM

Lead

PropertyTypeWhat it holdsDefined by
interesttextWhat the lead asked for.The hub
statusstringOne of new, working, nurture, converted, or disqualified.The hub
ownerworkerThe Worker who answers it.The hub
fitstringOne of strong, partial, or none: fit to the ICP as the lead fit Policy grades it, never set by hand.The hub
offerOfferThe offer the hand was raised for.CRM
respondBydatetimeWhen the first answer is owed: 5 minutes after an inbound form in working hours.CRM
reasonstringWhy it was disqualified or nurtured, in the buyer’s words where there are some.CRM

Deal

PropertyTypeWhat it holdsDefined by
statusstringOne of Open, Qualified, Proposed, Won, or Lost.The hub
valuemoneyWhat the deal is worth if won.The hub
ownerworkerThe Worker who runs it.The hub
closesOndateThe date the buyer expects to decide.The hub
statusSincedatetimeWhen it entered its current status, computed from its Events.The hub
nextSteptextThe next dated step agreed with the buyer.The hub
offerOfferThe offer being bought; a second offer is a second deal.CRM
meetingsMeeting[]Every call held, each with its brief and notes.CRM
lostReasonstringThe reason the buyer gave, set by Deal.lose and read by the weekly review.CRM

Lifecycle

Every move names the Verb that makes it, or the Event it waits on.

Lead

StateWhat it meansMoves to
new (first)It raised a hand, and no Worker works it yet.working by Lead.assign; nurture by Lead.nurture; disqualified by Lead.disqualify; converted on Offer.accepted
workingIts owner is in touch and owes the next step.converted by Lead.qualify; converted by Lead.convert; nurture by Lead.nurture; disqualified by Lead.disqualify
nurtureNot ready to buy: it is off its owner’s queue and hears from a Sequence until it raises a hand again.working by Lead.assign; disqualified by Lead.disqualify
convertedIt fits an offer: a deal is open for it, or it bought on its own; the customer record carries on.None: it ends here.
disqualifiedIt fits no offer, for the reason recorded; its Contact record stays.None: it ends here.

Deal

StateWhat it meansMoves to
OpenA qualified lead became a deal; its owner owes the first call.Qualified by Deal.advance; Lost by Deal.lose
QualifiedThe buyer confirmed the problem, the budget and who decides.Proposed by Deal.propose; Lost by Deal.lose
ProposedA Quote is with the buyer, waiting on their yes.Won by Deal.win; Won on Offer.accepted; Lost by Deal.lose
WonThe Order is placed and the buyer is your customer.None: it ends here.
LostClosed with the buyer’s reason; the Contact stays.None: it ends here.

Verbs

VerbWhat it doesApproval
Lead.qualifyOpens a deal for a lead that fits one of your offers, with its value and the reason it fits.Runs on its own On each site Facebook, LinkedIn, Instagram
Lead.assignGives a lead one owner seat, by round robin, territory or ICP fit, as your routing rule says.Runs on its own
Deal.advanceMoves a deal to its next stage once every field that stage requires is filled.Runs on its own
Deal.winCloses a deal as won, places its Order and makes the buyer your customer.Runs on its own
Deal.loseCloses a deal as lost, with the reason the buyer gave.Runs on its own
Lead.nurtureTakes a lead that is not ready to buy off its owner’s queue and onto a Sequence, until it raises a hand again.Goes out on its own
Lead.convertEnds a qualified lead’s run as a lead: it opens a deal, or sends the buyer to self-serve checkout.Runs on its own
Lead.disqualifyCloses a lead that fits none of your offers, with the reason; its Contact and Consent stay.Runs on its own
Deal.assignGives a deal one owner, who carries its next step until it is won or lost.Runs on its own
Deal.proposeSends the buyer a Quote they accept to place an Order.Runs on its own
Contact.enrichFills a Contact’s missing fields from outside sources, each value marked with where it came from.Runs on its own
Contact.mergeJoins a duplicate Contact into the one you keep, with every link, Message and Event.Runs on its own
Organization.mergeJoins a duplicate Organization into the one you keep, with its Contacts, deals and Events.Runs on its own

Events

EventEmitted by
Lead.qualifiedLead.qualify
Lead.assignedLead.assign
Lead.convertedLead.convert
Lead.disqualifiedLead.disqualify
Deal.advancedDeal.advance
Deal.proposedDeal.propose
Deal.wonDeal.win
Deal.lostDeal.lose
Contact.enrichedContact.enrich
Contact.mergedContact.merge

A Trigger can start a Workflow on any of them, and a Watch delivers each to your endpoint, signed (Events and webhooks).

Who operates it

PartCRM
AccountableSales lead
Also calls its VerbsProspector, Sales Engineer, Success Manager
SeatAn agent holds each seat until you seat a person in it.
Asks you firstNone of its Verbs: each runs within its seat’s Limits

Integrations

The CRM you already use

Import and export

DirectionWhatHow
ImportContacts, Organizations and open deals from the CRM you already useIntegration.sync through the CRM you already use; the declared leader wins each field
ImportA spreadsheet of peopleContact.create for each row; duplicates join through Contact.merge
ExportAny Noun, once or on a scheduleCollection.export to a file or your warehouse
ExportOne question, answeredCollection.query by SQL or a relationship path

Example

A reply becomes a deal.

  1. Maya Chen at Cedar Hollow Rentals answers the second email: “We still track rent in a spreadsheet.” Prospect.engage makes her a lead, with the cold email Play as her source.
  2. Lead.assign gives the lead to the Sales lead seat; its first answer is owed within the hour.
  3. Lead.qualify checks her against the Leaseline offer: 64 units, an owner-operator, a spreadsheet today. It opens a deal worth $1,788 a year.
  4. She books through the link in the answer. Meeting.book holds Thursday at 10:00 Central, and the brief lands on the deal.
  5. After the call, Deal.advance moves it to Qualified, and Deal.propose sends the Quote.

Contents