Changelog

Changelog

Changelog

We ship new features, fixes, and improvements to Formo every week.

Changelog

We ship new features, fixes, and improvements to Formo every week.

Here are this week's highlights:

  • New Contract Events Pipeline

  • Improved Ask AI

  • Expanded Filter Operators and Breakdowns

  • Demo Project for New Workspaces

  • Improvements and Fixes

New Contract Events Pipeline

The contract events pipeline received a major upgrade this week. Setup is faster, you have more granular control over which contracts feed your analytics, and onchain activity is now attributable to the builder behind each transaction.

  • Recommended contracts. The Contracts page now surfaces contracts your project already interacts with based on transaction events but hasn't tracked yet. Add recommended contracts to get automatic transaction decoding and contract events.

  • Contract ingestion toggle. Each contract gets more granular ingestion controls. Each contract defaults as disabled to keep the contract's ABI available for transaction decoding while excluding it from event ingestion. Enable it for your core contracts to ingest its contract events.

  • Builder code attribution. Contract events now automatically extract the builder code from the source transaction, so you can attribute activity to the builder that made it.

  • Performance and reliability improvements. Pipelines spin up instantly. Automatic retries, dead-letter queues, and at-least-once delivery guarantees at any scale.

  • Available everywhere. The new contract events pipeline support every major EVM chain.

Improved Ask AI

Ask AI is now smarter, faster, and more reliable. The chat is easier to read, you can keep typing while it's still answering, and answers come back more quickly with greater accuracy.

Behind the scenes, the Formo Agent is now powered by the latest frontier model. The result is a deeper understanding of your data, sharper handling of complex questions, and cleaner charts.

Expanded Filter Operators and Breakdowns

Filters across Formo now support a richer set of operators.

  • String filters on Overview, Activity, Funnels (including segment filters on Boards), breakdown tabs (Sources, Pages, Events, Locations, Wallets, Chains) now accept contains, starts with, and ends with alongside the existing equals operators.

  • Numeric filters on retention gain notEquals and >= / <= aliases, and Overview metric filters pick up >= and <= on the generic dimension chain.

  • The Activity chart also gains a breakdown dropdown, so you can split the events time-series by channel, device, location, referrer, UTM, builder code, and more, using the same breakdown taxonomy as Overview.

  • The same operators and breakdowns are also available via the Formo API.

Demo Project for New Workspaces

New workspaces without an active project now see a fully populated demo project with realistic mock data across all of the analytics surfaces.

Explore the product end-to-end before you install Formo, including Overview, Activity, Funnels, Retention, Insights, Wallet Intelligence, Ask Formo, boards, and segments.

Improvements and Fixes

  • Expanded channel classification to detect ads, webmail, and mobile app referrers, so more sessions land in a meaningful attribution bucket instead of "Direct".

  • Added an optional _is_deleted tombstone to the label upsert API, so backfilled imports can express "label removed at past time T" and point-in-time retention drops the wallet in the correct historical week.

  • Added DefiLlama as a price oracle for token USD conversion, broadening coverage for long-tail tokens.

  • Added a user-configurable default timezone in account settings, so reports, exports, and charts render in your local timezone instead of UTC by default.

  • Released @formo/cli 1.0.2 with expanded coverage of alerts, boards, charts, contracts, events, profiles, and segments, so you can drive the full Formo API from your terminal or AI agents.

  • Improved the Users page by hiding enrichment columns that have no data, so the table fits more useful columns on screen.

  • Improved Tinybird MCP reliability with reconnect and retry on closed connections, so long-running Ask Formo sessions no longer fail mid-answer.

  • Improved identity-graph clustering by splitting edge materialization into 8 hash shards, so clustering jobs finish reliably for the largest projects instead of timing out.

  • Improved project_users latency with a single-scan rewrite of linked_addresses, speeding up the Users page for projects with many linked wallets.

  • Fixed the activity feed in the profile drawer inheriting the Users table's page number, so opening a profile now always shows the latest event instead of an older page.

  • Fixed step reordering in the Form Builder silently dropping the welcome step.

  • Fixed a number-formatting bug where integers ending in zero (100, 2500) were corrupted to (1, 25).

  • Fixed event deduplication dropping events that arrived without a message_id by stamping a UUID at ingest.

  • Fixed the Insights weekly email occasionally failing to send, so digests now land reliably in your inbox.

  • Hidden the Transactions per Wallet card when no wallets have transacted, so empty states no longer clutter the Overview.

  • Added a master "All" row to the Create API Key dialog that toggles Read or Write across every scope at once, preserving the Read/Write invariants.

  • Added support for Robinhood Chain Testnet (chainId 46630).

  • Platform security and performance improvements.

Here are this week's highlights:

  • New Contract Events Pipeline

  • Improved Ask AI

  • Expanded Filter Operators and Breakdowns

  • Demo Project for New Workspaces

  • Improvements and Fixes

New Contract Events Pipeline

The contract events pipeline received a major upgrade this week. Setup is faster, you have more granular control over which contracts feed your analytics, and onchain activity is now attributable to the builder behind each transaction.

  • Recommended contracts. The Contracts page now surfaces contracts your project already interacts with based on transaction events but hasn't tracked yet. Add recommended contracts to get automatic transaction decoding and contract events.

  • Contract ingestion toggle. Each contract gets more granular ingestion controls. Each contract defaults as disabled to keep the contract's ABI available for transaction decoding while excluding it from event ingestion. Enable it for your core contracts to ingest its contract events.

  • Builder code attribution. Contract events now automatically extract the builder code from the source transaction, so you can attribute activity to the builder that made it.

  • Performance and reliability improvements. Pipelines spin up instantly. Automatic retries, dead-letter queues, and at-least-once delivery guarantees at any scale.

  • Available everywhere. The new contract events pipeline support every major EVM chain.

Improved Ask AI

Ask AI is now smarter, faster, and more reliable. The chat is easier to read, you can keep typing while it's still answering, and answers come back more quickly with greater accuracy.

Behind the scenes, the Formo Agent is now powered by the latest frontier model. The result is a deeper understanding of your data, sharper handling of complex questions, and cleaner charts.

Expanded Filter Operators and Breakdowns

Filters across Formo now support a richer set of operators.

  • String filters on Overview, Activity, Funnels (including segment filters on Boards), breakdown tabs (Sources, Pages, Events, Locations, Wallets, Chains) now accept contains, starts with, and ends with alongside the existing equals operators.

  • Numeric filters on retention gain notEquals and >= / <= aliases, and Overview metric filters pick up >= and <= on the generic dimension chain.

  • The Activity chart also gains a breakdown dropdown, so you can split the events time-series by channel, device, location, referrer, UTM, builder code, and more, using the same breakdown taxonomy as Overview.

  • The same operators and breakdowns are also available via the Formo API.

Demo Project for New Workspaces

New workspaces without an active project now see a fully populated demo project with realistic mock data across all of the analytics surfaces.

Explore the product end-to-end before you install Formo, including Overview, Activity, Funnels, Retention, Insights, Wallet Intelligence, Ask Formo, boards, and segments.

Improvements and Fixes

  • Expanded channel classification to detect ads, webmail, and mobile app referrers, so more sessions land in a meaningful attribution bucket instead of "Direct".

  • Added an optional _is_deleted tombstone to the label upsert API, so backfilled imports can express "label removed at past time T" and point-in-time retention drops the wallet in the correct historical week.

  • Added DefiLlama as a price oracle for token USD conversion, broadening coverage for long-tail tokens.

  • Added a user-configurable default timezone in account settings, so reports, exports, and charts render in your local timezone instead of UTC by default.

  • Released @formo/cli 1.0.2 with expanded coverage of alerts, boards, charts, contracts, events, profiles, and segments, so you can drive the full Formo API from your terminal or AI agents.

  • Improved the Users page by hiding enrichment columns that have no data, so the table fits more useful columns on screen.

  • Improved Tinybird MCP reliability with reconnect and retry on closed connections, so long-running Ask Formo sessions no longer fail mid-answer.

  • Improved identity-graph clustering by splitting edge materialization into 8 hash shards, so clustering jobs finish reliably for the largest projects instead of timing out.

  • Improved project_users latency with a single-scan rewrite of linked_addresses, speeding up the Users page for projects with many linked wallets.

  • Fixed the activity feed in the profile drawer inheriting the Users table's page number, so opening a profile now always shows the latest event instead of an older page.

  • Fixed step reordering in the Form Builder silently dropping the welcome step.

  • Fixed a number-formatting bug where integers ending in zero (100, 2500) were corrupted to (1, 25).

  • Fixed event deduplication dropping events that arrived without a message_id by stamping a UUID at ingest.

  • Fixed the Insights weekly email occasionally failing to send, so digests now land reliably in your inbox.

  • Hidden the Transactions per Wallet card when no wallets have transacted, so empty states no longer clutter the Overview.

  • Added a master "All" row to the Create API Key dialog that toggles Read or Write across every scope at once, preserving the Read/Write invariants.

  • Added support for Robinhood Chain Testnet (chainId 46630).

  • Platform security and performance improvements.

Here are this week's highlights:

  • User Attribution Filters

  • Retention Cohorts by Label

  • Historical Label Backfills

  • Profiles Batch API

  • Improvements and Fixes

User Attribution Filters

The Users page now has an attribution mode toggle on the Wallets, Clusters, and Visitors tables, so you can switch between Any, First touch, and Last touch to see how a wallet looks under each attribution model without leaving the page.

This makes it easy to compare a campaign's first-touch reach against the wallets that actually converted under last-touch, and to spot the difference between users your channels introduced versus the ones they closed.

Retention Cohorts by Label

Retention cohorts now support filtering by user labels, so you can measure retention for the segments that actually matter to you.

You can send a custom label like open_interest, define a cohort to wallets that carry that label (e.g. open_interest > 1000), and watch how they retain over time, instead of being limited to event-based cohorts.

Carry-forward is built into the retention logic, so a label written once (or sporadically) is correctly applied to every subsequent week until the next event for that key.

Historical Label Backfills

The Create Label API now accepts an optional timestamp on each label write, so you can record labels at a point in the past instead of always at server time:

  • Current time: omit timestamp and the label is recorded at the moment you send it. This is the right default for live signals you're sending as users earn them.

  • Historical data: pass an ISO-8601 timestamp to record the label at a specific point in the past. This lets you backfill historical readings (for example, last quarter's open_interest snapshot) so retention cohorts can evaluate each label value at the correct point in time.

This pairs especially well with cohorts based on numeric thresholds, where the value you cared about on a user's signup day may not be the value they carry today.

Profiles Batch API

The Profiles API now has batch endpoints for user labels and properties, so you can upsert up to 100 wallets in a single request instead of one wallet per call. Perfect for a nightly data syncs and cron jobs.

Both endpoints return partial-success results, so a single bad row doesn't fail the whole batch.

Improvements and Fixes

  • Added CSV export for analytics overview charts on Countries, Pages, Sources, Devices, Wallets, and Chains.

  • Added links from overview page charts to the users page so you can click any row to drill into the underlying wallets matching selected filters.

  • Added page size selector to the Activity and Users tables.

  • Improved accuracy for visitor and session counts on overview charts so they match the headline KPIs, using shared first-touch attribution model.

  • The Channel filter on the Users page now segments wallets by the channel that brought them in on their very first session, matching first-touch attribution on the Overview Channel chart.

  • Show full country names in the legend and tooltip of the Countries chart, in place of two-letter ISO codes.

  • Added af and referrer to the Web SDK's default tracked referral parameters so common affiliate and referrer query strings are captured out of the box.

  • Added a workspace ID field to workspace settings, so support can debug your issues faster.

  • Improved Ask AI error diagnostics so transient failures are actually debuggable, with richer error context captured for our team.

  • Improved Ask AI response quality with reorganized system prompts and tighter SQL and chart guardrails.

  • Improved Ask AI tool-call resilience so mid-stream errors fall back gracefully instead of breaking the response.

  • Improved user clusters query performance.

  • Fixed Boards chart pagination scrolling to the wrong chart.

  • Fixed the date-picker disappearing on Boards.

  • Fixed the missing template title and description on the Dashboard template.

  • Fixed user count inflation in overview charts caused by anonymous ID churn from automated bots.

  • Platform security and performance improvements.

Here are this week's highlights:

  • User Attribution Filters

  • Retention Cohorts by Label

  • Historical Label Backfills

  • Profiles Batch API

  • Improvements and Fixes

User Attribution Filters

The Users page now has an attribution mode toggle on the Wallets, Clusters, and Visitors tables, so you can switch between Any, First touch, and Last touch to see how a wallet looks under each attribution model without leaving the page.

This makes it easy to compare a campaign's first-touch reach against the wallets that actually converted under last-touch, and to spot the difference between users your channels introduced versus the ones they closed.

Retention Cohorts by Label

Retention cohorts now support filtering by user labels, so you can measure retention for the segments that actually matter to you.

You can send a custom label like open_interest, define a cohort to wallets that carry that label (e.g. open_interest > 1000), and watch how they retain over time, instead of being limited to event-based cohorts.

Carry-forward is built into the retention logic, so a label written once (or sporadically) is correctly applied to every subsequent week until the next event for that key.

Historical Label Backfills

The Create Label API now accepts an optional timestamp on each label write, so you can record labels at a point in the past instead of always at server time:

  • Current time: omit timestamp and the label is recorded at the moment you send it. This is the right default for live signals you're sending as users earn them.

  • Historical data: pass an ISO-8601 timestamp to record the label at a specific point in the past. This lets you backfill historical readings (for example, last quarter's open_interest snapshot) so retention cohorts can evaluate each label value at the correct point in time.

This pairs especially well with cohorts based on numeric thresholds, where the value you cared about on a user's signup day may not be the value they carry today.

Profiles Batch API

The Profiles API now has batch endpoints for user labels and properties, so you can upsert up to 100 wallets in a single request instead of one wallet per call. Perfect for a nightly data syncs and cron jobs.

Both endpoints return partial-success results, so a single bad row doesn't fail the whole batch.

Improvements and Fixes

  • Added CSV export for analytics overview charts on Countries, Pages, Sources, Devices, Wallets, and Chains.

  • Added links from overview page charts to the users page so you can click any row to drill into the underlying wallets matching selected filters.

  • Added page size selector to the Activity and Users tables.

  • Improved accuracy for visitor and session counts on overview charts so they match the headline KPIs, using shared first-touch attribution model.

  • The Channel filter on the Users page now segments wallets by the channel that brought them in on their very first session, matching first-touch attribution on the Overview Channel chart.

  • Show full country names in the legend and tooltip of the Countries chart, in place of two-letter ISO codes.

  • Added af and referrer to the Web SDK's default tracked referral parameters so common affiliate and referrer query strings are captured out of the box.

  • Added a workspace ID field to workspace settings, so support can debug your issues faster.

  • Improved Ask AI error diagnostics so transient failures are actually debuggable, with richer error context captured for our team.

  • Improved Ask AI response quality with reorganized system prompts and tighter SQL and chart guardrails.

  • Improved Ask AI tool-call resilience so mid-stream errors fall back gracefully instead of breaking the response.

  • Improved user clusters query performance.

  • Fixed Boards chart pagination scrolling to the wrong chart.

  • Fixed the date-picker disappearing on Boards.

  • Fixed the missing template title and description on the Dashboard template.

  • Fixed user count inflation in overview charts caused by anonymous ID churn from automated bots.

  • Platform security and performance improvements.

Here are this week's highlights:

  • Wallet Clusters

  • Filter by Channel

  • New Dashboard Templates

  • Improved Geolocation

  • Improvements and Fixes

Wallet Clusters

Introducing a new wallet Clusters tab on the Users page. Clusters are groups of wallets associated with a single user.

Using identity resolution, multiple wallet addresses are grouped into identity-stitched user clusters: one row per wallet cluster.

Clustering happens automatically behind the scenes with minimal setup required. Here's how clustering works:

  • First, an explicit user_id from the SDK identify event (for example, a Privy user ID or an in-app custom user id) merges every wallet identified under it into one cluster.

  • Then, wallets without an explicit user ID are still grouped by anonymous_id, using the earliest-seen canonical address as the cluster key.

  • Otherwise, the wallet stands as its own single-address cluster.

Each cluster row shows the sum of individual wallet data including net worth, socials, labels, first and last seen, volume, revenue, and demographics.

Filter by Channel

You can now filter data by channel based on a 12-channel taxonomy such as Organic Social, Paid Search, Referrals, and more.

The twelve channels are:

Channel

How it's classified

Paid Search

Paid signal + search-engine referrer (google.com, bing.com, etc.)

Paid Video

Paid signal + video-platform referrer (youtube.com, vimeo.com, etc.)

Paid Social

Paid signal + social-platform referrer (facebook.com, x.com, tiktok.com, etc.)

Email

utm_medium is email, e-mail, newsletter, or referrer is Substack / beehiiv / Paragraph

Referrals

utm_medium=affiliate or a ref= code is present

Display

utm_medium is display, banner, expandable, or interstitial

AI

Referrer is an AI assistant (ChatGPT, Claude, Perplexity, Gemini, DeepSeek, Copilot, etc.)

Organic Search

utm_medium=organic or search-engine referrer with no paid signal

Organic Social

utm_medium=social or social-platform referrer with no paid signal

Organic Video

Video-platform referrer with no paid signal

Referrers

Any other non-empty referrer not matched above

Direct

No referrer, no UTM, no click IDs (typed URL, bookmark, stripped referrer)

Filter by Channel works across every chart and metric on the overview page (top sources, top pages, top locations, top chains, top events, top wallets, KPIs, revenue, volume, wallets, transactions).

Learn more about Channels.

New Dashboard Templates

Three new dashboard templates are now available. Choose from the following templates when you create a custom board, to help you get started:

  • User Retention & Cohorts Dashboard

  • User Segments Dashboard

  • Feature Adoption Dashboard

Each template ships with prebuilt charts and SQL queries against your project's custom events so you can set up a working board more quickly. Pick a template and create your first custom board in a few clicks.

Need more help? Check out How to Build a Custom Dashboard.

Improved Geolocation

Improved country detection for sesions and users is now live with server-side geolocation. This works together with a browser-timezone fallback to improve data accuracy for users with non-default timezones and VPNs.

  • Audience insights, top countries, and country breakdowns across the dashboard report countries is now more accurate than before.

  • Analytics remains privacy-friendly: no IP addresses are logged or stored anywhere in Formo. Read more about what we collect.

This improvement is live today. No SDK upgrade is required.

Improvements and Fixes

  • Added dashboard template previews so you can see the charts inside a template before creating it.

  • Added a new Tracking Plan Generator free tool that outputs a recommended event taxonomy, property schemas, and SDK code snippets for web and mobile to help users get started more quickly.

  • Added page and session scopes to the Filter by Page filter, so you can fllter for both sessions that viewed page X and data for a specific page X.

  • Added a refresh button to the Users table so you can pull fresh data without reloading the whole page.

  • Improved Format SQL performance in the SQL editor, with faster formatting on large queries.

  • Improved the churn analysis section on the Insights page.

  • Fixed an edge case with Solana wallet profiling.

  • Minor UI and UX fixes.

  • Performance improvements and security fixes.

Here are this week's highlights:

  • Wallet Clusters

  • Filter by Channel

  • New Dashboard Templates

  • Improved Geolocation

  • Improvements and Fixes

Wallet Clusters

Introducing a new wallet Clusters tab on the Users page. Clusters are groups of wallets associated with a single user.

Using identity resolution, multiple wallet addresses are grouped into identity-stitched user clusters: one row per wallet cluster.

Clustering happens automatically behind the scenes with minimal setup required. Here's how clustering works:

  • First, an explicit user_id from the SDK identify event (for example, a Privy user ID or an in-app custom user id) merges every wallet identified under it into one cluster.

  • Then, wallets without an explicit user ID are still grouped by anonymous_id, using the earliest-seen canonical address as the cluster key.

  • Otherwise, the wallet stands as its own single-address cluster.

Each cluster row shows the sum of individual wallet data including net worth, socials, labels, first and last seen, volume, revenue, and demographics.

Filter by Channel

You can now filter data by channel based on a 12-channel taxonomy such as Organic Social, Paid Search, Referrals, and more.

The twelve channels are:

Channel

How it's classified

Paid Search

Paid signal + search-engine referrer (google.com, bing.com, etc.)

Paid Video

Paid signal + video-platform referrer (youtube.com, vimeo.com, etc.)

Paid Social

Paid signal + social-platform referrer (facebook.com, x.com, tiktok.com, etc.)

Email

utm_medium is email, e-mail, newsletter, or referrer is Substack / beehiiv / Paragraph

Referrals

utm_medium=affiliate or a ref= code is present

Display

utm_medium is display, banner, expandable, or interstitial

AI

Referrer is an AI assistant (ChatGPT, Claude, Perplexity, Gemini, DeepSeek, Copilot, etc.)

Organic Search

utm_medium=organic or search-engine referrer with no paid signal

Organic Social

utm_medium=social or social-platform referrer with no paid signal

Organic Video

Video-platform referrer with no paid signal

Referrers

Any other non-empty referrer not matched above

Direct

No referrer, no UTM, no click IDs (typed URL, bookmark, stripped referrer)

Filter by Channel works across every chart and metric on the overview page (top sources, top pages, top locations, top chains, top events, top wallets, KPIs, revenue, volume, wallets, transactions).

Learn more about Channels.

New Dashboard Templates

Three new dashboard templates are now available. Choose from the following templates when you create a custom board, to help you get started:

  • User Retention & Cohorts Dashboard

  • User Segments Dashboard

  • Feature Adoption Dashboard

Each template ships with prebuilt charts and SQL queries against your project's custom events so you can set up a working board more quickly. Pick a template and create your first custom board in a few clicks.

Need more help? Check out How to Build a Custom Dashboard.

Improved Geolocation

Improved country detection for sesions and users is now live with server-side geolocation. This works together with a browser-timezone fallback to improve data accuracy for users with non-default timezones and VPNs.

  • Audience insights, top countries, and country breakdowns across the dashboard report countries is now more accurate than before.

  • Analytics remains privacy-friendly: no IP addresses are logged or stored anywhere in Formo. Read more about what we collect.

This improvement is live today. No SDK upgrade is required.

Improvements and Fixes

  • Added dashboard template previews so you can see the charts inside a template before creating it.

  • Added a new Tracking Plan Generator free tool that outputs a recommended event taxonomy, property schemas, and SDK code snippets for web and mobile to help users get started more quickly.

  • Added page and session scopes to the Filter by Page filter, so you can fllter for both sessions that viewed page X and data for a specific page X.

  • Added a refresh button to the Users table so you can pull fresh data without reloading the whole page.

  • Improved Format SQL performance in the SQL editor, with faster formatting on large queries.

  • Improved the churn analysis section on the Insights page.

  • Fixed an edge case with Solana wallet profiling.

  • Minor UI and UX fixes.

  • Performance improvements and security fixes.

Here are this week's highlights:

  • Lifecycle Settings

  • At-Risk Lifecycle Stage

  • x402 and MPP Support

  • Unique Visitors

  • Improvements and Fixes

Lifecycle Settings

Lifecycle thresholds are now configurable per project from your project settings page.

Defaults like "Power user = 5 active days in last 30 days" don't fit every product, so you can now tune the windows for New, Returning, Power user, At Risk, Churned, and Resurrected lifecycles to match how your team defines engagement.

New At Risk Lifecycle Stage

You can now see a new At Risk lifecycle stage that flags previously engaged users whose activity has slowed but who haven't fully churned yet.

At Risk is the right lifecycle to retain them with an intervention campaign before they're gone for good, and it surfaces consistently across the Users page, Lifecycle reports, and wallet profile labels.

x402 and MPP Support for Profiles API

The Profiles API is now available to AI Agents via x402 (Base) and MPP (Tempo.) Agents can pay 0.05 USDC per request to get enriched wallet profile data with no API key required.

This unlocks pay-per-call agent access to wallet enrichment and personalization use cases based on onchain data.

Unique Visitors

Formo now tracks Unique Visitors, equivalent to GA's Active Users. Unique Visitors counts distinct anonymous_ids over the selected period, deduplicating across sessions and days.

This gives you a clean top-of-funnel KPIs alongside wallets, transactions, and revenue, and a like-for-like comparison with the visitor metric most teams already report from web analytics.

Improvements and Fixes

  • Added Binance verification labels, automatically tagging wallets that hold a Binance Account Bound Token so you can segment KYC-verified users.

  • Added a billing period selector on the Usage page so you can page through previous billing periods to inspect historical event and MAU consumption.

  • Added a hover dropdown for Dashboards when the sidebar is collapsed, so you can switch boards without expanding the nav.

  • Fixed duplicating a board so chart settings and positions are copied alongside the layout.

  • Improved form digest cron resilience, retrying through transient 522s from upstream origins instead of failing the run.

  • Performance improvements and security fixes.


Here are this week's highlights:

  • Lifecycle Settings

  • At-Risk Lifecycle Stage

  • x402 and MPP Support

  • Unique Visitors

  • Improvements and Fixes

Lifecycle Settings

Lifecycle thresholds are now configurable per project from your project settings page.

Defaults like "Power user = 5 active days in last 30 days" don't fit every product, so you can now tune the windows for New, Returning, Power user, At Risk, Churned, and Resurrected lifecycles to match how your team defines engagement.

New At Risk Lifecycle Stage

You can now see a new At Risk lifecycle stage that flags previously engaged users whose activity has slowed but who haven't fully churned yet.

At Risk is the right lifecycle to retain them with an intervention campaign before they're gone for good, and it surfaces consistently across the Users page, Lifecycle reports, and wallet profile labels.

x402 and MPP Support for Profiles API

The Profiles API is now available to AI Agents via x402 (Base) and MPP (Tempo.) Agents can pay 0.05 USDC per request to get enriched wallet profile data with no API key required.

This unlocks pay-per-call agent access to wallet enrichment and personalization use cases based on onchain data.

Unique Visitors

Formo now tracks Unique Visitors, equivalent to GA's Active Users. Unique Visitors counts distinct anonymous_ids over the selected period, deduplicating across sessions and days.

This gives you a clean top-of-funnel KPIs alongside wallets, transactions, and revenue, and a like-for-like comparison with the visitor metric most teams already report from web analytics.

Improvements and Fixes

  • Added Binance verification labels, automatically tagging wallets that hold a Binance Account Bound Token so you can segment KYC-verified users.

  • Added a billing period selector on the Usage page so you can page through previous billing periods to inspect historical event and MAU consumption.

  • Added a hover dropdown for Dashboards when the sidebar is collapsed, so you can switch boards without expanding the nav.

  • Fixed duplicating a board so chart settings and positions are copied alongside the layout.

  • Improved form digest cron resilience, retrying through transient 522s from upstream origins instead of failing the run.

  • Performance improvements and security fixes.


Here are this week's highlights:

  • Behavior Filters Based on First-Seen

  • Transaction Frequency Chart

  • Query Parameter Redaction

  • Sticky Referrer Tracking

  • Improvements and Fixes

Behavior Filters Based on First-Seen

Behavior filters now support First-seen relative time windows to make targeting much more precise.

Until now, behavior filters were limited to rolling windows ("did X in the last N days"). You can now anchor windows to each user's first-seen timestamp, so you can ask questions like:

  • Users who visited the Trading Competition page within 2 hours of their first session (attribute engagement directly to the campaign that brought them in).

  • Users who connected a wallet, deposited, and clicked "Enroll" within their first 24 hours (first-day activation funnel).

  • Users who came back to transact more than 7 days after first-seen (true returning users vs. same-session conversions).

Together these mean better attribution to specific campaigns, sharper onboarding activation analysis, and more targeted segments.

Learn more in the Wallet Segmentation guide.

Transaction Frequency Chart

A new transaction frequency chart on the Users page show you how often your users transact.

View the distribution of transaction counts per wallet to distinguish one-time users from power users, spot drop-off between first and second transactions, and target wallets by activity tier.

Query Parameter Redaction

You can now strip sensitive query parameters before events are stored or sent. Pass a list of query parameter names and the SDK redacts matching keys (case-insensitive) from event properties.

Learn more in the Web SDK docs.

Sticky Referrer Tracking

The Web SDK now keeps first-touch referrer sticky across an entire session, so internal navigation no longer overwrites the source that brought a user in.

This means cleaner channel reports, more accurate first-touch attribution, and no more "self-referral" noise from internal page-to-page navigation.

Improvements and Fixes

  • Hardened AI Insights generation so Acquisition, Activation, and Behavioral cards reliably render on the page and in the weekly email.

  • Improved Ask AI response quality with an eval-and-review harness, tighter prompt rules, and better date and tool-selection handling.

  • Extracted volume, revenue, and points to typed columns on events for faster, more reliable revenue and volume queries across dashboards and the SQL Explorer.

  • Fixed a bug with filtering by Referrer URLs.

  • Steered invited users to join their team's existing workspace during onboarding instead of accidentally creating a new one.

  • Added wallet icons (via RDNS) to the Top Wallets chart for quicker visual identification of which wallets your users are connecting with.

  • Standardized all destructive-action confirmation modals to a single "type the resource name to confirm" pattern across projects, workspaces, dashboards, charts, and API keys.

  • Added an upgrade button to the Usage page, mirroring the Billing page placement.

  • Upgraded @formo/analytics to v1.32.0 across all 17 example apps.

  • Improved infrastructure monitoring for faster incident detection.

  • Performance and security improvements.

Here are this week's highlights:

  • Behavior Filters Based on First-Seen

  • Transaction Frequency Chart

  • Query Parameter Redaction

  • Sticky Referrer Tracking

  • Improvements and Fixes

Behavior Filters Based on First-Seen

Behavior filters now support First-seen relative time windows to make targeting much more precise.

Until now, behavior filters were limited to rolling windows ("did X in the last N days"). You can now anchor windows to each user's first-seen timestamp, so you can ask questions like:

  • Users who visited the Trading Competition page within 2 hours of their first session (attribute engagement directly to the campaign that brought them in).

  • Users who connected a wallet, deposited, and clicked "Enroll" within their first 24 hours (first-day activation funnel).

  • Users who came back to transact more than 7 days after first-seen (true returning users vs. same-session conversions).

Together these mean better attribution to specific campaigns, sharper onboarding activation analysis, and more targeted segments.

Learn more in the Wallet Segmentation guide.

Transaction Frequency Chart

A new transaction frequency chart on the Users page show you how often your users transact.

View the distribution of transaction counts per wallet to distinguish one-time users from power users, spot drop-off between first and second transactions, and target wallets by activity tier.

Query Parameter Redaction

You can now strip sensitive query parameters before events are stored or sent. Pass a list of query parameter names and the SDK redacts matching keys (case-insensitive) from event properties.

Learn more in the Web SDK docs.

Sticky Referrer Tracking

The Web SDK now keeps first-touch referrer sticky across an entire session, so internal navigation no longer overwrites the source that brought a user in.

This means cleaner channel reports, more accurate first-touch attribution, and no more "self-referral" noise from internal page-to-page navigation.

Improvements and Fixes

  • Hardened AI Insights generation so Acquisition, Activation, and Behavioral cards reliably render on the page and in the weekly email.

  • Improved Ask AI response quality with an eval-and-review harness, tighter prompt rules, and better date and tool-selection handling.

  • Extracted volume, revenue, and points to typed columns on events for faster, more reliable revenue and volume queries across dashboards and the SQL Explorer.

  • Fixed a bug with filtering by Referrer URLs.

  • Steered invited users to join their team's existing workspace during onboarding instead of accidentally creating a new one.

  • Added wallet icons (via RDNS) to the Top Wallets chart for quicker visual identification of which wallets your users are connecting with.

  • Standardized all destructive-action confirmation modals to a single "type the resource name to confirm" pattern across projects, workspaces, dashboards, charts, and API keys.

  • Added an upgrade button to the Usage page, mirroring the Billing page placement.

  • Upgraded @formo/analytics to v1.32.0 across all 17 example apps.

  • Improved infrastructure monitoring for faster incident detection.

  • Performance and security improvements.

Here are this week's highlights:

  • Filter by Page

  • Angular SDK support

  • Crossmint and OpenFort examples

  • Improvements and Fixes

Filter by Page

You can view the performance of specific pages with the new Page filter. The Overview and Activity pages now support filtering by Page, such as specific vault or campaign page.

You can also click any row in the Top Pages chart to apply the page filter inline, the same way segments work elsewhere in the dashboard.

Angular SDK support

The Web SDK now supports Angular. Non-React frameworks (Angular, Vue, Svelte, vanilla JS) can now use Formo without React types. React and Next.js apps continue to work as before.

See the Angular example and the docs for more details.

Crossmint and OpenFort examples

The examples repo now includes end-to-end integrations for Crossmint embedded wallets and OpenFort smart wallets.

  • Crossmint is a platform for companies and agents to integrate stablecoin rails — including wallets, onramps, stablecoin orchestration & more.

  • OpenFort is the wallet stack for agentic and stablecoin payments —one open-source SDK instead of five vendors.

Improvements and Fixes

  • Added Angular SDK support.

  • Added Crossmint and OpenFort wallet examples to the examples repo.

  • Added "Filter by Page" to the Overview and Activity pages.

  • Added a rolling curve view and richer tooltip to the Retention chart.

  • Refined bounce rate to an engagement-aware definition so single-page sessions with real engagement no longer inflate the metric.

  • Replaced the cohort-analysis Insights with volume and revenue Insights.

  • Added ENS name support to the public profiles API.

  • Added a copy button to Top Pages chart rows in the Analytics Overview.

  • Restricted the Formo MCP OAuth flow to Scale and Enterprise plans, matching API key access.

  • Restricted Weekly Insights emails to paid workspaces.

  • Fixed the referrer URL filter not applying on the overview page.

  • Fixed funnel conversion-window editor display drifting from execution.

  • Fixed a datepicker visual glitch when selecting a date range.

  • Fixed the Retention chart so still-maturing weeks render as blank instead of 0%, removing the false churn cliff on the newest cohort. AI insight rules and weekly email prompts were updated in the same pass so missing weekly retention is no longer misread as churn.

  • Fixed token-gated forms SIWE verification for smart-contract wallets on non-mainnet chains.

  • Fixed empty segments dropdown on public boards.

  • Fixed invalid MCP tools list error.

  • Migrated all SDK repos to pnpm 11 with a 7-day minimum release age for stricter supply-chain protection.

  • Hardened GitHub Actions across SDK repos (SHA-pinned third-party actions, command-injection fixes in the release workflow, protected credentials.)

  • Performance and security fixes across the platform.

Here are this week's highlights:

  • Filter by Page

  • Angular SDK support

  • Crossmint and OpenFort examples

  • Improvements and Fixes

Filter by Page

You can view the performance of specific pages with the new Page filter. The Overview and Activity pages now support filtering by Page, such as specific vault or campaign page.

You can also click any row in the Top Pages chart to apply the page filter inline, the same way segments work elsewhere in the dashboard.

Angular SDK support

The Web SDK now supports Angular. Non-React frameworks (Angular, Vue, Svelte, vanilla JS) can now use Formo without React types. React and Next.js apps continue to work as before.

See the Angular example and the docs for more details.

Crossmint and OpenFort examples

The examples repo now includes end-to-end integrations for Crossmint embedded wallets and OpenFort smart wallets.

  • Crossmint is a platform for companies and agents to integrate stablecoin rails — including wallets, onramps, stablecoin orchestration & more.

  • OpenFort is the wallet stack for agentic and stablecoin payments —one open-source SDK instead of five vendors.

Improvements and Fixes

  • Added Angular SDK support.

  • Added Crossmint and OpenFort wallet examples to the examples repo.

  • Added "Filter by Page" to the Overview and Activity pages.

  • Added a rolling curve view and richer tooltip to the Retention chart.

  • Refined bounce rate to an engagement-aware definition so single-page sessions with real engagement no longer inflate the metric.

  • Replaced the cohort-analysis Insights with volume and revenue Insights.

  • Added ENS name support to the public profiles API.

  • Added a copy button to Top Pages chart rows in the Analytics Overview.

  • Restricted the Formo MCP OAuth flow to Scale and Enterprise plans, matching API key access.

  • Restricted Weekly Insights emails to paid workspaces.

  • Fixed the referrer URL filter not applying on the overview page.

  • Fixed funnel conversion-window editor display drifting from execution.

  • Fixed a datepicker visual glitch when selecting a date range.

  • Fixed the Retention chart so still-maturing weeks render as blank instead of 0%, removing the false churn cliff on the newest cohort. AI insight rules and weekly email prompts were updated in the same pass so missing weekly retention is no longer misread as churn.

  • Fixed token-gated forms SIWE verification for smart-contract wallets on non-mainnet chains.

  • Fixed empty segments dropdown on public boards.

  • Fixed invalid MCP tools list error.

  • Migrated all SDK repos to pnpm 11 with a 7-day minimum release age for stricter supply-chain protection.

  • Hardened GitHub Actions across SDK repos (SHA-pinned third-party actions, command-injection fixes in the release workflow, protected credentials.)

  • Performance and security fixes across the platform.

Here are this week's highlights:

  • OAuth on Formo MCP

  • Segments on Funnels

  • Event Exclusions in Flow Charts

  • Improvements and Fixes

OAuth on Formo MCP

The Formo MCP server now supports OAuth, so you can add it as a remote MCP connector in Claude, ChatGPT, Cursor, and other clients. Connect your Formo account with the tools you already use.

Learn more in the MCP docs.

Segments on Funnels

You can now filter Funnels by any saved segment, the same way you can on the Users and Activity pages.

Pick a segment from the chart controls and the entire funnel recomputes against that cohort, so you can compare conversion across audiences without duplicating charts.

Learn more in the Segments docs.

Event Exclusions in Flow Charts

Flow charts (user paths) now support an event exclusion filter. Pick events to leave out of the path entirely and the chart reflows around only the events you care about.

This is the fastest way to clean up noisy flows without changing what you instrument.

Improvements and Fixes

  • Added cmd+enter keyboard shortcut to submit on all code editors.

  • Added unsubscribe controls usage limit alerts.

  • Fixed Ask AI stopping after the initial request.

  • Fixed datepicker not rendering on the Number charts edit preview.

  • Fixed errors when deleting a newly created board.

  • Fixed flow chart undercount where long converters were dropped from the end-step branch.

  • Fixed device, browser, and OS aggregations losing unknown values.

  • Fixed minor billing UI bugs.

  • Fixed orphaned instance page events in the Web SDK.

  • Fixed a Formo MCP tools/list 400 error.

  • Performance and security fixes across the platform.

Here are this week's highlights:

  • OAuth on Formo MCP

  • Segments on Funnels

  • Event Exclusions in Flow Charts

  • Improvements and Fixes

OAuth on Formo MCP

The Formo MCP server now supports OAuth, so you can add it as a remote MCP connector in Claude, ChatGPT, Cursor, and other clients. Connect your Formo account with the tools you already use.

Learn more in the MCP docs.

Segments on Funnels

You can now filter Funnels by any saved segment, the same way you can on the Users and Activity pages.

Pick a segment from the chart controls and the entire funnel recomputes against that cohort, so you can compare conversion across audiences without duplicating charts.

Learn more in the Segments docs.

Event Exclusions in Flow Charts

Flow charts (user paths) now support an event exclusion filter. Pick events to leave out of the path entirely and the chart reflows around only the events you care about.

This is the fastest way to clean up noisy flows without changing what you instrument.

Improvements and Fixes

  • Added cmd+enter keyboard shortcut to submit on all code editors.

  • Added unsubscribe controls usage limit alerts.

  • Fixed Ask AI stopping after the initial request.

  • Fixed datepicker not rendering on the Number charts edit preview.

  • Fixed errors when deleting a newly created board.

  • Fixed flow chart undercount where long converters were dropped from the end-step branch.

  • Fixed device, browser, and OS aggregations losing unknown values.

  • Fixed minor billing UI bugs.

  • Fixed orphaned instance page events in the Web SDK.

  • Fixed a Formo MCP tools/list 400 error.

  • Performance and security fixes across the platform.

Here are this week's highlights:

  • Performance improvements

  • Last-touch attribution for funnels

  • Funnel and Flow public API endpoints

Performance improvements

We've completed significant performance improvements across the platform, including wallets, transactions, top pages, top sources, funnels, and flow charts.

Last-touch attribution for funnels

Funnels now support last-touch attribution as a first-class breakdown option, letting you credit the most recent source, campaign, or referrer before a user converted.

This complements first-touch attribution and gives growth and marketing teams a clearer view of which channels are actually driving conversion at the moment of action, rather than only the channel that introduced the user.

Open any existing funnel and toggle the attribution type to last-touch to see how your numbers shift. Learn more in the Funnels documentation.

Funnel and Flow public API endpoints

Funnels and Flows are now available through the public Query API, so you can pull conversion and user-journey data programmatically into dashboards, notebooks, and downstream systems.

The OpenAPI spec has been updated alongside the new endpoints, making it easy to generate clients and explore the schema. If you build internal tooling on top of Formo, point your scripts and integrations at the new endpoints.

See the API overview for more.

Here are this week's highlights:

  • Performance improvements

  • Last-touch attribution for funnels

  • Funnel and Flow public API endpoints

Performance improvements

We've completed significant performance improvements across the platform, including wallets, transactions, top pages, top sources, funnels, and flow charts.

Last-touch attribution for funnels

Funnels now support last-touch attribution as a first-class breakdown option, letting you credit the most recent source, campaign, or referrer before a user converted.

This complements first-touch attribution and gives growth and marketing teams a clearer view of which channels are actually driving conversion at the moment of action, rather than only the channel that introduced the user.

Open any existing funnel and toggle the attribution type to last-touch to see how your numbers shift. Learn more in the Funnels documentation.

Funnel and Flow public API endpoints

Funnels and Flows are now available through the public Query API, so you can pull conversion and user-journey data programmatically into dashboards, notebooks, and downstream systems.

The OpenAPI spec has been updated alongside the new endpoints, making it easy to generate clients and explore the schema. If you build internal tooling on top of Formo, point your scripts and integrations at the new endpoints.

See the API overview for more.

Here are this week's highlights:

  • AI SQL Helpers

  • Ask AI Follow-up Questions

  • Funnels Compare Mode

  • Area Chart

  • Global Search

  • Profile Side Panel

  • Query API

  • Improvements and Fixes

AI SQL helpers

Three new AI helpers now sit next to the SQL editor on both the Explorer page and the create/edit chart page

  • Explain this Query describes what a SQL query does in plain English.

  • Generate SQL turns a prompt into SQL.

  • Format SQL cleans up an existing query in place.

Ask AI Follow-up Questions

Every Ask AI response now ends suggested follow-up questions you can click to keep digging.

The suggestions are generated from the conversation so far and the project's saved charts, events, and segments, so they stay relevant to the data you're actually looking at instead of pulling you off-topic.

Funnels Compare Mode

The funnel chart now has a Compare mode toggle in its date controls, mirroring the one on the overview page, so you can put two date ranges side by side.

Each step now also shows the median time to convert from the previous step, so you can see where users stall, not just where they drop.

Area Charts

You can now create Area Charts.

Area charts support stacking out of the box. It's available alongside Line, Bar, Number, and the other existing chart types.

Global Search

Hit Cmd+K (or Ctrl+K) anywhere in the app to open a command palette. Jump to key pages, custom boards, segments, past chats, and settings even more quickly.

If your query does not match a known action, ask the question directly to Ask AI.

Profile Side Panel

On the Users page, clicking a user now opens its profile in a side panel instead opening a new tab for a smoother experience.

The side panel keeps your filtered list visible so you can scan a cohort and dip into individual wallets without losing context. A link to the standalone profile page is still there when you want to bookmark and share it.

Query API

The full Query API is now live, with 18 public endpoints that expose the same backed data that powers every chart on the Formo dashboard. Use this to build internal tooling and dashboards with Formo data.

Improvements and Fixes

  • Added standardized public API error codes.

  • Added Idempotency-Key support on writes to public API.

  • Added new Formo CLI profiles update and profiles labels create/delete commands.

  • Added a user_id field to wallet profile data so server-side identifiers can be carried alongside wallet identity.

  • Added a Send Test Alert action to alerts so you can verify your webhook endpoint and payload.

  • Added URL validation for external SSO and OAuth redirects for security.

  • Refactored account and workspace onboarding flow.

  • Standardized filter field naming across the public API surface.

  • Fixed sticky table column rendering and users filter bar UI issue.

  • Performance improvements and fixes.

Here are this week's highlights:

  • AI SQL Helpers

  • Ask AI Follow-up Questions

  • Funnels Compare Mode

  • Area Chart

  • Global Search

  • Profile Side Panel

  • Query API

  • Improvements and Fixes

AI SQL helpers

Three new AI helpers now sit next to the SQL editor on both the Explorer page and the create/edit chart page

  • Explain this Query describes what a SQL query does in plain English.

  • Generate SQL turns a prompt into SQL.

  • Format SQL cleans up an existing query in place.

Ask AI Follow-up Questions

Every Ask AI response now ends suggested follow-up questions you can click to keep digging.

The suggestions are generated from the conversation so far and the project's saved charts, events, and segments, so they stay relevant to the data you're actually looking at instead of pulling you off-topic.

Funnels Compare Mode

The funnel chart now has a Compare mode toggle in its date controls, mirroring the one on the overview page, so you can put two date ranges side by side.

Each step now also shows the median time to convert from the previous step, so you can see where users stall, not just where they drop.

Area Charts

You can now create Area Charts.

Area charts support stacking out of the box. It's available alongside Line, Bar, Number, and the other existing chart types.

Global Search

Hit Cmd+K (or Ctrl+K) anywhere in the app to open a command palette. Jump to key pages, custom boards, segments, past chats, and settings even more quickly.

If your query does not match a known action, ask the question directly to Ask AI.

Profile Side Panel

On the Users page, clicking a user now opens its profile in a side panel instead opening a new tab for a smoother experience.

The side panel keeps your filtered list visible so you can scan a cohort and dip into individual wallets without losing context. A link to the standalone profile page is still there when you want to bookmark and share it.

Query API

The full Query API is now live, with 18 public endpoints that expose the same backed data that powers every chart on the Formo dashboard. Use this to build internal tooling and dashboards with Formo data.

Improvements and Fixes

  • Added standardized public API error codes.

  • Added Idempotency-Key support on writes to public API.

  • Added new Formo CLI profiles update and profiles labels create/delete commands.

  • Added a user_id field to wallet profile data so server-side identifiers can be carried alongside wallet identity.

  • Added a Send Test Alert action to alerts so you can verify your webhook endpoint and payload.

  • Added URL validation for external SSO and OAuth redirects for security.

  • Refactored account and workspace onboarding flow.

  • Standardized filter field naming across the public API surface.

  • Fixed sticky table column rendering and users filter bar UI issue.

  • Performance improvements and fixes.

Here are this week's highlights:

  • User Properties and Labels

  • Workspace Audit Log

  • Improved Wallet Search

  • Improvements and Fixes

User Properties and Labels

You can now add first-party user properties and custom user labels for wallet profiles, on the dashboard and the API.

Set a custom display name, email, socials, avatar, location, and other identity fields on a wallet profile. Tag wallets with custom labels (VIP tier, KYC status, etc). Custom user labels work with all existing features including segments, filters, and charts out of the box.

With first-party data alongside the web, product, and onchain data Formo already collects, you can now use Formo as the single source of truth for your DeFi app. No more manually stitching together a separate CRM, analytics tool, and internal database. Push user properties and labels into Formo's customer data platform, then use the unified profile across product analytics, attribution, segmentation, and outreach.

Workspace Audit Log

Workspaces now record an Audit Log of who did what: invites, role changes, project updates, billing changes, and other key actions.

This is designed for SOC2 readiness and is useful for any team that wants visibility into workspace changes, especially when multiple team members have admin access.

Improved Wallet Search

You can now search wallets from social profiles on the Users page and Profile Search API . Search based on a partial address, ENS name, Twitter handle, or any social identifier and Formo will find the matching wallet profile.

Improvements and Fixes

  • Added confirmation step to destructive deletes on projects, segments, boards, contracts, and API keys.

  • Added a row-limit control to SQL Explorer so you can control the size of large queries.

  • Added raw results table to charts so you can inspect the underlying numbers behind them.

  • Added volume to weekly email reports so you can see week-over-week change at a glance.

  • Added MCP and API setup instructions to the API keys page so it's easier to get started.

  • Added a feedback link to the sidebar so it's easier to share what's working and what isn't.

  • Added 2FA status to the workspace members page.

  • Added ENS name support to the Activity page search bar.

  • Added time-based sorting to the Activity page.

  • Added a tooltip to the board global datepicker explaining how the selected range applies to charts.

  • Replaced the underlying engine for Sankey visualizations for faster, more consistent rendering.

  • Improved handling for unknown values from device, browser, and OS tracking.

  • Improved label value filtering to be case-insensitive.

  • Improved error handling and API key validation across the API.

  • Improved Ask AI's handling of date variables in queries and charts.

  • Improved Web SDK location detection to only emit valid country codes.

  • Fixed an issue with SQL Editor exports to JSON and CSV.

  • Fixed an issue with the weekly email report.

  • Performance and scalability improvements across the platform

Here are this week's highlights:

  • User Properties and Labels

  • Workspace Audit Log

  • Improved Wallet Search

  • Improvements and Fixes

User Properties and Labels

You can now add first-party user properties and custom user labels for wallet profiles, on the dashboard and the API.

Set a custom display name, email, socials, avatar, location, and other identity fields on a wallet profile. Tag wallets with custom labels (VIP tier, KYC status, etc). Custom user labels work with all existing features including segments, filters, and charts out of the box.

With first-party data alongside the web, product, and onchain data Formo already collects, you can now use Formo as the single source of truth for your DeFi app. No more manually stitching together a separate CRM, analytics tool, and internal database. Push user properties and labels into Formo's customer data platform, then use the unified profile across product analytics, attribution, segmentation, and outreach.

Workspace Audit Log

Workspaces now record an Audit Log of who did what: invites, role changes, project updates, billing changes, and other key actions.

This is designed for SOC2 readiness and is useful for any team that wants visibility into workspace changes, especially when multiple team members have admin access.

Improved Wallet Search

You can now search wallets from social profiles on the Users page and Profile Search API . Search based on a partial address, ENS name, Twitter handle, or any social identifier and Formo will find the matching wallet profile.

Improvements and Fixes

  • Added confirmation step to destructive deletes on projects, segments, boards, contracts, and API keys.

  • Added a row-limit control to SQL Explorer so you can control the size of large queries.

  • Added raw results table to charts so you can inspect the underlying numbers behind them.

  • Added volume to weekly email reports so you can see week-over-week change at a glance.

  • Added MCP and API setup instructions to the API keys page so it's easier to get started.

  • Added a feedback link to the sidebar so it's easier to share what's working and what isn't.

  • Added 2FA status to the workspace members page.

  • Added ENS name support to the Activity page search bar.

  • Added time-based sorting to the Activity page.

  • Added a tooltip to the board global datepicker explaining how the selected range applies to charts.

  • Replaced the underlying engine for Sankey visualizations for faster, more consistent rendering.

  • Improved handling for unknown values from device, browser, and OS tracking.

  • Improved label value filtering to be case-insensitive.

  • Improved error handling and API key validation across the API.

  • Improved Ask AI's handling of date variables in queries and charts.

  • Improved Web SDK location detection to only emit valid country codes.

  • Fixed an issue with SQL Editor exports to JSON and CSV.

  • Fixed an issue with the weekly email report.

  • Performance and scalability improvements across the platform

Load more

Turn data into action

Measure what matters and make impactful decisions with Formo.

Turn data into action

Measure what matters and make impactful decisions with Formo.

Turn data into action

Measure what matters and make impactful decisions with Formo.