Competitor battlecard workspace your reps open before calls

One grid of competitor cards with current pricing, your own positioning notes, and a refresh button a rep hits minutes before a competitive call.

App
BrowserlessGoogle SheetsSlack BotSalesMarketingResearch & Monitoring
PromptCreate

I want a competitor battlecard workspace my sales team opens before competitive deals. It is a reference surface people read and edit, not an alerting workflow, so nothing runs on a schedule and nothing gets pushed at anyone. Every rep sees the entire competitor set rather than only the competitors they added or own, and any rep can edit any battlecard.

The home view is a grid of competitor cards, one card per competitor we track. Each card shows the competitor name, their current pricing tiers as plan names with prices, a thumbnail image of their pricing page, the date we last checked them, and a flag when something changed since the previous check. Make that changed flag the most visible thing on a card so a rep scanning the grid immediately sees which competitors moved.

Opening a competitor card gives me the full battlecard on its own view. It shows the scraped plan and price table for that competitor, our own positioning notes and objection handling, a change history listing earlier pricing snapshots with the date each was captured and what differed, a full page image of the pricing page, and a sidebar of recent news about that competitor.

The positioning notes and objection handling are ours, not scraped. The team edits them inline on the battlecard and the app saves them, so the next rep who opens the card sees the current version. Keep those fields free text, persist them per competitor, and never overwrite them when a scrape refreshes the pricing data.

For the data handlers, use Browserless Scrape Elements against each competitor pricing page to pull the plan and price table into structured plan name and price pairs. Use Browserless Take Screenshot for both the card thumbnail and the full page image on the battlecard. When a pricing page does not yield a clean table from selectors, fall back to Browserless Get Page Content to fetch the fully rendered HTML and extract the plans and prices from that. Fill the news sidebar with Browserless Search Web on the competitor name.

Each battlecard has a Refresh button that re-scrapes just that one competitor on demand, so a rep can verify pricing minutes before a call. Refresh re-runs the scrape, the screenshot, and the news search for that competitor only, then updates the card in place and shows the new last checked date.

Only mark a competitor as changed when the extracted prices or plan names actually differ from the previous snapshot. Compare the structured plan name and price values, not the raw page HTML, so cosmetic markup churn, reordered attributes, rotating banners, and changed tracking parameters stay quiet. When nothing material changed, update the last checked date and leave the card unflagged.

Every refresh appends a dated snapshot row to a Google Sheet using Google Sheets Append Values, capturing the check date, the competitor name, each plan name and price, and whether it counted as a change, so the pricing history survives outside the app.

Each battlecard also has a Send battlecard to Slack button. It posts a summary of that card into a deal channel the rep picks, using Slack Bot Send a Message. The summary carries the current plans and prices, what changed since the last check, and our top positioning and objection handling points.

I need a way to manage the tracked set from inside the app: add a competitor with a name and pricing page address, edit that address, and remove a competitor. Adding one should run the first scrape right away so the new card has pricing and a thumbnail immediately.

What does this prompt do?

  • Shows every competitor you track as a card with their current pricing tiers, a picture of their pricing page, and the date you last checked them.
  • Flags a competitor only when their real prices or plan names change, so nobody chases a redesign or a reshuffled banner.
  • Opens into a full battlecard: the plan and price table, your team's positioning notes and objection handling, recent news about them, and a history of past pricing.
  • Refreshes a single competitor on demand and shares the battlecard into a deal channel in Slack with one click.

What do I need to use this?

  • A Browserless account, which is what reads competitor pricing pages and captures the page images for you.
  • A Google account with a spreadsheet where the dated pricing history gets saved.
  • A Slack workspace, if you want reps to share battlecards into deal channels.
  • The pricing page web address for each competitor you want to track.

How can I customize it?

  • Add, edit, or remove competitors at any time by entering a name and their pricing page address.
  • Decide what counts as a change, for example flagging only price moves and staying quiet about new plan names.
  • Rewrite the positioning notes and objection handling for each competitor as your messaging evolves.
  • Choose which Slack channel a battlecard gets posted into when a rep shares it.

FAQs

Does this run on a schedule, or do I check when I want?
It is a workspace you open, not an alert service. Nothing runs in the background. A rep hits Refresh on a competitor when they want current pricing, which is usually right before a competitive call.
Will it flag a competitor every time they tweak their website?
No. It compares the actual plan names and prices it pulled off the page, so a redesign, a new promo banner, or reshuffled page code does not count. Only a genuine pricing or packaging move raises the flag.
Can my whole team see and edit the battlecards?
Yes. Every rep sees the full competitor set rather than only the ones they added, and anyone can update the positioning notes and objection handling. The next person to open the card sees the latest version.
What happens to the old prices when a competitor changes their page?
Every refresh saves a dated snapshot row to your Google Sheet and adds an entry to the change history on the battlecard, so you keep a record of what they charged before and when it moved.
Do I need technical skills to add a competitor?
No. You enter their name and the web address of their pricing page, and the app pulls the plans and prices and captures a picture of the page on the spot.
How is this different from a competitor alert that posts to Slack?
An alert tells you something moved yesterday. This is a reference workspace your reps read and edit, with your own objection handling saved alongside their pricing and a refresh they can run seconds before a call.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App

Verify competitor pricing before the call, not after it.

Give your reps one workspace with current competitor pricing, your own objection handling, and a refresh that takes seconds.