Logo
Apdf tutorials July 2026 4 min read

How to Follow Up on Proposals at the Perfect Time

Most follow-ups are scheduled by the calendar: "it's been three days, better check in." But the buyer isn't on your calendar — they're reading the proposal at 9:40 on a Tuesday, stalling on the pricing page, coming back to it Thursday night. Those are the moments a follow-up lands; everything else is noise.

This playbook maps the four signals a tracked proposal sends to the play each one deserves — and shows you how to wire the sharpest one, the pricing stall, to a live alert.

What you'll build
A signal-to-play map for your proposals, with the highest-value moment wired to an alert that names the moment precisely: Alex spent 47s on the pricing page — address the number before they do
Free plan for tracking · automations need Pro (14-day trial, no card)
1

Instrument the proposal

Everything below requires one change to how you send: a tracked recipient link per contact instead of an attachment.

curl -X POST https://apdf.io/api/docs/4352c-99928-25aa1/links \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -d name="Alex Moreau" \
  -d email="alex@clientco.example"

From that link, the proposal streams its signals: opens, page-by-page reading, dwell times, returns. The rest of this tutorial is deciding what each signal means.

2

Know the four moments — and their plays

  • The first open — usually minutes after your email; a courtesy click, not a decision. Play: do nothing. Pouncing here reads as desperate. Log it and wait for a real signal.
  • The real read — most of the document, minutes of attention. Play: check in within 24 hours, while your scope is still fresh in their head. Wire it with a completion-rate condition — the CRM-task tutorial builds exactly this.
  • The pricing stall — a long pause on the money page. They're not confused; they're negotiating with themselves. Play: address the number proactively — a note on payment options or scope flexibility, before the silent "too expensive" hardens. Built below.
  • The re-open — they came back, often to compare or to show a decision-maker. Play: call now. The re-open alert tutorial catches it live.

And the fifth non-moment: silence. A link that was never opened is a deliverability or interest problem — resend with a different angle instead of "just following up".

3

Wire the pricing-stall alert

The sharpest play needs two conditions stacked: the right page, held long enough to mean something.

  1. Go to AutomationsNew Automation and pick Page Read under “When this happens…”.
  2. Under “Only if…” add “Page number equals” — your pricing page (here: 3) — and “Time on page at least” 30 seconds.
  3. Under “Then do this…” paste your webhook or Zapier hook URL and save.
Plan note: Automations are a Pro feature. Every new account can trial Pro for 14 days — no credit card — which covers everything in this tutorial.

A quick skim past pricing stays silent — but 47 seconds on page 3 delivers this:

{
    "automation": {
        "id": "5dca5-abc46-2e796",
        "name": "Stalled on the pricing page"
    },
    "document": {
        "doc_id": "4352c-99928-25aa1",
        "name": "Q3 Services Proposal",
        "viewer_url": "https://docs.apdf.io/studio/4352c-99928-25aa1",
        "file_pages": 3
    },
    "trigger": {
        "matched_event": "page:read",
        "conditions_evaluated": true
    },
    "event": {
        "session_id": "sPriceStall00X01",
        "viewer_id": "aMxV3nKj9qLp2wSe",
        "recipient": {
            "name": "Alex Moreau",
            "email": "alex@clientco.example"
        },
        "data": {
            "page": 3,
            "duration_ms": 47000
        }
    },
    "session": {
        "total_duration_ms": 59000,
        "pages_viewed": 2,
        "completion_rate": 66.7
    },
    "timestamp": "2026-07-23T07:36:55+00:00"
}

The payload names the moment — who, which page, how long — so the follow-up can too: “Happy to walk through how the investment splits across the two phases…” beats “just checking in” every time.

Where to go from here

Each play from the map has its own build-out — wire the ones your pipeline needs.

Ready to see who reads?