// What's New
No more guessing: your clock, your schema, your fields
Ahoy had been substituting its own assumptions for your setup, and this week we took them out. Calendar views, reminders, booking pages, and the agent all run on your timezone now, with an org-wide default you set once. Files attach to any record type in your schema, fields hold as many values as you configured, and any field a record can hold is a search away on the overview.
Software makes assumptions when it does not know something, and a few of Ahoy's had outlived their usefulness. One held that a day starts and ends when the server says it does. Another held that files belong to a fixed list of record types, and a third that a field holds one value. This week we took them out, one at a time.
Everything runs on your clock
There is a new Default timezone card in Settings, under CRM defaults. Set it once and the org has a clock. Anyone without a timezone on their own profile inherits it, instead of falling through to UTC.
Then everything that draws a day uses it. Month, Week, and Day views highlight today and place the now-line in your timezone, so the day you are looking at is the day you are in. Reminders and stale-deal nudges fire on your calendar day. A validation rule that asks for today() gets your today. Booking pages open and close on your day boundaries, not the server's.
The agent gets the same clock. Ask it about this morning or next Tuesday and it means yours. The timestamps it quotes back are rendered in your timezone. And when it looks for meeting slots, it returns them in your time, along with the busy blocks and working hours it worked around.
Every field, one search away
Last week the record overview became editable in place. This week it gained a search. The View all values button opens a searchable list of every field that record type can hold, so a field you touch twice a year is a few keystrokes away rather than a scroll.
Every field also carries a clear and a copy next to the pencil, and nothing moves as you go from reading a value to editing it. Fields the create form asks for but the record never filled show as a prompt to set them, so you can fill one from where you are.
Files land on every kind of record
Files attach to whatever your schema allows now, custom objects and people included, and not just the deals and meetings they were limited to before. The Files section works out where a file can live by reading the CRM schema, rather than from the fixed list of types it used to carry.
A file you attached by mistake can be removed from the record. Until now it was there for good. And an upload that fails partway rolls itself back, rather than leaving a file with nothing to belong to.
Text that survives the round trip
Values the agent wrote, and text pulled in from Granola and Slack, could arrive with their punctuation escaped - a company called Marks & Spencer landing as Marks & Spencer, and staying that way. Each of those paths now decodes on the way in, and the values already stored have been repaired, including the ones nested inside saved view definitions. AI Actions render the characters as written, and meeting titles come through clean.
Fields that hold what you configured
A multi-value select now renders as a real multi-select. A Competitors field with 45 options behind it could only ever hold one, because the add and remove controls had nowhere to go. They have somewhere now, and a multi-value field keeps those controls beside the editor rather than crammed inside it.
Associations that point at a family of record types split into one field per type. A rule that covers deals and your custom case types used to render them all under one heading, so records of one type appeared under another type's name - and editing the field could unlink records you were not looking at. Each type gets its own field now, and an edit only touches that field's records.
Also this week
- A sweep across labels, buttons, empty states, and error messages retired machine casing and raw exception text in favor of plain English
- An email account you have disconnected is no longer offered as a From address, or quietly picked as your default sender
- A view opened inside a chat closes when you close it, instead of springing straight back open
- Agent reasoning refers to you by name, and no longer shows raw markup in its collapsed steps
- The body editor on an email action can be dragged taller
- Booking pages ask your custom questions before the Notes field, rather than after it
- A contact saved from a LinkedIn profile matches the contact you already have, instead of arriving as a second copy
- CSV import keeps the link to a field's dropdown options next to the column you are mapping
Fixes
And the quieter half: the polish that adds up across a week in Ahoy.
- Clicking straight after typing in a CRM field lands on the thing you clicked
- Clicking All on a CRM board leaves the saved view you were in, instead of bouncing you back into it
- A record's timeline filter can show everything again: calls and texts had no box to tick, so the filter badge stayed lit and clearing every box left the timeline empty
- Slideouts and modals holding a part-filled form ask before they close
- A click inside a popover stays inside it, instead of reaching what sits behind
- Header actions reflow as the window narrows instead of running off the edge
- Saved reports show option labels instead of raw slugs, count measures count what they say, and multi-measure charts get a legend that tells them apart
- An import's progress shows on the account it belongs to, instead of on every connected account
- Last met shows a meeting that has happened, not one still to come
- The Chat Ready toast stays quiet when you are already on the chat page