Text, Heading, Dynamic Text & AI Insights Generator Widgets
These simple steps will walk you through inserting a text or header widget into a template and customizing the formatting to match the look and feel you aim for. This article also has the information for using the AI Insights Generator text widget.
Inserting a Text Widget
Text widgets are perfect for adding commentary or guidance to a template or as a placeholder to add notes and commentary once your report is run.
1. Access the Ninjacat Template Builder
2. Select the desired template page
3. Click to open the Typography section of the Widget Browser near the right
4. Click on the Text icon to insert a new text box
5. Double click into the text box to modify the text
6. Click off the text box and back onto it until you see a blue line surrounding it. You can now resize by dragging the blue circles and reposition the widget to wherever you want it to be on the page.
Use the yellow snapping lines (ensuring snapping is switched on at the bottom right of your screen) to line up your text widget exactly with other widgets on your template page.
Inserting a Header Widget
Header Widgets are the perfect way to guide a user through your data story. You can use them to title pages, sections, charts, and tables.
1. Access the Ninjacat Template Builder
2. Select the desired template page
3. Click to open the Typography section of the Widget Browser near the right
4. Click on the Header Icon to insert a new Header Widget.
5. Double click into the Header widget to highlight the text and modify it to create your own header
6. You'll see under the properties section of the widget inspector on the right-hand side of the screen that you have 6 options to choose from, each representing a specific header style. The settings for these are defined in the Global Settings area. Select which of the header types is the most appropriate for your use case.
7. Click off the Header widget and back onto it until you see a blue line surrounding it. You can now resize the widget by dragging the blue circles and repositioning the widget to wherever you want it to be on the page.
Inserting a Dynamic Text Widget
The Dynamic Text Widget lets you write narrative text with live data points embedded inline. Instead of displaying static text, you can insert merge codes — data references that resolve to real values at render time based on the selected account, data source, and date range.
Use the Dynamic Text Widget when you want to:
- Summarize a client's top-performing campaign in a sentence
- Display total spend, conversions, or other metrics inline with descriptive text
- Create executive summary paragraphs that update automatically with each reporting period
Adding a Dynamic Text Widget
- Open the Template Editor and navigate to the page where you want to add the widget.
- In the widget panel, locate the Dynamic Text widget under the Typography section.
- Drag the widget onto your template canvas and resize it as needed.
- The widget opens a rich text editor (WYSIWYG) where you can type your narrative text and format it using standard text formatting options.
Configuring a Data Source
Before inserting merge codes, configure the widget's data source:
- Open the widget's data configuration panel.
- Select a data source — this can be any Quick Connector or Dataset available in your account.
- Configure the dimensions, metrics, filters, and date range just as you would for a table or chart widget.
Inserting Merge Codes
Merge codes are placeholders that pull a specific data value into your text. They appear as blue chips in the editor.
- Place your cursor where you want the data value to appear in your text.
- Click the merge code button in the toolbar to open the selection modal.
- Choose the field you want to display (a dimension or metric from your configured data source).
- Select a row selection rule to determine which value is pulled:
| Row Selection Rule | Description |
|---|---|
| First Appearing | Returns the first row in the result set |
| Last Appearing | Returns the last row in the result set |
| Highest by Metric | Returns the row with the highest value for a chosen metric (available for dimensions) |
| Lowest by Metric | Returns the row with the lowest value for a chosen metric (available for dimensions) |
| Total | Returns the aggregated total (available for metrics) |
- Click Insert to add the merge code to your text. It appears as a blue chip in the editor.
Working with Merge Code Chips
Once a merge code is inserted, it displays as a styled blue chip in the editor:
- Click a chip to select it
- Double-click a chip to edit its settings (field, row selection rule)
- Delete/Backspace to remove a selected chip
- Copy/Paste (Ctrl+C / Ctrl+V) to duplicate chips within the editor or across widgets
- When an account is selected in the Template Editor, chips display the resolved data value as a preview
- When no account is selected, chips show a descriptive label of their configuration
Rendering Behavior
When the template renders (in a PDF report, dashboard, or client review):
- All merge code chips are replaced with their resolved plain text values
- The resolved text respects the widget's font styling (font family, size, color, etc.)
- If the data source returns no results for the configured date range, the merge code resolves to empty text
Hide When No Data
Enable the "Hide When No Data" toggle in the widget settings to automatically hide the entire widget when the data source returns no results. This is useful for keeping reports clean when certain data isn't available for a given period.
Limitations
- The Dynamic Text Widget is not available for selection by the AI Insights widget.
- The Dynamic Text Widget cannot be created or managed by the AI assistant.
Using the AI Insights Generator Widget
It is your job to turn data into insight. Interpreting data for your customers is time-consuming. NinjaCat has your back when it comes to translating data into meaningful strategy decisions. The AI Insights Generator is a widget that you can associate with a data widget in the template builder. It generates automated text about the associated data, based on a prompt and other language settings.
NinjaNote: We recommend a testing period to refine the appended prompt and adjust the settings to achieve desired outcomes. Before integrating this widget into all your reports, test it with a small subset (10-15 reports) to understand its behavior and writing style.
This tool uses OpenAI technology to generate responses based on the provided prompt, settings and associated data. However, the AI may sometimes produce incorrect or unexpected results, which can be beyond our control. We recommend continued review of the outputs and refining the prompt and settings. This tool is designed to save a significant amount of time in the reporting process, but not completely replace all human touch.
Functionality Details:
- By default, the AI Insights Generator Widget is powered by OpenAI's GPT-5.2 Instant, however other models can be selected while in your widget's settings from the following models:
- GPT-5.4 Thinking – OpenAI's latest reasoning model, ideal for deeper analysis and complex data interpretation
- GPT-5.2 Thinking – Best for complex analysis requiring deeper reasoning
- GPT-5.2 Instant (Default) – Fast, high-quality summaries for most use cases
- GPT-5 Mini – Lightweight model for simpler reports
- GPT-5 Nano – Most efficient option for basic summaries
Selecting a ModelGPT-5.2 Instant remains the default model for all new and existing widgets. To use GPT-5.4 Thinking, select it from the Model dropdown in your widget settings. Your choice is saved per widget, so you can use different models on different widgets in the same template.
Automatic Model UpgradeIf you previously had an older AI model selected (such as GPT-4.x or earlier), the system now automatically uses GPT-5.2 Instant when generating your insights. This happens seamlessly in the background—no manual changes needed. Your AI features will continue to work as expected, with improved results from the newer model.
For the latest information, check the following provider help documentation:
- Can be associated with an entire page of a template or from one specific Data Widget (table, chart, etc). A list of all the data widgets on that currently viewed page will be listed in the dropdown.
- This widget functions best in a static PDF and PPT Report format. In the future, we would like to improve its functionality in a Dashboard format (currently, you can expect inconsistent loading patterns when adjusting the filters and date range in a Dashboard setting).
- The AI Insights Generator guesses how many words it thinks will fit based on the current font size, widget size, and other factors. The AI will provide a response with fewer words than this guess in order to fit the response in the given space.
- If something about the Data widget changes (change in dims/mets), then the AI Insights Generator will reload w/ adjusted text.
- Tokens: Every time we hit the API / every time we actually request the AI to give us a response, a certain number of tokens is used up on both the request and the response. Tokens equate to a certain cost (to NinjaCat).
- The following token limitations are in place at this time; once hit, an error will occur within the AI Insights Generator Widget or prevent you from running successful reports with the AI Insights Generator Widget included until the next day's allotment of tokens is available. Tokens are determined by both the prompt and the data. So if the widget is analyzing a very large amount of data then the widget might run out of tokens, even with a small prompt:
- Individual Requests to the API - allow up to 128K tokens. If exceeded, an error will be returned (this is a ChatGPT-imposed limit, that we don't expect to see hit).
- Individual Responses from the API - allow up to 4,096 tokens on output (this is a ChatGPT-imposed limit, that we don't expect to see hit)
- Per day limit - Up to 1 million tokens per day per agency - this is the limit that we could expect to see hit, especially when the widget is scaled out to many reports. We are still learning about the avg number of tokens an individual report could consume, which depends on the number of tokens needed for an individual widget and how many AI widgets exist in one report.
- The widget will always analyze up to 100 rows of data, determined by how many rows of data are displayed in the associated data widget
- Caching - The cache works by looking at the settings of the AI Insights Generator and the data being analyzed. If those exact settings and data have been requested in the past hour, then the cache is used. This prevents more tokens from being used while a user is simply reloading the entire template they're working in for other reasons outside manipulating the AI Insights Generator or the Data Widget that it is associated with.
- At this time, editing the text generated only possible while adding notes to a generated report from the Reports List Action Menu.
How to add:
1. Access the Ninjacat Template Builder
2. Select the desired template page
3. Click to open the Typography section of the Widget Browser near the right
4. Click on the AI Insights Generator Icon to insert a new AI Insights Generation Widget
5. Select whether you would like insights generated for all widgets within the current page of your Template, or a specific Widget
- If using a specific Widget to generate your insights, you can either select the widget from the Selected Widget dropdown, or click the "Pick Widget from Page" button to visually pick a data widget directly on the canvas. Non-data widgets are grayed out during picker mode so you can only select valid sources.
- Once a widget is selected, click the eye icon next to the dropdown to quickly jump to that widget on the canvas for review.
Functional Configuration:
- Widget - Select the data widget to generate insight. You can choose from the dropdown or use the "Pick Widget from Page" button to visually select a widget on the canvas. Use the eye icon next to the dropdown to navigate to the currently selected widget.
- Prompt - You're able to recommend edits to the system default prompt:
- Ex: "As an advertiser analyst, review provided data and come up with important insights about the performance data. Do not return the provided data as insights, but rather provide insights about the data. Recommended Changes should start with the phrase: "I recommend" e.g. "I recommend limit your response to 1,000 characters."
- Tone of Voice - Select the style of communication
- AI Model - Select which AI Model you would like to use to generate your insights
- Analyze Performance - You can use the toggles to add the desired item to the result
- Identify Performance Factors (Toggle)
- Recommended Changes (Toggle)
- Predict Future Performance (Toggle)
- Regenerate - Regenerate the insights created by the currently selected AI Insights Generator Widget
- Advanced Settings
-
Creativity - Lower values produce more focused outputs, while higher values increase creativity.
-
Language Diversity - Reduces repetition by penalizing frequent words. Higher values encourage more diverse language patterns.
-
Topic Diversity - Encourages exploration of different topics. Higher values promote more diverse subject matter in the response.
-
Edit AI Text In Reports
1. Access the "Add Notes" feature in a generated report
2. Select desired AI-generated text
3. Use standard text editing tools presented to edit text
More info on how to annotate generated reports can be found in this video on the Reports List Action Menu
Formatting Your Widgets
A handy tip is to set your Global Settings up before you start your template. That way, as you work, you can see what your defaults look like, and modify them as you go along. We'd always recommend making your Global Setting changes first, and then modifying individual text or header widgets afterward.
There are 2 ways to modify Text or Header widgets. By double-clicking on the text or header, you can modify it to read whatever you like, and the only limit to how much text you can include on your page is real estate - ie the available space on the page.
Option 1: Modifying the widget formatting via Global Settings:
- Click on the globe icon (fourth of four icons in the top right) in the inspector
- Click on the tab labeled 'Styles'
- Scroll down to the 'Typography' subsection. From here you can change the default font type, weight, and size of the text used in all text widgets in your template. You can also change the alignment, vertical alignment, text color, and text box fill color.
- The next subsection you'll see is broken down into 6 sections H1 to H6. Each of these tabs represents a Header Style.
- In this section, you can modify the default settings to be used for each of the 6 preset Header styles individually.
Please be aware if you've already used the widget level formatting to change the text widget or header widget, the global settings level changes will not impact that particular widget.
Option 2: Using the in-page text formatting options.
- In a Cover Widget, Text, or Header Widget double-click on the text you'd like to reformat which will highlight it. This will open up a bar of formatting options directly at the top of the template editor.
- This allows you to format an individual section of the text or header to something other than the default. You have the same options as in the Global Settings, but with the addition of the options to Italicize, Underline or Strike Through the highlighted text.
In the formatting toolbar, you also have the options to:
- Highlight
- Change the Paragraph Style (these are defined in style at the Global Settings level in the Typography section)
- Realign the text
- Include an ordered (numbered) or unordered (bullet-pointed) list
- Remove all formatting
- Include a table
- Insert a Vertical Line.
If you reformat a section of text using the in template builder formatting tools, and then delete all of the text from that widget, the settings will revert to the defaults, as found in the Global Settings.
Updated 20 days ago