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
- Role
- Customer Lead
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.' })
{
"mode": "try",
"stored": false,
"conversation": {
"$id": "conversations/ harborview-ledger",
"channel": "email",
"status": "answered",
"answeredAt": "2026-10-28T09: 20: 00Z"
}
}
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
| Verb | Object | Event |
|---|---|---|
Conversation.answer | Conversation | Conversation.answered |
Conversation.assign | Conversation | Conversation.assigned |
Conversation.escalate | Conversation | Conversation.escalated |
Conversation.close | Conversation | Conversation.closed |
Issue.create | Issue | Issue.created |
Metric.query | Metric | Metric.queried |
Role contract
| Part | This seat |
|---|---|
| Purpose | Give every person who writes to the startup one answer, from the record, fast. |
| Results | First response time; Resolution time; Agent resolution rate |
| Target | First answer within 1 business hour on 95% of conversations, and 4 in 5 resolved without a hand-off, read at 50 conversations (Planning estimate). |
| Standards | Answers the first message in every conversation within one business hour. Resolves four in five conversations without a hand-off. |
| Limits | Conversation.answer up to 500 a day (the hub customer lead’s limit); every refund goes to the Billing seat |
| Schedule | Hourly |
| Channels | email, chat, sms, social |
| Also called | Support lead, Head of Support |
| Filled by | A 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
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 you | When | Answered by |
|---|---|---|
| Answer past the day’s limit | A conversation past the seat’s daily Conversation.answer limit | You |
| Publish a new booking type | Every new meeting Type | You |
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.