How to Get Notified Only for PDF Engagement That Matters
The first automation everyone builds is “notify me when someone opens my document.” The second thing everyone does is mute it — because most opens are courtesy clicks, and a channel full of courtesy clicks trains you to ignore the one open that mattered.
The fix is the Only if box. Conditions turn a firehose into a filter: minimum reading time, completion thresholds, specific pages — evaluated before anything reaches your webhook, so silence actually means nothing happened.
Learn the grammar: when, only if, then
Every automation is three decisions, and the builder lays them out as three cards — “When this happens…”, “Only if… (optional)” and “Then do this…”. The middle card is the one this tutorial is about. Five conditions are available, and they stack (all must hold):
Page number equals — the event happened on this page
Time on page at least — seconds spent on that page
Total reading time at least — seconds across the whole session
Pages viewed at least — distinct pages this session
Completion rate at least — % of the document seen this session
The first two look at the triggering event; the last three look at the session so far — which is what lets you say “only tell me about real reads” regardless of which page tripped the trigger.
Build the real-reads filter
- Go to Documents → Automations → New Automation and pick Page Read under “When this happens…”.
- Under “Only if…” add “Total reading time at least” 120 seconds and “Completion rate at least” 75%.
- Under “Then do this…” paste your Webhook URL and save.
Read out loud: “when a page is actually read, but only in sessions that have already spent two minutes and covered three quarters of the document, call my webhook.” A courtesy click can't qualify.
Prove the filter with two readers
We sent the benchmark report to a reader who skimmed one page for 15 seconds — the webhook stayed silent — and to Elena, who read all eight pages over 2m48s. One notification arrived, carrying everything the follow-up needs:
{
"automation": {
"id": "4d9e1-53957-59772",
"name": "Real reads only"
},
"document": {
"doc_id": "8432e-b4ebb-74433",
"name": "2026 Client Reporting Benchmark",
"viewer_url": "https://docs.apdf.io/studio/8432e-b4ebb-74433",
"file_pages": 8
},
"trigger": {
"matched_event": "page:read",
"conditions_evaluated": true
},
"event": {
"session_id": "condDeep000000B1",
"viewer_id": "vDeep0000000000B",
"recipient": {
"name": "Elena Novak",
"email": "elena@novak.example"
},
"data": {
"page": 1,
"duration_ms": 21000
}
},
"session": {
"total_duration_ms": 168000,
"pages_viewed": 8,
"completion_rate": 100
},
"timestamp": "2026-07-23T09:45:34+00:00"
}
Note what didn't happen: Elena's session produced eight qualifying
page:read events, and you got
one notification, not eight —
automations fire at most once per session. The filter controls quality, the
dedupe controls volume.
Steal these combinations
- The pricing stall — Page number equals your money page + Time on page at least 30s. Built end to end in the follow-up timing tutorial.
- The serious read — this tutorial's build: Total reading time + Completion rate. Wire it to CRM tasks and only real reads become follow-ups.
- The thorough committee — Pages viewed at least n−1 on a long document: someone is reviewing, not browsing.
- The re-open — not a condition
but a payload field: every open carries a
visit_number, so your receiver alerts only when it's >1. The re-open tutorial shows the four-line filter.
Where to go from here
Filtered signals are only step one — here's where they go next.
Related tutorials
How to Create HubSpot Tasks from PDF Engagement
Your CRM should know when a prospect actually reads the quote. A Page Read automation with a completion-rate condition fires only on real reads, a Zap matches the reader to their HubSpot contact by email, and a follow-up task — with the session numbers in its notes — files itself. No code.
How to Log Every PDF View in a Google Sheet
Build a living view log without writing code: a Document Opened automation posts every view to a Zapier catch hook, and each open becomes a spreadsheet row with timestamp, document and reader. Filters, pivots and a COUNTIF later, your sheet is a mini engagement dashboard.
How to Get Notified When Someone Opens Your PDF
Share your PDF through a per-recipient tracking link and get a webhook the moment it's opened — with the reader's name attached. Then turn the event into a Slack message with Zapier or a 20-line Node.js forwarder. The full notification pipeline in about 10 minutes.