# Seating the agent

URL: /code/learn/seating-the-agent · Id: `page:code/learn/seating-the-agent`

> Tutorial 9 of 12 seats an agent in Leaseline's Success Manager Role, with its purpose, its Limits and the one action class the founder approves.

A [Role](/business/nouns/role) file is a position contract, and an [Agent](/business/nouns/agent) fills the seat. Leaseline seats an agent as its [Success Manager](/agents/customer/success-manager), and the founder approves only what it sends in bulk.

## What you build
You write `agents/customer/success-manager.mdx`: the purpose, the duties, the result it is judged on, a daily [Limit](/business/nouns/limit) and an approval on the `send` action class. The agent then answers residents' questions within the hour.

## Steps
1. To write the contract and seat the agent, create the Role file:

   ```mdx title="agents/customer/success-manager.mdx"
   ---
   worker: { agent: Rae }
   purpose: Every resident answers before the renewal date.
   responsibilities:
     - Send each renewal notice at 60 days.
     - Answer residents' questions about the new terms.
     - List every resident who has not answered after a week.
   results: [renewals-answered]
   standards:
     - Answers a resident's question within one business day.
   limits:
     - { verb: Message.create, count: 300, period: 1d }
   approvals:
     - { class: send }
   schedule: daily
   channels: [email, sms]
   escalatesTo: founding/founder
   ---
   Write as the property manager's assistant. Never promise a rent the manager has not set.
   ```

   The body is the agent's instructions. `approvals` names an action class, so a broadcast waits for the founder and a single reply does not.

2. To read the seat as the platform holds it, print the Role:

   ```bash
   npx startup-builder show /roles/role_oloMFMUeCH
   ```

3. To see what waits for the founder, list the pending [Actions](/business/nouns/action):

   ```bash
   npx startup-builder pending
   ```

## Result
The agent fills the seat, sends at most 300 [Messages](/business/nouns/message) a day and asks the founder before any broadcast. From 2026-10-01 to 2026-10-22, it answered every resident's question within 30 minutes. Checkpoint `leaseline@ch09` (status `planned`) adds `agents/customer/success-manager.mdx`.

## Next steps
- [Tutorial 10](/code/learn/handling-a-failed-card) follows the first incident.
- [How approvals work](/agents/approvals): the five action classes, each answered by an [Approval](/business/nouns/approval), and their amounts.
- [Build a custom agent](/code/build-a-custom-agent): an agent of your own in the seat.