Follow up when accounts research a competitor
Reads a competitor's pricing and changelog, finds your open deals comparing them on G2, and drafts a comparison email for each owner.
Outcome
A five-bullet summary of the competitor's current plans and recent changes.
A drafted comparison email for each open deal whose company is researching the competitor, for its owner to send.
How it works
FRead their pages, by Scrape a URL by Firecrawl
Fetch each page in
competitor_pagesas markdown. Keep five bullets: the current plans and prices, and the changelog entries dated withinlookback_days.
GFind who is comparing, by Browse buyer intent for a product by G2
For
g2_product_id, list the lastlookback_daysof buyer intent with thecompany_domainandleft_product_namedimensions. Keep the domains whoseleft_product_nameiscompetitor_name.
AMatch open deals, by List records by Attio
List the deals in
open_stageswhose company's domain is one of those. Keep each deal's name, stage, owner and main contact.Write the comparison, by Your agent
Using the bullets from step 1 and
our_differentiators, draft one plain-text email per deal, for its owner to send to the main contact, that names one concrete difference that matters at the deal's stage. Show the drafts to the user.
You'll be asked for
The competitor's pricing page and changelog URLs
The competitor's product name as G2 lists it
What your product does better
e.g. native HubSpot sync, no per-seat pricing
Your product's id on G2
The Attio deal stages that count as open
e.g. Discovery, Proposal
How far back to look
e.g. 30
competitor-intent.mdView markdown
Follow up when accounts research a competitor
Reads a competitor's pricing and changelog, finds your open deals comparing them on G2, and drafts a comparison email for each owner.
Set up the tools below, then run the steps in order for the user, carrying each step's results into the next. The run is done when the user has the outcome below.
Outcome
- A five-bullet summary of the competitor's current plans and recent changes.
- A drafted comparison email for each open deal whose company is researching the competitor, for its owner to send.
Inputs
Ask the user for these before you start.
competitor_pages: the competitor's pricing page and changelog URLscompetitor_name: the competitor's product name as G2 lists itour_differentiators: what your product does better, e.g. native HubSpot sync, no per-seat pricingg2_product_id: your product's id on G2open_stages: the Attio deal stages that count as open, e.g. Discovery, Proposallookback_days: how far back to look, e.g. 30
Set up
Scrape a URL (Firecrawl, tool:firecrawl/scrape-url)
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": { "firecrawl": { "url": "https://mcp.firecrawl.dev/v2/mcp-oauth" } } }
Call the MCP tool firecrawl_scrape.
CLI (official)
Install the command, then confirm it runs.
npm install -g firecrawl-cli
firecrawl --version
Run firecrawl scrape.
Set $FIRECRAWL_API_KEY in your environment first (get a key: https://www.firecrawl.dev/app/api-keys).
Browse buyer intent for a product (G2, tool:g2/browse-product-buyer-intent)
Use the first option your agent supports.
Note: Needs the buyer_intent.read scope. Rows include competitor activity: when left_product_id differs from subject_product_id, the company was looking at the competitor named in left_product_name.
MCP (official, remote)
Add this server to your agent's MCP settings, then sign in when asked.
{ "mcpServers": { "g2": { "url": "https://mcp.g2.com/mcp" } } }
Call the MCP tool browse_product_buyer_intent.
API (official)
- Base URL: https://data.g2.com
- Endpoint:
GET /api/v2/products/{subject_product_id}/buyer_intent - Auth: send the header
Authorization: Bearer $G2_API_KEY - Get a key: https://my.g2.com/developers
List records (Attio, tool:attio/list-records)
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 list-records.
API (official)
- Base URL: https://api.attio.com
- Endpoint:
POST /v2/objects/{object}/records/query - Auth: send the header
Authorization: Bearer $ATTIO_API_KEY - Get a key: https://attio.com/help/reference/apps/generating-an-api-key
Before step 1, confirm access to each service with its cheapest read-only call, like a list or a search. Never send or change anything to test access.
Steps
- Read their pages with Scrape a URL (Firecrawl). Fetch each page in
competitor_pagesas markdown. Keep five bullets: the current plans and prices, and the changelog entries dated withinlookback_days. - Find who is comparing with Browse buyer intent for a product (G2). For
g2_product_id, list the lastlookback_daysof buyer intent with thecompany_domainandleft_product_namedimensions. Keep the domains whoseleft_product_nameiscompetitor_name. - Match open deals with List records (Attio). List the deals in
open_stageswhose company's domain is one of those. Keep each deal's name, stage, owner and main contact. - Write the comparison yourself. Using the bullets from step 1 and
our_differentiators, draft one plain-text email per deal, for its owner to send to the main contact, that names one concrete difference that matters at the deal's stage. Show the drafts to the user.
Rules
- Use only the services set up above. The read-only calls they need, like listing ids or polling for results, are fine.
- Ask the user before anything that sends messages, costs money, or changes data, and say how many records it touches. One approval covers a batch the user has seen.
- Never print API keys.
