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.
You now have more visibility and control over how your data syncs, at both the connector and dataset level. Whether you're managing sync schedules, adjusting how far back data is pulled, or fine-tuning chunking behavior, these controls give you the flexibility to configure data ingestion the way your accounts need it.
Here's what's new:
-
Connector-level configuration — From the main connector page, you now have the ability to set the chunking size ("Max Days per Request (Chunk Size)") if needed. Guardrails are in place to prevent chunk sizes that could cause issues (minimum 5 days — contact support if you need something outside that range).
-
Dataset-level overrides — Need something different for a specific dataset? You can now override the refresh lookback window and chunking size independently. The same guardrails that apply at the connector level apply here as well.
-
More flexibility in scheduling your dataset — You now have three distinct scheduling options for your dataset. You can run your dataset on the connector's existing schedule, or select "Add Schedule (Optional)" to configure an additional time. When adding a schedule, you'll have the choice to run it in addition to your connector schedule or to override it entirely — giving you full control over when your data syncs.
-
Targeted manual backfills — In addition to the existing manual sync functionality, you can now kick off a backfill for a specific date range targeting one or multiple accounts, giving you more surgical control when you need to re-pull data. This option can be found by clicking "Manual Sync" from the hamburger menu of your dataset on the connector page.
-
Improved setup workflow for custom mapping providers (Google Sheets, SQL, Email, Snowflake Share) — We've reordered the setup flow so that Date & Account Matching now comes before the Configure Columns step. This small change makes setup more intuitive and helps reduce configuration errors.