Skip to content

Head of customers

Answers every message a customer sends from the record, keeps one thread per person, and fixes the cause or files it for the product.

File convention
agents/customer/customer-lead.mdx
Noun
Role
Conversation.answer
You, to your agent

Answer Harborview’s question about last month’s rent from the import log, and show me the reply first.

curl -X POST "https://api.sb/leaseline.app/conversations/answer?mode=try" \
  -H "Authorization: Bearer $SB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"conversation":"conversations/harborview-ledger","body":"The October import ran before your rent posted. I re-ran it at 9:19, and the ledger now shows November."}'
npx startup-builder do Conversation.answer --try --data '{"conversation":"conversations/harborview-ledger","body":"The October import ran before your rent posted. I re-ran it at 9:19, and the ledger now shows November."}'
{
  "name": "do",
  "arguments": {
    "mode": "try",
    "code": "return await $.Conversation.answer({ conversation: 'conversations/harborview-ledger', body: 'The October import ran before your rent posted. I re-ran it at 9:19, and the ledger now shows November.' })"
  }
}
import { $ } from 'startup-builder'

const result = await $.try.Conversation.answer({ conversation: 'conversations/harborview-ledger', body: 'The October import ran before your rent posted. I re-ran it at 9:19, and the ledger now shows November.' })
Response
{
  "mode": "try",
  "stored": false,
  "conversation": {
    "$id": "conversations/harborview-ledger",
    "channel": "email",
    "status": "answered",
    "answeredAt": "2026-10-28T09:20:00Z"
  }
}
Try mode reads, stores nothing and spends nothingAPI referenceIts Nouns

Responsibilities

  • Answers the first message in every conversation within one business hour, from the record.
  • Keeps one Thread per person, so no two Workflows write to one customer unseen.
  • Fixes the cause of each problem, or opens an Issue for the product with the customer’s words.
  • Owns the Channels and Mailboxes every seat sends through.

Verbs

VerbObjectEvent
Conversation.answerConversationConversation.answered
Conversation.assignConversationConversation.assigned
Conversation.escalateConversationConversation.escalated
Conversation.closeConversationConversation.closed
Issue.createIssueIssue.created
Metric.queryMetricMetric.queried

Role contract

PartThis seat
PurposeGive every person who writes to the startup one answer, from the record, fast.
ResultsFirst response time; Resolution time; Agent resolution rate
TargetFirst answer within 1 business hour on 95% of conversations, and 4 in 5 resolved without a hand-off, read at 50 conversations (Planning estimate).
StandardsAnswers the first message in every conversation within one business hour. Resolves four in five conversations without a hand-off.
LimitsConversation.answer up to 500 a day (the hub customer lead’s limit); every refund goes to the Billing seat
ScheduleHourly
Channelsemail, chat, sms, social
Also calledSupport lead, Head of Support
Filled byA role agent, from the start; you answer what it escalates.

Hands off to

  • Billing: A customer asks for a refund, or a payment question needs the invoice.
  • CSM: A conversation shows a customer at risk of cancelling.

Processes owned

Support · Answer a message

Metrics

First response time · Resolution time · Agent resolution rate · Net revenue retention

Approvals

You see the plan and its price before anything runs. Sends and posts go out within the limits you set; one approval rule on a class such as send makes every action in it wait for you, and going over a limit always asks.

It asks youWhenAnswered by
Answer past the day’s limitA conversation past the seat’s daily Conversation.answer limitYou
Publish a new booking typeEvery new meeting TypeYou

Each class and its default amount: the hub’s approvals page.

Works with

It trades hand-offs with CSM and Billing.

Example

A Harborview manager writes at 9:12 that one ledger shows last month’s rent. The agent answers at 9:20 from the import log, re-runs the sync, and opens an Issue because it is the third such case this week.

Contents