Notification fatigue is real. The more tools you add, the more your phone, laptop, and chat apps light up with red dots.
Buffy Agent takes a different approach: reminders should feel like a conversation tied to what you’re trying to do—an activity with context—not a timer screaming into your day.
This post breaks down the patterns Buffy uses to design reminders that feel helpful instead of annoying.
Definition: conversational reminder
A conversational reminder is a short message that:
- references a specific activity (habit / task / routine)
- offers clear choices (done / snooze / skip)
- respects your context (time window, focus blocks, channel)
- adapts its tone and frequency using memory of what actually happened
What is a “conversational reminder”?
A conversational reminder is a short message that makes cooperation easy:
- It references the activity (habit / task / routine), not just the clock.
- It offers clean exits (done / snooze / skip), so silence isn’t the only escape.
- It respects context (time windows, focus blocks, channel).
- It gets calmer over time using history (what actually happened), not guesswork.
Why classic reminders become noise
Most reminders fail in predictable ways:
- Fixed-time pings ignore what you’re doing.
- No memory means the system repeats the same message forever.
- No exits forces users to ghost the bot to get peace.
- Same copy everywhere makes reminders blend into the background.
In Slack/Telegram-heavy workflows, this is even worse: reminders compete with real work, social messages, and system alerts.
The core design: tie reminders to an activity lifecycle
Buffy treats every reminder as part of an activity lifecycle:
- A habit has a window, a “first nudge”, and a graceful end.
- A task has a due date, escalating urgency, and a planning step.
- A routine has steps, partial completions, and a lightweight review.
That lifecycle is what lets reminders feel like “the next small helpful thing”, not generic notifications.
Bad vs better (examples you can steal)
1) The generic habit ping
- Bad: “⏰ Time to drink water.”
- Better: “Water window’s open. Want to do it now, or should I nudge you closer to 8:00?”
Why it’s better: it gives a choice and references a window, not a brittle time.
2) The spam loop
- Bad: “Time to stretch.” (repeats every 5 minutes)
- Better: “Quick check: stretch now, snooze 20m, or skip today?”
“I’ll go quiet after this window.”
Why it’s better: it creates a calm end-state so the user doesn’t have to mute you.
3) The wrong-channel interruption
- Bad (Slack): “Do your personal workout now.” (posted in a busy channel)
- Better: “Want me to nudge workouts in Telegram and keep Slack for team routines?”
Why it’s better: channel choice is UX.
4) The guilt reminder after a missed week
- Bad: “You missed 7 days. Restart your streak.”
- Better: “Looks like this slipped last week. Want a 2-minute version Tue/Thu to restart momentum?”
Why it’s better: it treats misses as data and proposes a small, achievable adjustment.
Practical patterns that work
Pattern 1: Done / snooze / skip (always)
Default trio:
- Done: log completion with minimal friction.
- Snooze: suggest a default (e.g. 20m) and accept custom.
- Skip: record without shame; optionally ask “why?” occasionally.
Pattern 2: Windows, not clocks
Windows are resilient:
- “Between 7:30–8:00 on weekdays”
- “Any time before lunch”
They let the agent choose a better moment and avoid reminding during focus blocks.
Pattern 3: One nudge, then quiet
Most reminder annoyance comes from repeats. A calmer strategy:
- 1 nudge near the start of the window
- optional 1 follow-up near the end
- otherwise: quiet + summary later
Pattern 4: Adapt with memory (but stay explainable)
Adaptive reminders work best when the user can understand the shift:
- “I’ll nudge you in Telegram first since you usually respond faster there.”
- “I’m backing off the second follow-up since you typically complete within 10 minutes.”
This requires episodic history (what happened), not just chat context.
A quick reminder UX checklist
Before you ship a new reminder flow, sanity check it against this list:
- Does every reminder reference a clear activity and outcome?
- Can users always do / snooze / skip with a single reply or tap?
- Are you using windows, not brittle clock times, where it makes sense?
- Do you have a clear “end of window” so the bot can go quiet?
- Are you storing event history so you can adapt later?
- Can you explain why reminders change (e.g. different channel or fewer pings)?
Where to go next
- Next step: set up your first habit or routine and try reminders that adapt: How to Get Started With Buffy Agent in 5 Minutes