Form reminders & the check-in worklist
Automatic escalating reminders when clients miss any form — weekly check-ins, onboarding, or other forms — plus a worklist to track every one by state.
Whenever you ask a client to fill in a form — a weekly check-in, an onboarding questionnaire, or any other form you assign — you want them to submit on time, and if they miss it, you need to know. Protocol automates the reminding for every one of these and gives you a single place to track its state.
Reminders apply to all three kinds of form to-do by default. The rest of this page says “check-in” for short, but the same ladder, worklist, and settings cover onboarding and other forms too.
How it works: the escalation ladder
When you enable check-in reminders for your clients, each missed check-in triggers an escalating sequence. The steps are yours to configure — decide how many hours between reminders, how many reminders before it’s “fully missed,” and which channels (push and/or email) deliver each one.
Each step sends a notification:
- Pre-reminder (optional) — sends 24 hours before the check-in is due, so the client can plan ahead. Off by default.
- Check-in due — sends when the check-in reminder date arrives. The client gets a push notification and a to-do in their app.
- Missed reminders — each time the interval passes and they still haven’t submitted, send another reminder (push and/or email, your choice).
- Fully missed — once you’ve sent as many reminders as you configured, the check-in escalates to “fully missed” and you get a notification so you know to follow up directly.
At any point, if the client submits their check-in, the escalation stops — that check-in is complete and won’t send any more reminders.
Configure your policy
You set one default policy and it applies to every form (check-ins, onboarding, and other forms) for your whole roster. Open Escalation settings from the check-in worklist to tune it:
<div style="border-top:1px solid #eef1f4; padding-top:12px; margin-top:12px;">
<div class="wlabel">Days between reminders</div>
<div class="winput" style="width:100px"><span style="color:#39414e">2</span></div>
</div>
<div>
<div class="wlabel">Maximum reminders before fully missed</div>
<div class="winput" style="width:100px"><span style="color:#39414e">2</span></div>
</div>
<div class="wfield"><span class="fl">Send pre-reminder (24h before)</span><span class="wtoggle"></span></div>
<div style="border-top:1px solid #eef1f4; padding-top:12px; margin-top:12px;">
<div class="wlabel">Notify via</div>
<div style="display:flex; gap:8px; margin-top:8px">
<div class="wchip"><span style="font-size:12px">Push notification</span></div>
<div class="wchip"><span style="font-size:12px">Email</span></div>
</div>
</div>
<div style="border-top:1px solid #eef1f4; padding-top:12px; margin-top:12px;">
<div class="wlabel">Message text — Due reminder</div>
<div class="winput" style="min-height:50px"><span style="color:#6b7480; font-size:12px">Hey! Your check-in is due today. Submit your progress whenever you're ready.</span></div>
</div>
<div>
<div class="wlabel">Message text — Missed reminders</div>
<div class="winput" style="min-height:50px"><span style="color:#6b7480; font-size:12px">Still waiting on your check-in. Your coach will follow up soon.</span></div>
</div>
</div>
Key settings:
- Enable check-in reminders — toggle on/off for all clients at once.
- Days between reminders — how many days after a missed check-in before you send reminder 1, then reminder 2, etc. (e.g., 2 days = remind them 2 days after it was due, then 2 days after that).
- Maximum reminders — once you’ve sent this many reminders, escalate to “fully missed” and notify you.
- Pre-reminder — send a nudge 24 hours before the check-in is due (helps clients not forget).
- Notify via — push notification, email, or both.
- Message text — customize what each notification says (at the due step, and at each missed reminder step).
Once you save, the policy is live for every form — check-ins, onboarding, and other forms. Clients start receiving reminders on their next form to-do.
Override individual forms
The default is on for every form. When one form needs different handling, add a per-form override in the same settings screen — turn escalation off for that form, or give it its own interval, max misses, and reminder message. Everything you don’t set on the override inherits the default.
Common uses: turn escalation off for a one-time survey you don’t chase, shorten the interval on a time-sensitive onboarding form, or write a form-specific reminder message.
The check-in worklist
To see the state of every form to-do across your roster at a glance, open Clients → Check-ins (a tab on the client list). It’s a worklist organized by state — each bucket shows to-dos at that stage:
<!-- Fresh bucket -->
<div style="border-bottom:1px solid #f3f6f9; background:#f9fafb">
<div style="padding:12px 16px; font-size:11px; font-weight:600; color:#6b7480; letter-spacing:.02em">Fresh (4)</div>
<div style="display:flex; align-items:center; gap:12px; padding:12px 16px; border-top:1px solid #f1f3f6">
<div style="flex:1"><span style="font-size:12px; color:#7c8593">Fresh</span></div>
<div style="flex:2"><span style="font-size:13px; color:#39414e">Alex Chen</span></div>
<div style="flex:1"><span style="font-size:12px; color:#6b7480">Jul 8</span></div>
<div style="flex:1; display:flex; gap:6px; font-size:11px"><span style="color:#4b7fd9; cursor:pointer">↗ See</span> <span style="color:#4b7fd9; cursor:pointer">💬 Msg</span></div>
</div>
</div>
<!-- Due soon bucket -->
<div style="border-bottom:1px solid #f3f6f9; background:#f9fafb">
<div style="padding:12px 16px; font-size:11px; font-weight:600; color:#6b7480; letter-spacing:.02em">Due soon (3)</div>
<div style="display:flex; align-items:center; gap:12px; padding:12px 16px; border-top:1px solid #f1f3f6">
<div style="flex:1"><span style="font-size:12px; color:#7c8593">Due soon</span></div>
<div style="flex:2"><span style="font-size:13px; color:#39414e">Morgan Lee</span></div>
<div style="flex:1"><span style="font-size:12px; color:#d8a24a">Jul 6</span></div>
<div style="flex:1; display:flex; gap:6px; font-size:11px"><span style="color:#4b7fd9; cursor:pointer">↗ See</span> <span style="color:#4b7fd9; cursor:pointer">💬 Msg</span></div>
</div>
</div>
<!-- Missed 1st bucket -->
<div style="border-bottom:1px solid #f3f6f9; background:#f9fafb">
<div style="padding:12px 16px; font-size:11px; font-weight:600; color:#6b7480; letter-spacing:.02em">Missed 1st (1)</div>
<div style="display:flex; align-items:center; gap:12px; padding:12px 16px; border-top:1px solid #f1f3f6">
<div style="flex:1"><span style="font-size:12px; color:#7c8593">Missed 1st</span></div>
<div style="flex:2"><span style="font-size:13px; color:#39414e">Jamie Rodriguez</span></div>
<div style="flex:1"><span style="font-size:12px; color:#c87133">Jul 4</span></div>
<div style="flex:1; display:flex; gap:6px; font-size:11px"><span style="color:#4b7fd9; cursor:pointer">↗ See</span> <span style="color:#4b7fd9; cursor:pointer">💬 Msg</span></div>
</div>
</div>
<!-- Fully missed bucket -->
<div style="border-bottom:1px solid #f3f6f9; background:#f9fafb">
<div style="padding:12px 16px; font-size:11px; font-weight:600; color:#6b7480; letter-spacing:.02em">Fully missed (1)</div>
<div style="display:flex; align-items:center; gap:12px; padding:12px 16px; border-top:1px solid #f1f3f6">
<div style="flex:1"><span style="font-size:12px; color:#7c8593">Fully missed</span></div>
<div style="flex:2"><span style="font-size:13px; color:#39414e">Taylor Kim</span></div>
<div style="flex:1"><span style="font-size:12px; color:#c87133">Jun 30</span></div>
<div style="flex:1; display:flex; gap:6px; font-size:11px"><span style="color:#4b7fd9; cursor:pointer">↗ See</span> <span style="color:#4b7fd9; cursor:pointer">💬 Msg</span></div>
</div>
</div>
The buckets:
- Fresh — check-in reminder was just created or a client just missed it for the first time. No reminders sent yet.
- Due soon — the check-in is coming up in the next few days.
- Missed 1st — you’ve sent one reminder and the client hasn’t submitted yet.
- Missed 2nd (and beyond) — you’ve sent more reminders; this one hasn’t landed yet.
- Fully missed — you’ve sent the max number of reminders you configured, and the client still hasn’t submitted. Time for you to reach out directly.
Narrow the view — two controls sit next to the bucket toggles:
- Form type — filter to just Check-ins, Onboarding, or Other forms (or show all). Each row also shows the form name under the client, so you can tell at a glance which form is outstanding.
- Time window — the Missed and Fully-missed buckets default to the last 14 days so old, no-longer-actionable misses don’t pile up. Widen it (30 / 90 days / all time) when you want the full history. Fresh and Due-soon are always current.
Row actions — every row gives you quick options:
- See (↗) — jump to that client’s profile so you can review their history and follow up in context.
- Message (💬) — open a chat window to message them directly without leaving the worklist.
- Mark done — if the client submitted but the system didn’t catch it, mark it complete to close the worklist row.
- Snooze — if a client is traveling or in a special situation, snooze the check-in for a few days (you pick how many). Reminders pause until the snooze ends.
- Dismiss — if you’re OK with them skipping this one (temporary exception), dismiss it and move on. The next recurring check-in still runs as normal.
Why the worklist matters
Without it, missed check-ins get buried in your calendar and your inbox. The worklist is your single place to see who hasn’t checked in and who needs a nudge. Because it groups by state, you can prioritize: handle the “Fully missed” clients first (they need direct outreach), then work through “Missed 1st” and “Missed 2nd” tiers if you have bandwidth.
Since every form to-do is tied to your policy, you only set up reminders once — they run automatically for every check-in, onboarding, and other form across your roster. The worklist surfaces the signal so you don’t miss anyone.
Next: learn how to use Progress tracking to map check-in answers into metrics you can chart and compare over time.