Staying ahead of expiring documents

Insurance certificates lapse. Liability waivers age out. Captain's licenses need renewal. The Expiring Soon dashboard is where you catch all of that before it becomes a problem — with one-click reminders that send the customer a single link covering everything they owe.

Staying ahead of expiring documents

A surprising amount of operational risk comes from documents that quietly aged past their expiration date. The boat slip that's still rented to a customer whose insurance lapsed two months ago. The contractor whose license expired but who's still on the schedule. The waiver from 2022 that nobody noticed was on file when the customer came back this season. None of these failures look dramatic on the day they happen — they look dramatic the day something else goes wrong, and the file you reach for isn't valid.

The Expiring Soon dashboard exists so you don't find out that way. It's a single screen that lists every document with an expiration date, sorted to put the ones expiring next at the top. From there you can email the customer in one click — and that email covers everything they currently owe you, not just the row you clicked.

This article covers when to use it, how to filter it sensibly, and the rhythm that turns "we have a stack of expired docs" into "we don't, and we know we don't."

When you'd use this

  • Weekly compliance review. A standing 10-minute slot to scan the next 30 days. Send reminders. Move on.
  • Before season opening at a campground, marina, or seasonal rental — get every customer's certificate of insurance refreshed before the gates open.
  • When you hire a new staffer, give them this dashboard as their first administrative duty. It's a low-stakes way to learn the customer base.
  • When an audit's coming. Filter by document type to make sure no insurance certs, food-handler cards, or similar credentials are stale.
  • After running a backlog cleanup (the "include already-expired" toggle) to triage everything that already lapsed.

This dashboard is not a replacement for the automated alerts the system already sends — those still fire from the nightly job. It's the manual layer on top, for the cases where you want to push a reminder now, target a specific customer, or sweep through everything in one sitting.

One customer, one email

This is the single most important thing to understand about reminders, and it changed how the dashboard behaves.

A reminder is per customer, not per document. Click Send Reminder on a row and the system looks at everything that customer currently owes — every missing required document, everything expired, everything expiring soon, anything you rejected — and sends one email listing all of it. Not one email per row.

That means:

  • If a customer has three documents lapsing this month, they get one email naming all three. You click once.
  • After you send, the other two rows for that customer will report "nothing outstanding" if you click them. That's not a bug. You already asked.
  • The nightly job does exactly the same thing, at the account level, so the customer never receives three separate machine-generated nags in the same week.

The old behavior — one email and one single-use link per document — trained customers to ignore your emails. Three links in three messages for one boat is noise, and noise gets filtered.

How the dashboard fits with automatic reminders

Two systems work together:

  1. Automatic reminders — fire from the nightly job based on each document type's settings (alert window, customer-upload permission, etc.). Set this up once per document type and forget it.
  2. The Expiring Soon dashboard — staff-facing, manual, on-demand. You see what's coming, and you can fire a reminder regardless of whether the auto-alert has gone out yet.

Both use the same sender, so they behave identically: one email per customer, covering everything. A reminder dispatched from the dashboard marks every document it named as "alert sent," so the nightly job won't follow up with a duplicate.

The nightly job also sweeps ahead. When one of a customer's documents hits its own alert window, the job pulls in that customer's other documents expiring within the next 30 days and names them in the same email. The trade-off is deliberate: a document swept in early won't get its own separate reminder later, because the customer was already told about it. If you want a wider or narrower reach, an administrator can change Document Expiry Sweep Window in Settings (default: 30 days). Set it to 0 to go back to alerting on each document independently — but expect more email.

The right pattern: configure the auto-alert windows on each document type so most reminders happen without anyone thinking about them. Use the dashboard for the stragglers, the special cases, and the weekly sanity check.

Setting up the filters — what each one is for

The default view shows documents expiring in the next 30 days, soonest first. Most weeks that's the right starting point. The other knobs:

  • Time frame. 7 days for a tight pre-season sweep. 60 or 90 days when you're doing a quarterly review and want to catch stuff far enough out that customers actually have time to respond. "Already expired" when you're cleaning up a backlog. "All future expirations" when you want a full inventory.
  • Document type. Filter to a specific category (e.g., "Certificate of Insurance" or "Captain's License"). Useful when one type has a known reminder cycle and you don't want it cluttering the broader view.
  • Sort by. "Expiring soonest" is the default and almost always right. Switch to "By account" when you're working on a specific customer and want to see all their docs grouped. "By document type" is handy for the audit-prep use case.
  • Search. Free-text across document title, filename, account name, and asset name. Use it when you remember the customer's name or the boat's name but not which specific doc you're after.
  • Include already-expired. Off by default — most weeks you don't want yesterday's failures cluttering tomorrow's planning. Turn it on for cleanup sweeps.

Sending a reminder — what actually happens

Click Send Reminder on a row, confirm, and:

  1. The system gathers everything that customer owes — across all their boats, RVs, sites, and reservations. Not just the row you clicked.
  2. One email goes to the primary contact, listing each document and why it's being asked for ("expires Aug 14," "expired on Jun 2," "was not accepted").
  3. Every document named in that email is marked alert-sent so the nightly job doesn't follow up with a duplicate.

Where that email points depends on whether you've turned on the customer portal:

  • Portal on — the email carries a single Upload your documents button. It signs the customer straight in to their Documents page, where every outstanding item is listed with its own upload box. One link, no password, no matter how many documents. The link is single-use and expires after 7 days.
  • Portal off — the email lists each document with its own upload link to the same stripped-down, no-login upload page you've always used. Still one email, just several links inside it.

Either way, if the document type requires staff approval, the new upload lands in your approval queue rather than going live immediately — see Document approvals.

A few details worth knowing:

  • The portal link is a sign-in link. It grants access to that customer's whole portal — invoices, saved payment methods, everything — for 7 days or until it's used once, whichever comes first. Tell customers not to forward it. The email says so too.
  • The email goes to the primary contact on the account — the contact at ordering position zero. If you have multiple contacts and the wrong one's getting the email, fix the ordering on the account. If there's no contact email, we fall back to the email on the account record itself.
  • If a document type doesn't allow customer upload, it still appears in the email, with a line telling the customer to call you instead of an upload link. That's the right behavior for documents you don't want customers self-replacing (e.g. a contract you generated). If nothing in the batch is customer-uploadable, no link is generated at all — the email is purely a "please contact us" notice.
  • No customer email on file = no send. The button reports the error rather than silently failing. Add an email to the account first, then retry.
  • The send is queued, not instant. It goes into the outbound email queue and leaves on the next send cycle, using your configured outgoing email settings. If reminders aren't arriving at all, that's an email-settings problem, not a documents problem.
  • "Last reminder" is shown on each row so you can see whether you've already nagged that customer recently. Two reminders with no response? Pick up the phone.

What a healthy weekly rhythm looks like

A simple cadence that works for most operations:

  • Monday morning, 10 minutes. Open the dashboard with the default 30-day window. Send reminders for anything expiring in the next two weeks that hasn't already been reminded. Pay extra attention to docs expiring in the next 7 days — those are urgent.
  • End of month. Switch to a 60-day window for the quarterly outlook. Anything coming up in months 2–3 gets a "heads up" reminder so the customer has time.
  • Pre-season. A week before opening, run the dashboard with "Include already-expired" on. Catch everything that lapsed during the off-season. Prioritize fixing those before any new business is booked against the affected accounts.
  • After every audit. Filter to the document type the auditor flagged. Make sure that category is genuinely current.

Ten minutes a week beats an emergency on a Sunday night.

Common stumbling blocks

  • Sending reminders without checking expiration date sanity. Every now and then a date got typoed at upload time. A document "expiring in 4 days" might actually be fine — and an off-by-a-decade typo can panic a customer for nothing. Glance at the date column before firing a flurry of emails.
  • Skipping the "Include expired" toggle. People naturally use the default view and forget that the long backlog exists. Once a month, flip the toggle and triage what's actually expired but never replaced.
  • Letting customers replace docs that need staff judgment. A custom contract isn't something a customer should self-upload a "new version" of — they don't know what changed. Configure the document type to not allow customer upload, and reminders will route those to "contact us" language instead of an upload link.
  • Treating the manual dashboard as a substitute for auto-alerts. They serve different purposes. If you're sending dozens of manual reminders every week, your automatic alert windows are probably tuned wrong — widen them so the automatic alerts do the routine work and you only handle exceptions.
  • Clicking Send Reminder on every row of the same customer. The first click already covered all of them. The rest will tell you there's nothing outstanding. Work down the list by account, not by row.
  • Setting the sweep window very wide. A 120-day sweep will tell a customer in January about a document expiring in May — and then never remind them again, because they were already told. Somewhere between 30 and 60 days is the sweet spot for most operations.
  • Reminding customers more than once a week. Pestering trains them to ignore your messages. Use the "Last reminder" column to space them out. After two reminders with no response, switch to a phone call.
  • Not auditing the doc type configuration occasionally. If a document type's "auto-alert customer" toggle is off, the nightly job never reminds anyone — every reminder for that type has to be manual. Once a quarter, scan your document types and confirm the alert settings match how you actually want to operate.
  • Pinning hopes on the default email going through. If your customer-facing emails are delivering to spam, the customer won't see the link. If you're not sure, send yourself a test reminder using a known good address. If the email infrastructure has issues, fix that first — see Email setup and troubleshooting (if available) or your communications settings.

When this dashboard is the wrong tool

A few cases where the Expiring Soon view isn't what you want:

  • Per-customer document review. If you're working with one specific customer and want to see all their documents (current, expired, miscategorized), open their account directly — the documents tab there gives you the per-account view. The dashboard is for cross-customer scanning.
  • Brand-new documents you haven't received yet. If a customer hasn't uploaded their certificate at all, there's no row on this dashboard to remind against — a document with no record has no expiration date. Use the Request Documents button on the reservation instead; it covers missing documents and expiring ones in the same email. See Requesting documents from customers.
  • Documents without expiration dates. If a document type isn't configured with an expiration date, it won't appear here. That's correct behavior — a document with no expiration can't expire. But if you expected a document type to track expiration and it isn't, check the document type settings.

Pairing with approval

When a customer uploads a replacement via the link in the reminder email, that new document either:

  • Goes live immediately if the document type doesn't require approval, or
  • Lands in the approval queue if the type is configured to require staff sign-off.

For high-stakes documents (insurance certificates, signed contracts), require approval. The reminder workflow gets the new doc into the system; the approval workflow makes sure someone looks at it before it replaces the old one. See Document approvals for the review side.

Related articles