The shift from pull to push
Traditional software is pull: you open the app when you want something. Proactive AI is push: the app initiates contact when it thinks you want something.
Done well, it's a superpower — the app notices things you forgot, asks about things that mattered, reminds you of the promise you made Tuesday. Done badly, it's notification spam dressed up as AI.
The core risk: being annoying
Notifications are a finite-trust medium. Send one useful one, users love you. Send five low-value ones, users mute you or uninstall. Send one bad one at 2am, users hate you forever.
Proactive AI has to respect this reality at the product level. Any system that sends messages first needs structural guardrails — not just 'we try to be thoughtful'.
The rulebook we use for Brumo
Brumo's proactive system has these hard constraints:
1. Active-hours window
No proactive messages outside the user's waking hours. Default is inferred from timezone; customizable. Hard rule — overridden only by a message the user explicitly requested (an alarm or deadline they set).
2. Per-type cooldowns
Each proactive type (silence check-in, mood follow-up, birthday reminder, event callback) has a minimum interval. No sending two 'how was your interview' questions in one day.
3. Daily caps
Hard cap on total proactive messages per user per day. Even if five types trigger, the cap wins.
4. Backoff on non-response
If a user hasn't replied to the last three proactive messages, the system backs off dramatically. This one rule prevents most 'spammy AI' perceptions.
5. Active-conversation gate
If the user is currently texting Brumo, proactive messages are suppressed. Don't interrupt a real conversation with a scheduled one.
6. Opt-out toggle
One switch disables all proactive messages. No dark patterns. If a user turns it off, it stays off until they turn it on.
The thing most apps get wrong
Most 'proactive' AI is really 'scheduled' AI — a cron job sends you a 'daily check-in' every morning at 9am whether or not you need one. That's not proactive, that's a newsletter.
Real proactive means the system decided this specific message is worth sending right now, given what it knows. A message arrives because there's something worth saying — a follow-up on your interview, a reminder about the thing you mentioned last week, a nudge about a commitment you made.
The value-per-message has to be high. Low-value proactive messages train users to ignore all proactive messages.
Event-driven, not schedule-driven
The best proactive behaviors trigger on events in the user's data, not on a clock:
- User mentioned a job interview two weeks ago → the day after, 'how did it go?'
- User hasn't messaged in 5 days and historically messages daily → 'hey, you good?' (with a per-user-silence threshold)
- A birthday the user mentioned is coming up → 'reminder, mira's birthday is friday'
- A commitment the user made has a due date → 'you said you'd run today. still on?'
Each of these has a clear reason for existing. The user can see why the message came now, not just that a message came.
Consent and surprise
A good proactive message is something the user would say 'yes please' to in retrospect — even if they didn't explicitly request this specific ping. That's the test.
Any message that fails this test is noise. Be conservative. It's better to send one fewer message than to become the app that bugs you.
Where proactive AI is going
This category will define consumer AI in 2027. The products that figure out proactive right — high value per message, never-spammy, driven by real data — will own the 'ambient AI' category. The products that get it wrong will look like Clippy in five years.
We're betting a lot on getting it right at Brumo. The best feedback we get is when a user says 'his messages are the only notifications on my phone I don't mute'. That's the bar.
