# Expand accounts from usage

You have access to product analytics, a billing system, a CRM, an
issue tracker, a call-recording tool, an email account, and a
messaging tool. Run this every morning for **[every paying
account]**.

## 0. Set up (skip if you're already connected)

If you don't already have live tool access for this, connect it
first. This prompt is only as real as the tools behind it:

1. Get a Tulina account: book a demo at https://tulina.ai/book.
2. Add Tulina's MCP server to your assistant: https://mcp.tulina.ai/mcp
3. In Tulina, connect your own API keys for the tools this
   prompt uses: your product analytics, your billing system, your
   CRM, your issue tracker, your call-recording tool, your email
   account, and your team's messaging tool.

Once connected, your assistant has real tool access and the rest of
this prompt runs as written.

## 0b. Already on Tulina? Three things around the run

An account and the MCP server are not the whole setup. Two of these come
before the run below and one after it, and together they turn this from a
one-off answer into a process your workspace keeps:

1. **Activate this process's connectors first.** Call
   `oto_connector(op="list")`, match it against the tools named in step 3
   above, and `oto_connector(op="select", name="...")` every one that
   isn't active yet. Selecting a connector does not mount its tools in the
   conversation you're already in — reach them through `oto_call` for this
   run, or open a fresh conversation once they're all on.
2. **Attach the work to an existing project.** `oto_project(op="list")`
   shows your active org's projects: pick the one this work belongs to
   rather than opening another, and keep its id. The project is where this
   process, the tables it writes to and the connectors it uses hang
   together.
3. **When the run is done, save it as a process — with its graph.** Write
   the body with `oto_procedure(op="set", ...)`, then attach it with
   `oto_project(op="link", project_id=..., target_type="procedure",
   target_ref="<your slug>")`. The body has to carry a drawing: read
   `oto_guide(op="read", slug="procedure-flowchart")` and follow it
   exactly — ONE untagged fenced block in that grammar, opening with the
   trigger and a quoted example of what you'd type to start a run. Tulina
   parses that drawing back into the graph it renders as the process's
   default view, which is what makes it come out in the same style as
   every other process in the app; a drawing the grammar can't read falls
   back to raw characters instead. Saving a process needs org-admin
   rights — without them, hand the finished body to someone who has them.

## 1. List accounts near a limit or on a new feature

From product analytics, over the last **[thirty days]**, list every
account that is

- above **[your threshold, for example 80%]** of a limit its plan
  carries: seats, volume, projects, whatever your plans meter;
- using a feature its plan does not include, through a trial, an
  override or a loophole;
- growing at a rate that reaches a limit within **[sixty days]**.

For each, keep the numbers: the limit, where they are against it,
and the trend. An account is listed once with every reason that
applies. Nothing else about the account is read yet.

## 2. Pull the plan, seats and renewal date

From billing, read what each listed account pays: plan, seats or
units bought, price, any discount applied, and the renewal date.
From the CRM, read the account's owner, its success manager, and any
open deal on it.

An account with an open expansion deal already leaves the list here:
the run reports it and does nothing, since the deal's owner is
already on it.

## 3. Check open incidents and the last call

From the issue tracker, read any open incident or bug the account is
attached to, and how long it has been open. From the call recorder,
read the summary of the last call with the account and keep anything
that was a complaint, a threat to leave, or a request still
unanswered.

An account with a problem is not an account to sell to this morning,
and this step is where the run learns which ones those are.

## 4. Choose the offer from your packaging rules

Read each account against **[your packaging and pricing: what each
plan includes, what the next plan adds, which add-ons exist, seat and
unit prices, and the rules for pricing an expansion mid-term]**.

- Decide the offer: more seats or units on the same plan, the next
  plan, or the add-on that covers the feature they are using. Price
  it under your rules, pro-rated to the renewal date where your rules
  say so. Name the rule.
- Hold any account with an incident open, a complaint on the last
  call, or a renewal within **[sixty days]**: those are a renewal
  conversation, not an expansion, and the renewal's owner is told in
  step 7. Say why each one is held.
- Make no offer where the overage is small enough that your rules
  say to let it run, and say so.

If no packaging rules are written down, decide nothing: list the
accounts and their numbers for the owners in step 7, and report that
no rules were found.

## 5. Route each offer to success or sales

Read each offer against **[your handoff rules: what the success
manager carries, what goes to a rep, and the line between them]**.
A seat top-up on the same plan goes one way, a plan change above the
line goes the other, and the rule is named.

## 6. Draft the proposal with their own numbers

For each offer, draft an email from the person step 5 chose, on the
account's existing thread where one exists: the usage that triggered
it, in the account's own numbers; what the offer is and what it
covers; what it costs under your rules and from when; one line on
what happens at the limit otherwise. No feature pitch. **Create it as
a draft. Never send it.**

## 7. Open the deals, notify the owners

Create an expansion deal on each account with an offer: the amount,
the offer, the usage behind it, the rule that priced it and the rule
that routed it, with the chosen person as owner. Change nothing on
the account's existing deals.

Post one message to each person with deals today: the accounts, the
offer and amount on each, and where the drafts are. Post one line to
the owner of each held account: the usage, and why it is held. Post
one line to support for any held account with an incident open, so
they know the account is also outgrowing its plan.

## Output

Report: accounts listed and why, accounts with an expansion already
open, accounts held and why, the offer and price per account with the
rule, the owner per offer with the rule, the deals created with their
amounts, and the drafts waiting.
