March Development Update

Text Blaze Highlights

:heavy_division_sign: New Formula Functions

We've launched two new formula functions in Text Blaze:

  • any(list): Returns yes if any of the values in a list are yes, otherwise it returns no
  • every(list): Returns yes if every value in a list is yes, otherwise it returns no

Here are some examples of these functions in practice:

{list1=[yes, no, yes]}
list1: {=list1}
any(list1) = {=any(list1)}
every(list1) = {=every(list1)}

{list2=[yes, yes, yes]}
list2: {=list2}
any(list2) = {=any(list2)}
every(list2) = {=every(list2)}

These new functions make it easier to check if one of multiple values in a list is yes or no.

:mag_right: Defaults for {formmenu} using a Values List

The {formmenu} command allows you to specify a dropdown menu of items the user can select from. You can specify a static set of options for the dropdown menu, or you can use the values setting to make the menu dynamic based on the values in a list you specify.

Previously, when using the values approach, you could not specify a default value for the menu. That has now changed, and we now support default values for menus using values lists.

{colors=["Red", "Green", "Blue"]}
{formmenu: values={=colors}; default=Green}

AI Blaze Highlights

:computer_mouse: Selection Quick Prompts

We've added a new quick prompt tooltip that appears when you select text on a page. This tooltip makes it even easier and quicker to access AI Blaze right when you want.

You can click one of the quick prompt icons to instantly launch a saved prompt or you can expand the tooltip to ask whatever you want or search your other prompts.

If you don't find this tooltip to your liking, you can hide it on one domain or all pages by clicking the "x" icon on the tooltip.

:zap: Upgraded Sonnet Model

We've upgraded the AI Blaze Sonnet model to Sonnet 3.7, which was released this week!

Anthropic's release announcement reports large improvements for this new model over their prior model:

In Blaze's internal benchmark, we also see a significant improvement for it over the prior Sonnet model.

Data Blaze Highlights

:page_with_curl: Distribution Field Summary

We've added a new field summary type that allows you to easily see the frequency of common values that exist in a column. This is great for things like single select fields or other fields with repeated or common values.

:mag_right: Additional Filters

New filters have been added to allow you to filter fields that are lookups of a number field or lookups of a date field.

These new filters will make it easier to work with complex datasets.

And remember... :hugs:

We're always here for you! If you ever need a helping hand, don't hesitate to drop a line in our Question and Answer community forums. And if there's something you'd love to see in Text Blaze, AI Blaze, or Data Blaze, we'd be absolutely thrilled to hear about it in the Features Ideas section.

6 Likes

Fantastic news!

Great to hear Sonnet 3.7 was implemented, it will definitely make creating snippets quicker, especially the more advanced ones that I have.

1 Like

I absolutely love this new feature! About 60 or so of my teams snippets have a bunch of simple dropdown menus, each with unique names. Being able to create the value list once as a variable and quickly insert it into the Values field for each dropdown menu is tremendously time saving! I love that I can make a quick change to the variable once and it is instantly available in all the dropdown menus.

Thank you for this! :fire:
-Brad

{noyesselections=["","No","Yes"];trim=yes}
Sample 1: {formmenu: name=sample1; values={=noyesselections}}
Sample 2: {formmenu: name=sample2; values={=noyesselections}}
Sample 3: {formmenu: name=sample3; values={=noyesselections}}

3 Likes

Would love to see some expanded examples of the new any(list) and every(list) functions. I may be missing something. Thank you!

@Brad_Hedinger Sure, here's one example of how you can use any and every in a snippet:

Patient symptoms:
{formtoggle: name=fever; default=no}Fever{endformtoggle}
{formtoggle: name=cough; default=no}Persistent Cough{endformtoggle}
{formtoggle: name=breath; default=no}Shortness of Breath{endformtoggle}
{formtoggle: name=chest; default=no}Chest Pain{endformtoggle}

{if: every([fever, cough, breath, chest])}{{^^%F0%9F%9A%A8^^}} All critical symptoms reported! Immediate medical attention required!
{elseif: any([fever, cough, breath, chest])}{{^^%E2%9A%A0%EF%B8%8F^^}} One or more concerning symptoms reported. Please alert the physician.
{endif}

2 Likes

@Abdalla_Mahmoud @scott Thank you both! That medical example helps a lot. This sparks an idea for another version of this kind of functionality. Something like "If all variables = X". That way we can define the variable instead of a yes or no. Looking at my sample snippet a few replies up, I would love it if I could define what happens if all 3 sample questions are not blank. Of course I can do that with:

{if:sample1<>"" AND sample2<>"" AND sample3<>""}reveal content{endif}

However, as our snippets get fairly long and complex, and it helps us to hide batches of content until conditions are met, it makes these if statements quite long. Would be great if it could be simplified to something like (or whatever the syntax would be!:

{if:all([sample1,sample2,sample3]<>"")}reveal content{endif}

Hi @Brad_Hedinger

Maybe you can try to use every() with the list comprehension expression as follows:

{sample1="a"}
{sample2="b"}
{sample3="c"}
{=every([x<>"" for x in [sample1, sample2, sample3 ]])}

1 Like

Thank you for that idea. I will work with this and see how it goes. :fire:

1 Like