Introducing the Dynamic Text Widget. Write narrative text in the Template Editor and drop in live data points inline — the client's top-performing campaign, the total spend for the period, the most recent conversion — all resolved from your data source at render time. Pick the field you want, choose how the row is selected (first or last appearing, highest or lowest by a metric, or total), and the value renders in place in your reports and dashboards. If there's no data for the period, the widget can hide itself automatically. Available now in the Template Editor.

Reports and dashboards now have independent permissions. A new "Manage Dashboards" permission controls all dashboard access, separate from "Manage Reports". Admins can now grant users access to one without granting access to the other — giving you tighter control over who in your organization sees what.

You can now choose the page you land on after logging in. Head to your user profile and pick your preferred landing page from the new "My Landing Page" dropdown — any page you have access to is available. If that page ever becomes unavailable to you, you'll be routed to the default landing page automatically.

Introducing the Dynamic Text Widget. Write narrative text in the Template Editor and drop in live data points inline — the client's top-performing campaign, the total spend for the period, the most recent conversion — all resolved from your data source at render time. Pick the field you want, choose how the row is selected (first or last appearing, highest or lowest by a metric, or total), and the value renders in place in your reports and dashboards. If there's no data for the period, the widget can hide itself automatically. Available now in the Template Editor.

You can now control which templates each agency user has access to. From the user management screen, turn off "All Templates" for a user and pick exactly which templates they should see. That user won't see excluded templates anywhere in the product, and any reports or dashboards built on those templates are hidden from their view as well. Parent agency users, admins, and advertiser users are unaffected, and NinjaCat's starter templates remain available to everyone.

Agencies can now configure multiple SMTP servers and route email differently per whitelabel CName or per advertiser. Different brands or clients under the same agency can send reports, user invites, password resets, and NinjaTrack call notifications from different providers — each with its own verified sender and visible status. Each configuration can be verified with a test email and classified error messages if setup fails. Available to agencies on request — reach out to your CSM to enable.

Setting up AI Insights in the Template Builder just got easier. Click the new "Pick Widget from Page" button and select the data widget you want the AI Insights widget to read from — no more hunting through dropdowns. A new eye icon next to the selected widget jumps you straight to that widget on the canvas whenever you need to review or edit it.

AI Insights and Executive Summary now support GPT-5.4 Thinking, OpenAI's latest reasoning model. Select it from the model dropdown when you want deeper analysis on a specific widget. Your existing default model remains the same.

AI Insights now supports Anthropic Claude. Choose between Claude Opus 4.6 and Claude Sonnet 4.6 in the model selector for more flexibility in how your insights are generated.

If a dataset referenced in a SQL Transform gets deleted, the UI now surfaces a clear, helpful error message explaining what happened — instead of throwing a generic "unknown error". You'll now know exactly what's wrong and can take action to fix the transform config.