2026.4.2
Unread badges and contact memory
Unread counts on every conversation, a last-contacted filter, and an assistant that reads a contact’s memory before drafting anything for them.
- messaging
- contact-filters
- assistant
- url-state
Seven changes shipped in this release. Messaging got the two signals it was missing — what is unread and who has gone quiet — and the assistant started reading what your team already knows about a person before writing to them.
Unread messages
- A count per conversation — a badge shows how many inbound messages are waiting, clearing when you open the thread.
- Per person — each team member has their own read state, so clearing a conversation for yourself does not clear it for anyone else.
- A quiet nudge — a message arriving while you are in the messaging view raises a toast rather than a silent update.
- Your place is remembered — the active tab and any filters live in the URL, so switching tabs, opening a contact, or following a link from the dashboard preserves the context.
Last-contacted filter
- Find who has gone quiet — narrow contacts by when they were last contacted: today, the last 7, 30, or 90 days, or a custom range.
- In both places — the full contact list and the compact messaging sidebar.
- Shareable — the active range persists in the URL, so a filtered view can be bookmarked or sent to someone.
The assistant
- Reads memory first — before drafting a message or analyzing a contact, the assistant reads the saved memory note, so it works from the relationship your team has built rather than from scratch.
- Respects your filters — a bulk message targets the same filtered list you are looking at, with a count, per-contact previews, and an explicit confirmation before anything sends.
- Fewer identifiers — plan templates can be created and updated with a phone number instead of an internal identifier.