Skip to content
Sales and customers

Qualify leads and book demos

Every new Lead gets a written answer in five minutes; the ones that fit your Offer get a demo on your calendar.

Every new Lead gets a written answer within five minutes. The ones that fit your Offer become a Deal and a Meeting on your calendar.

Needs Take a payment

What you get

  • 1written reply to each new Lead within five minutesMessage
  • 1fit score per Lead against your Offer’s ideal customerLead
  • 1Deal for each Lead that fitsDeal
  • 130-minute demo on your calendar, with the Lead’s answers attachedMeeting

Your agent does

Lead.qualify → Meeting.book
You, to your agent

Qualify leads and book demos.

Answer every new lead within five minutes.

Book a demo with anyone who fits.

# Look up the Lead: Lead.list
LEAD=$(curl "https://api.sb/leaseline.app/leads?where=status%20%3D%20new&limit=1" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" | jq -r '.leads[0]["$id"] | split("/") | last')

# Look up the Offer: Offer.list
OFFER=$(curl "https://api.sb/leaseline.app/offers?limit=1" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" | jq -r '.offers[0]["$id"] | split("/") | last')

# 1. Lead.qualify
curl -X POST https://api.sb/leaseline.app/leads/$LEAD/qualify \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"offer":"'"$OFFER"'"}'

# 2. Meeting.book
curl -X POST https://api.sb/leaseline.app/meetings/book \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact":"'"$LEAD"'","at":"2026-11-04T16:00:00Z"}'
import { $ } from 'startup-builder'

const [lead] = await $.Lead.list({ where: 'status = new', limit: 1 })
const [offer] = await $.Offer.list({ limit: 1 })
await $.Lead.qualify({ lead: lead.$id, offer: offer.$id })
await $.Meeting.book({ contact: lead.$id, at: '2026-11-04T16:00:00Z' })
LEAD=$(npx startup-builder do Lead.list --json '{"where":"status = new","limit":1}' | jq -r '.leads[0]["$id"] | split("/") | last')
OFFER=$(npx startup-builder do Offer.list --json '{"limit":1}' | jq -r '.offers[0]["$id"] | split("/") | last')
npx startup-builder do Lead.qualify --json '{"lead":"'"$LEAD"'","offer":"'"$OFFER"'"}'
npx startup-builder do Meeting.book --json '{"contact":"'"$LEAD"'","at":"2026-11-04T16:00:00Z"}'
{
  "name": "do",
  "arguments": {
    "code": "const [lead] = await $.Lead.list({ where: 'status = new', limit: 1 })\nconst [offer] = await $.Offer.list({ limit: 1 })\nawait $.Lead.qualify({ lead: lead.$id, offer: offer.$id })\nreturn await $.Meeting.book({ contact: lead.$id, at: '2026-11-04T16:00:00Z' })"
  }
}

Change it

  • Only book demos for firms with more than 200 units.
  • Put demos on my calendar Tuesdays and Thursdays only.
  • Send everyone else the self-serve signup.

Under the hood

Systems
CRM, Scheduling
Nouns
Lead, Deal, Meeting, Offer
Events
Lead.qualified, Meeting.booked

Speed wins more early deals than polish. A Lead answered in five minutes books more often than one answered tomorrow, and the Sales Lead answers at any hour.