Small (and late) release today. I hope you will find something to enjoy nevertheless.
See all access changes in Activity Log
Turns out, Fredrik has access he should (very much) not have? Or is Kate missing access she absolutely had before? Previously, there was impossible to figure out what went wrong. Everyone (even us!) became a suspect.
Now if you notice someone losing or receiving access they weren’t supposed to, you now who you should DM. Maybe, they know something you don’t. Or maybe they just made a mistake.
Quick Filters Improvements
Quick Filters got smarter. Their name is now automatically generated based on the filter value, so no need to think of a custom one instead of generic “filter”. You can still set a custom name via “Edit name and icon” menu, or reset to automatic default.
YESSSSSSSSSSSS. I love this. Yet another one of those improvements you guys seem to always make that I didn’t realize I needed until I see it on the changelog
I also noticed the collapsed columns in Board view show the number of entities inside, which is a very nice quality-of-life improvement.
Wow, bravísimo, useful for end-users and devs (plus you have implemented conflict-field and conflict-action instead of just saying it can only be done on the Name, or worse, ID field!!!).
It is amazing, but in a distant future, when you find the time…
Not to start requesting changes, but at some point in the future it would be amazing to be able to overcome the “Text Field comparisons are case-sensitive” in “Duplicate matching rules” mentioned in the docs, to avoid the workaround of creating a normalised (lower/uppercase) formula field exclusively for use as a conflict-field in cases where case-insensitivity would be needed, such as:
Company name
URL
Email address
Phone number
My approaches in the past decades depending on the case, have a been combination of the following as preset “conflict-normalisers” that would be applied in order to each side before the comparison:
asciifold: to remove accents so that résumé = résume.
upper/lowercase: to change to lowercase so that ABC Inc. = abc inc..
strip_ws: to remove all whitespace so that ABC Inc. = ABCInc...
alphanumeric: to keep only letters and digits so that A BC123! = ABC:123.
numeric: to keep only digits so that +34 123 123-123 = 34123123123.
strip_chars: to remove a set of characters (e.g., - or _) so that ABC-123 = ABC123 using { "conflict-normalisers": [{ "strip_chars": "-_" }] }.
pad_left/right: to pad values to fixed length so that 123 = 00123 using { "conflict-normalisers": [{ "pad_left": { "length": 5, "char": "0" } }] }
regex_strip: to strip substrings matching a regex pattern so that foo _ bar* = foobar with pattern [_\s\*] using { "conflict-normalisers": [{ "regex_strip": "[_\\s]" }] }
And even the very overt regex_replace: to reformat values using capture groups and backreferences, e.g. extract domain from URLs so that https://www.Example.com/path = Example.com using { "conflict-normalisers": [{"regex_replace": { "pattern": "^(?:https?://)?(?:www\\.)?([^/]+).*", "replace": "$1" } } ] }
Having the API endpoint unlocks all other places: automations, forms, Make/Zapier. We will implement them based on demand. No immediate plans, but we’ll be reacting to use cases popping up (: