IntegrationsAnalyticsAutomationB2B

A proposal link that tells a salesperson whether the client has read it

We built this for ourselves first, in one day. Instead of a PDF attachment, the client gets a link, and a note about each view appears in HubSpot.

4 min read

Client
Software development company
Industry
SaaS / Sales tools
Scope
Custom systems and API integrations
Delivery time
1 day

Who the client was and what was getting in the way

We built this system for ourselves first, and we think that is its strongest point. Before recommending a tool to someone, we want to know what it is like to use it every day for several months, not just how it looks in a presentation.

The problem was our own, and very ordinary. We sent proposals as PDF attachments, and from that moment we knew nothing about them. We did not know whether the client had opened the file, read it all, glanced at the first page and closed it, or forwarded it to someone else.

The practical result was that follow-up happened blind. We would write after three days because that seemed appropriate, not because we knew anything about the other person’s engagement. Sometimes we contacted someone who had not even opened the attachment; other times, we left alone someone who had returned to the proposal three times in a week. Both cost us.

Ready-made proposal tools exist, and some track engagement well. We ruled them out for two reasons. First, they charge per user, and for a feature we needed in one place we would have paid every month for the whole team. Second, we wanted a view notification to appear as a note against the right company in HubSpot, not in a separate dashboard someone would have to remember to check. Our own version took one day to build and costs nothing to maintain.

What we built

A proposal is no longer a file; it is a webpage. Each one gets its own random, non-indexed URL. The client clicks a link in an email and reads the proposal in a browser on a phone or computer, without downloading anything.

Tracking runs in the background. We record views, time spent on the proposal, and how far the client scrolls, because the difference between glancing at the introduction and reaching the pricing section is the most useful signal.

The third part is the HubSpot integration. When a proposal is viewed, a note appears on the relevant CRM record showing who viewed it, when, and on which device. This closes the loop: the salesperson gets the information where they already work instead of having to check another tool.

The fourth part covers privacy and expiry. Links are random and non-indexed, so they cannot be found through search or guessed. Proposals have an expiry date; afterward, the page displays an expiration notice instead of the content. This keeps last year’s pricing from circulating.

Technically, the system runs on Next.js 15 with the App Router. Data is stored in Supabase on PostgreSQL with row-level access rules. Vercel provides hosting and the edge layer, and the CRM connection uses version three of the HubSpot API.

How it works today

It took one day to build a working version. The team prepares a proposal as a webpage, generates a link, and emails it instead of attaching a PDF. From then on, the system runs by itself.

The salesperson can see whether the proposal was opened, how long the client spent on it, and how far they got. A note appears in the CRM automatically, giving the follow-up conversation a concrete starting point. After the expiry date, the link no longer displays the proposal.

The outcome

The whole system was built in less than one day. Proposal tracking is fully automatic; no one records anything by hand. Infrastructure costs are zero because everything fits within the free tiers of the services used. View data reaches HubSpot in real time.

What we would do differently

At first, we focused too much on the numbers themselves and not enough on when the salesperson should see them. Time spent on a proposal means little if no one checks a dashboard. The CRM note turned out to be the part that truly changed how we worked, and we should have started there.

The second lesson concerns scroll depth. We measure it, but it can be misleading: a client can scroll through the whole page in ten seconds without reading anything. Next time, we will connect that signal to time spent instead of showing it on its own. Finally, because the tool stores client proposals, rules for expiry and deletion should be agreed at the start rather than added later.

Pricing

Process discovery, an automation plan, implementations, and ongoing support. One fixed rate.

The Swarm subscription

Advisory and implementation service (B2B): we talk with your team, map processes, and suggest improvements. We agree on priorities together, implement an AI agent, automation, or internal system each month, and monitor and maintain the solutions that are in use. Billed monthly; collaboration is remote.

4Β 900 PLN net /mo

6Β 027 PLN gross (VAT 23%)

  • βœ“ Conversations with your team and discovery of your company’s processes
  • βœ“ A map of automation opportunities and shared prioritisation
  • βœ“ A new AI agent, automation, or internal system every month
  • βœ“ Monthly Kickoff & Mapping Call (45 min)
  • βœ“ Implementation meeting with a demo (15–30 min)
  • βœ“ 24/7 monitoring of live automations
  • βœ“ Incidents fixed within 24 hours β€” included
  • βœ“ Team training and consultations included
  • βœ“ Pause or cancel without notice β€” by the day before the next billing period

No commitment β€” pause or cancel with one click.

BLIKVisaMastercardMaestro

BLIK, card, instant bank transfer, or payment by pro forma invoice. Online card payments are processed by Autopay S.A. Payment methods and refunds.

Pause without notice

Nothing in the queue? Pause your subscription by the day before the next billing period, and save any unused days for later.

One-week trial

Not feeling it after the first week? We refund 3/4 of the fee β€” no questions asked.

Prefer to talk?

Book a 30-minute call and see if it is right for you.

Book a call
β˜…

Satisfaction guarantee

Not fully satisfied with the service in your first month? We refund 3/4 of the fee. In practice, you get a one-week trial of The Swarm for 1/4 of the price β€” 1Β 225 PLN instead of 4Β 900 PLN net.

BIG GROWTH Sp. z o.o. Β· ul. Lipowa 3D, 30-702 KrakΓ³w Β· NIP 6793284750 Β· REGON 527118883 Β· KRS 0001073383
BLIKVisaMastercardMaestro
Online payments: Paynow (mElements S.A., mBank Group) β€” BLIK, payment card, instant bank transfer. Online card payment services are provided by Autopay S.A. Payment currency: PLN. Prices on the Website are net prices (VAT 23%).
Β© 2026 The Swarm β€” AI automation on subscription Β· HeyNeuron