> ## Documentation Index
> Fetch the complete documentation index at: https://docs.msportal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Design reporting blocks with AI

> Create, review, save and publish reusable reporting blocks using your available portal data

Use **Reporting > Blocks** to design reusable metrics, charts and tables. Describe the question you want a block to answer, review its preview, then save and publish the version you want to use in reports and dashboards.

<Note>
  **Branch preview:** This guide describes the reporting changes under review. Availability depends on your organization's feature settings and your role. Verify the released interface before using these steps in production.
</Note>

## Before you start

* The AI block builder must be enabled for your organization.
* MSP staff need permission to create or edit reports, or reporting management access. Publishing, unpublishing and archiving require reporting management access. Client users cannot author blocks.
* AI must be available to your organization, with sufficient credits where required.
* Available datasets depend on your permissions, connected integrations and synchronized data. A block can only read data your account may access.

Select the intended companies before previewing. Choose **Report period** in the builder for date-based data. Current snapshots, such as some inventory data, are not changed by that period.

## Create and review a block

<Steps>
  <Step title="Open a new block">
    Open **Reporting**, select **Blocks**, then choose **New block**.
  </Step>

  <Step title="Describe the answer">
    Use **Design with AI** to request a figure, trend, comparison, chart or table. Include the measure, grouping and filters you need. For example: “Show open tickets by priority, with a separate overdue count.”

    The AI can check available data while designing the block. Its answer appears as a draft; sending a message does not save a block version.
  </Step>

  <Step title="Inspect the preview">
    Check the selected companies, period, labels, units and values. Use **Preview size** and **Fit check** to inspect the design at the sizes you intend to use. Ask for changes, or use the available edit controls.

    Keep missing data separate from a confirmed zero. If a preview reports a loading, access or incompatible-data problem, resolve it before relying on the result.
  </Step>

  <Step title="Save the version">
    Enter a clear **Name** and optional **Description**, then click **Save** or press Ctrl+S (Cmd+S on Mac). Wait for the saved-version confirmation. Each successful save creates a version in **History**.
  </Step>

  <Step title="Publish for reuse">
    With reporting management access, choose **Publish v…** after saving. Published blocks become available for placement in reports and dashboards. Saving another draft does not automatically publish that new version.
  </Step>
</Steps>

On a phone, switch between **Preview** and **Chat**. The preview controls wrap beneath **Name** and **Description**. The active preview appears before **Fit check**; scroll down, then swipe its sizes to reach the remaining options. Header actions are in the ellipsis menu.

<Tabs>
  <Tab title="Desktop builder">
    <Frame caption="Branch preview: a published service desk block in the MSP builder, scoped to a Demo company.">
      <img src="https://mintcdn.com/msportal/fyDV7kvMeBJusp3z/images/product/custom-block-builder-preview-desktop.png?fit=max&auto=format&n=fyDV7kvMeBJusp3z&q=85&s=55c6ef517b09544a6871dfdd814c21d4" alt="MSP AI block builder with a published service desk block, report period, preview size, Fit check, Design with AI and History controls" width="1280" height="853" data-path="images/product/custom-block-builder-preview-desktop.png" />
    </Frame>
  </Tab>

  <Tab title="Phone builder">
    <Frame caption="Branch preview: a service desk draft on a phone, with wrapped controls and the active preview above Fit check.">
      <img src="https://mintcdn.com/msportal/fyDV7kvMeBJusp3z/images/product/custom-block-builder-preview-mobile.png?fit=max&auto=format&n=fyDV7kvMeBJusp3z&q=85&s=b2b8a964d07bc6039ad60f49cc98c0da" alt="Phone AI block builder showing a service desk draft, Preview and Chat tabs, wrapped controls, and the active block preview" width="780" height="1688" style={{ maxWidth: "390px", width: "100%" }} data-path="images/product/custom-block-builder-preview-mobile.png" />
    </Frame>
  </Tab>
</Tabs>

## Use a published block

In a report or dashboard editor, open **Custom blocks** in the block palette or library and choose the published block. Only blocks whose data you may access are shown.

New placements use the published version available when you add them. In a placed block's edit controls, check **Version** before sharing the result. **Update to version …** applies a newer published design to that placement; the version selector also lets you choose an earlier available version.

## Complete tables and ranked highlights

Describe which kind of table you need when asking the AI to design a block.

| Need | What to request and review |
| - | - |
| A complete record list | Ask for every matching record and the required columns. Use **View records** to browse the records loaded for that block, including columns that do not fit the card. |
| A ranked summary | Ask for a ranking or top results. Ranked highlights may show only the rows that fit; the heading includes the displayed count. Treat them as highlights rather than a full inventory. |

**View records** opens a searchable, paginated table of the loaded records. Its **Loaded … of … matching records** count distinguishes what has loaded from what matches the source query. Browsing another page in this dialog does not load additional records beyond the source's limit.

If more records match than the source can load, narrow the block's filters, reporting period or company selection. A larger card can reveal more loaded rows, but it cannot retrieve records omitted by the source limit.

<Warning>
  A complete table can be exported only when its card shows every required record and column. If the card omits content or the source is incomplete, MSPortal reports that the card cannot be exported as a complete table. Opening **View records** does not make the card's export complete. Review the final report pages before sharing a PDF.
</Warning>

<Tabs>
  <Tab title="Desktop records">
    <Frame caption="Branch preview with illustrative data: View records shows the loaded rows and warns when the source is incomplete.">
      <img src="https://mintcdn.com/msportal/fyDV7kvMeBJusp3z/images/product/custom-block-records-preview-desktop.png?fit=max&auto=format&n=fyDV7kvMeBJusp3z&q=85&s=f87f577332a33b3ce4e25061df9d271f" alt="Example View records dialog with every device column, a loaded-versus-matching count, and incomplete-source and export warnings" width="1280" height="853" data-path="images/product/custom-block-records-preview-desktop.png" />
    </Frame>
  </Tab>

  <Tab title="Phone records">
    <Frame caption="Branch preview with illustrative data: records use stacked fields on a phone, with the same source-limit warning.">
      <img src="https://mintcdn.com/msportal/fyDV7kvMeBJusp3z/images/product/custom-block-records-preview-mobile.png?fit=max&auto=format&n=fyDV7kvMeBJusp3z&q=85&s=0fd26877baf85d6c245e77cf919e70ae" alt="Example phone View records dialog showing stacked device fields and warnings about missing source records and incomplete export" width="780" height="1688" style={{ maxWidth: "390px", width: "100%" }} data-path="images/product/custom-block-records-preview-mobile.png" />
    </Frame>
  </Tab>
</Tabs>

## Revisit a saved block

Open a block from the **Blocks** library using **Open in builder**. **History** lists saved versions newest first:

* **Preview** shows an older saved design without replacing the current draft. Use **Back to draft** to return.
* **Restore** saves a copy of that version as a new latest version. This is a saved action, separate from moving between unsaved drafts.
* Publishing a saved version chooses which version is available for new placements. Review the version selected on an existing report or dashboard block; placements can retain a specific version until you change it.

Use **Previous draft** and **Next draft** for changes within the current editing session. They are separate from saved **History**.

Reporting managers can **Archive** a block. Find it with the **Archived** library filter and choose **Restore** to make it active again. Archiving is not a way to remove every existing placement; review the reports and dashboards that already use it.

## Troubleshooting

| Symptom | What to check |
| - | - |
| Blocks or New block is missing | Feature availability, staff identity and reporting permissions. |
| The AI cannot complete the design | AI availability, credits, the requested dataset and its permitted fields. Rephrase the request; verify the draft before saving. |
| Preview data is empty or unavailable | Company selection, dates, filters, source permissions and integration synchronization. Use **Try again** after correcting the cause. |
| Saving reports a conflict | Another saved version is newer. Use **Reload**, review the latest version and compare it with your unsaved draft before saving again. |
| A restored version cannot be loaded | Follow the reload warning rather than assuming the displayed draft is the restored version. |
| A table cannot export completely | Check loaded-versus-matching counts, required columns and card size. Narrow the source or adjust the report layout. |

## Related guides

* [Reporting](/user-guides/reporting/index)
* [Present reports as slides](/user-guides/reporting/present-reports)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.