Surface product-qualified expansion opportunities
Watch account usage, flag teams approaching meaningful limits, and give sales a clear reason to engage.
product-qualified-expansion.md
Surface product-qualified expansion opportunities
Set up the tools below, then run the steps in order for the user.
Inputs
Ask the user for these before you start.
usage_threshold: the weekly active users that signal a bigger team, e.g. 25plan_limit: the plan limit accounts approach, e.g. 10 seatssales_channel: where to post, e.g. #expansion
Set up
Query product analytics (Amplitude, tool:amplitude/query-analytics)
Use the MCP server. Add it to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "amplitude": { "url": "https://mcp.amplitude.com/mcp" } } }
Call the MCP tool query_amplitude_data.
Upsert a record (Attio, tool:attio/upsert-record)
Use the first option your agent supports.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "attio": { "url": "https://mcp.attio.com/mcp" } } }
Call the MCP tool upsert-record.
API (official)
- Base URL: https://api.attio.com
- Endpoint:
PUT /v2/objects/{object}/records - Auth: send the header
Authorization: Bearer $ATTIO_API_KEY - Get a key: https://attio.com/help/reference/apps/generating-an-api-key
Post a message (Slack, tool:slack/post-message)
Use the first option your agent supports.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "slack": { "url": "https://mcp.slack.com/mcp" } } }
Call the MCP tool slack_send_message.
CLI (official)
Install the command, then confirm it runs.
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
slack --version
Run slack api chat.postMessage.
Set $SLACK_BOT_TOKEN in your environment first (get a key: https://api.slack.com/apps).
Make one read-only call to each tool to confirm access.
Steps
- Find accounts near the line with Query product analytics (Amplitude). List accounts whose weekly active users crossed
usage_thresholdor reached 80% ofplan_limitin the last 14 days. - Mark them with Upsert a record (Attio). Set each company record, matched on its domain, to expansion-ready with the metric and the date. Keep each account's owner.
- Tell sales with Post a message (Slack). Post one message per account to
sales_channelwith the metric, the date and the account's owner. Ask the user before posting the first one.
Done when
- Every account over the line is marked in the CRM.
sales_channelhas one post per account.
Rules
- Only use the tools listed above.
- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
Built from these files in the repository
- workflows/product-qualified-expansion.md
- companies/amplitude/tools/query-analytics.md
- companies/amplitude/company.md
- companies/attio/tools/upsert-record.md
- companies/attio/company.md
- companies/slack/tools/post-message.md
- companies/slack/company.md
The layout and the rules come from lib/catalog/render-markdown.ts, the set-up wording from lib/catalog/render-access.ts.
