Product Release Notes

What's new in Base

Delivered by Base Product & R&D teams · June 2026
Version
2.7.4

3 features + 3 improvements in this release

2.7.4 brings time-based Levels, a major new Snowflake integration, and a faster way to customize your emails — plus a handful of quality-of-life fixes. Run annual or seasonal Level cycles on points earned within a date range, without ever touching point history. Sync data both ways with Snowflake — pull from a table or your own SQL, write back with field-level type checking. And start a custom email from the system default Base already sends, instead of a blank editor. On the smaller side: contact exports now include their custom objects, and public content pages show media in full and filter by real tags and content types.

Levels · Points criteria

Run yearly Level cycles with a points timeframe

Qualify advocates on points earned within a date range instead of their lifetime total — built for annual or seasonal tiers, with point history left fully intact.

View details →
Integrations · Data Sync

Sync data to and from Snowflake

Connect Snowflake as a Data Sync source and destination — pull from a table or your own SQL, write back to tables you can access, with field-level type checking.

View details →
Communications · Email HTML

Start a custom email from the system default

Create a custom template starting from the email Base already sends for that category — see what's going out today and tweak it, instead of starting from a blank editor.

View details →
Quality of life

Three quality-of-life improvements

Contact exports now include custom objects, and public content pages show media in full and filter by real tags and content types.

View details →
Levels · Points criteria

Run yearly Level cycles with a points timeframe

New
What changed

Levels can now qualify advocates on the points they earn within a specific date range, instead of always counting their lifetime total. Turn on Limit to a specific timeframe under a Level's points threshold, set a start and end date, and only points earned between those dates count toward that Level.

The challenge

Levels already qualified advocates on their lifetime points total — perfect for evergreen status tiers, but not for time-boxed programs. To run an annual cycle like "earn 1,000 points in 2026 to reach Tier 2," you had to reset everyone's points (which erases their history) or track it by hand. There was no safe, per-Level way to count just one season's earnings.

Why it matters

You can now run yearly or seasonal Level cycles without disturbing point history. Mix windowed and lifetime Levels in the same program — an always-on status tier alongside a 2026 promotional push — and each one evaluates on its own terms. The underlying points stay exactly as they were; the timeframe only changes what counts toward that single Level.

See it in action
Level configuration with the 'Limit to a specific timeframe' toggle and start/end dates
Turn on "Limit to a specific timeframe" under the points threshold, then set a start and end date.
Advocate Level progress card showing windowed progress and the date range to qualify
Advocates see their progress against the window and the dates they have to earn within.
How to use it

Open a Level's configuration and enable the points requirement, then turn on Limit to a specific timeframe and set a Start date and End date. The start date can be in the past, so you can launch mid-cycle and still count earnings from the beginning of the period. Save, and the Level immediately evaluates everyone in the program on the points they earned inside that window.

Good to know

Any points earned inside the window count, no matter how they were earned, and point removals dated inside the window reduce the total. Once the end date passes, the window is closed — advocates who qualified stay qualified. Advocates working toward a windowed Level see their progress against the window and the date range right on their progress card. Dates are evaluated in UTC.

Integrations · Data Sync

Sync data to and from Snowflake

New
What changed

Snowflake is now a Data Sync integration — both a source you can pull from and a destination you can write to. Connect with a Snowflake key-pair, test the connection before you save, then map fields between Snowflake and Base with built-in type checking.

Why it matters

Snowflake is where many teams already run their analytics and modeling. With a native sync, Base data can flow straight into your warehouse on a schedule, and warehouse data can flow back into Base to drive targeting and segmentation — no manual exports or glue code in between.

Two ways to pull from Snowflake

Catalog object — pick a table and use the standard Data Sync filters to choose columns and conditions. Advanced SQL query — write your own SQL for aggregated or joined data; Base validates it and loads its columns for mapping. In Advanced SQL mode the wizard's filters step aside, since your query handles the filtering.

See it in action
Snowflake in the Data Sync connector picker
Snowflake now appears in the Data Sync connector picker — connect it as a source or a destination.
How to use it

In Customize → Data Sync, add a new connection and choose Snowflake. Enter your Snowflake key-pair details and click Test connection to confirm it works before saving. When Snowflake is the destination, Base shows only the tables you have write access to; when it's the source, choose Catalog object to pick a table, or Advanced SQL query to pull from your own statement. Then map your fields — Base only lets you connect compatible types.

Good to know

Writing to Snowflake is limited to tables your connection has permission to write to, so the destination list only shows what you can actually populate. Field mapping blocks incompatible types up front, so a sync won't fail later on a type mismatch.

Communications · Email HTML

Start a custom email from the system default

New
What changed

When you create a custom email template, you can now start from the system default — the template Base already sends for that category — instead of only from a blank editor. On the Communications → Email HTML page, Create new template now offers two choices: Start from system default or Start from scratch.

The challenge

Every email category already has a system default that Base sends out of the box — but there was no way to see it. Creating a custom template dropped you straight into an empty editor, so you either rebuilt the whole email from memory or didn't customize at all, losing wording the default already had right.

Why it matters

Now you can see exactly what's going out today and adjust it, rather than recreating it. Change a line, tweak the styling, swap a token — and keep everything the default already handles. It's the difference between editing a working email and starting from a blank page.

See it in action
Create new template menu with Start from system default and Start from scratch
"Create new template" now offers Start from system default or Start from scratch.
Editor prefilled with the system default template, including its tokens
"Start from system default" opens the editor preloaded with the current template — tokens and all.
How to use it

Go to Communications → Email HTML and pick a category that doesn't have a custom template yet. Click Create new template and choose Start from system default to open the editor preloaded with the current default (tokens and all), or Start from scratch for a blank editor. Edit freely — once you save, your version becomes the custom template for that category.

Good to know

The prepopulated content uses the same placeholders as any custom template, so personalization keeps working. "Start from scratch" behaves exactly as before. Once saved, your custom template overrides the system default for that category going forward.

Contacts · Export

Contact exports now include custom objects

What changed

Exporting the Users (Contacts) dashboard now includes each contact's custom objects. The export arrives as a ZIP with the main contacts file plus one file per custom-object type — one row per record — exactly like the Accounts dashboard export already works. Previously the contacts export was a single flat file that silently left custom objects out.

How to use it

Open the Users (Contacts) dashboard, apply any filters or search you want, and click Export. You'll get an email with a link to download the ZIP, with each custom-object type as its own file inside. Contacts with no custom objects still export cleanly, and the Accounts export is unchanged.

Good to know

Each custom-object record keeps only its own values — an instance with some fields left blank won't borrow from another. And exports that used to fail to arrive when a custom-object field shared a name with a built-in column now generate correctly.

Content Generator · Media

Photos and videos show in full — no more cropping

What changed

Images and videos on your public content pages now display at their natural shape, instead of being cropped into a fixed box. Portrait photos and vertical phone videos — the most common testimonial format — are no longer cut off. Tall media is scaled to fit (up to about 480 px) with clean letterbox spacing, and YouTube and Vimeo embeds show in a tidy 16:9 frame. Text-only tiles are unchanged.

How to use it

Nothing to set up. The improvement applies the next time a page is generated — pages on daily auto-refresh pick it up automatically within about a day; others update the next time you regenerate them.

Content Generator · Filters

Tags and Content Type filters that actually work

What changed

Two filters on your public content pages now behave the way you'd expect. Ask the page generator for a Tags filter and it builds a real one — the dropdown lists the actual tag names on the page's items, instead of a single placeholder that filtered nothing. And the Content Type filter now uses each item's real content type (Quote, Blog post, Image, and so on — the same values you see in the content report), instead of a rough type guessed from the file or link.

How to use it

When you generate or update a content page, ask for a tags filter and a content type filter in the chat. Visitors can then multi-select tags (an item appears if it has any of the chosen tags) and filter by real content type. Tag names are only included in a page's data when you've added a Tags filter, so pages without one expose no tags.