# Can an AI assistant build a Fishbowl BI Report?

> Fishbowl's BI Report module shows web reports inside Fishbowl with no plugin to install. With ILC MCP, an AI assistant builds a BI Report the same way it builds a CloudPage report, previews it on your data, and installs it when you say so.

Fishbowl's BI Report module is where CloudPages started. A BI Report is a web page that runs inside Fishbowl, and seeing what those pages could do is what got us building CloudPages, which go further with printing, scanning and tools. Fishbowl ships the BI Report module itself, so there's no plugin to install. For teams that want to keep it that way, ILC MCP lets an AI assistant build BI Reports too.

## How it works

<figure>
<svg class="bihw" viewBox="0 0 720 432" role="img" aria-label="Five steps: you describe the report, the AI drafts it the same way as a CloudPage report, you preview it on your Fishbowl data, the AI asks before installing, and the report opens in Fishbowl's BI Report module as version 1." style="display:block;width:100%;height:auto;border-radius:16px;font-family:'Hanken Grotesk',system-ui,sans-serif"><style>@keyframes bihw-r0{0%,7%{opacity:.28}10%,92%{opacity:1}100%{opacity:.28}}@keyframes bihw-c0{0%,12%{opacity:0;transform:scale(.85)}15%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}.bihw .r0{animation:bihw-r0 14s infinite}.bihw .c0{animation:bihw-c0 14s infinite;transform-box:fill-box;transform-origin:center}@keyframes bihw-r1{0%,21%{opacity:.28}24%,92%{opacity:1}100%{opacity:.28}}@keyframes bihw-c1{0%,26%{opacity:0;transform:scale(.85)}29%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}.bihw .r1{animation:bihw-r1 14s infinite}.bihw .c1{animation:bihw-c1 14s infinite;transform-box:fill-box;transform-origin:center}@keyframes bihw-r2{0%,36%{opacity:.28}39%,92%{opacity:1}100%{opacity:.28}}@keyframes bihw-c2{0%,41%{opacity:0;transform:scale(.85)}44%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}.bihw .r2{animation:bihw-r2 14s infinite}.bihw .c2{animation:bihw-c2 14s infinite;transform-box:fill-box;transform-origin:center}@keyframes bihw-r3{0%,50%{opacity:.28}53%,92%{opacity:1}100%{opacity:.28}}@keyframes bihw-c3{0%,55%{opacity:0;transform:scale(.85)}58%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}.bihw .r3{animation:bihw-r3 14s infinite}.bihw .c3{animation:bihw-c3 14s infinite;transform-box:fill-box;transform-origin:center}@keyframes bihw-r4{0%,64%{opacity:.28}67%,92%{opacity:1}100%{opacity:.28}}@keyframes bihw-c4{0%,69%{opacity:0;transform:scale(.85)}72%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}.bihw .r4{animation:bihw-r4 14s infinite}.bihw .c4{animation:bihw-c4 14s infinite;transform-box:fill-box;transform-origin:center}@media (prefers-reduced-motion:reduce){.bihw g{animation:none!important;opacity:1!important;transform:none!important}}</style><rect width="720" height="432" rx="16" fill="#1C2045"/><g class="r0"><rect x="24" y="24" width="672" height="64" rx="12" fill="#fff"/><circle cx="60" cy="56" r="17" fill="#FAB435"/><text x="60" y="63" text-anchor="middle" font-size="19" font-weight="800" fill="#1C2045">1</text><text x="92" y="63" font-size="20" font-weight="700" fill="#1C2045">You describe the report</text></g><g class="c0"><rect x="442" y="40" width="230" height="32" rx="16" fill="#EEF0F7"/><text x="557.0" y="61" text-anchor="middle" font-size="14.5" font-weight="800" fill="#1C2045">Open orders by customer</text></g><g class="r1"><rect x="24" y="104" width="672" height="64" rx="12" fill="#fff"/><circle cx="60" cy="136" r="17" fill="#FAB435"/><text x="60" y="143" text-anchor="middle" font-size="19" font-weight="800" fill="#1C2045">2</text><text x="92" y="143" font-size="20" font-weight="700" fill="#1C2045">Drafts it like a CloudPage</text></g><g class="c1"><rect x="552" y="120" width="120" height="32" rx="16" fill="#EEF0F7"/><text x="612.0" y="141" text-anchor="middle" font-size="14.5" font-weight="800" fill="#1C2045">Report only</text></g><g class="r2"><rect x="24" y="184" width="672" height="64" rx="12" fill="#fff"/><circle cx="60" cy="216" r="17" fill="#FAB435"/><text x="60" y="223" text-anchor="middle" font-size="19" font-weight="800" fill="#1C2045">3</text><text x="92" y="223" font-size="20" font-weight="700" fill="#1C2045">Previews it on your data</text></g><g class="c2"><rect x="552" y="200" width="120" height="32" rx="16" fill="#DDF1E5"/><text x="612.0" y="221" text-anchor="middle" font-size="14.5" font-weight="800" fill="#17603A">✓ 0 problems</text></g><g class="r3"><rect x="24" y="264" width="672" height="64" rx="12" fill="#fff"/><circle cx="60" cy="296" r="17" fill="#FAB435"/><text x="60" y="303" text-anchor="middle" font-size="19" font-weight="800" fill="#1C2045">4</text><text x="92" y="303" font-size="20" font-weight="700" fill="#1C2045">Asks before it installs</text></g><g class="c3"><rect x="442" y="280" width="230" height="32" rx="16" fill="#EEF0F7"/><text x="557.0" y="301" text-anchor="middle" font-size="14.5" font-weight="800" fill="#1C2045">“Install it?” · Yes</text></g><g class="r4"><rect x="24" y="344" width="672" height="64" rx="12" fill="#fff"/><circle cx="60" cy="376" r="17" fill="#FAB435"/><text x="60" y="383" text-anchor="middle" font-size="19" font-weight="800" fill="#1C2045">5</text><text x="92" y="383" font-size="20" font-weight="700" fill="#1C2045">Opens in BI Report</text></g><g class="c4"><rect x="442" y="360" width="230" height="32" rx="16" fill="#EEF0F7"/><text x="557.0" y="381" text-anchor="middle" font-size="14.5" font-weight="800" fill="#1C2045">BI Report module · v1</text></g></svg>
<figcaption>A BI Report is built the same way as a CloudPage report and installed into Fishbowl's BI Report module.</figcaption>
</figure>

1. **You describe the report.** For example, "open orders by customer, with the order count and value."
2. **The AI drafts it** the same way it drafts a [CloudPage report](/blog/ai-cloudpages-fishbowl): the query, the columns and the choices at the top of the report.
3. **You preview it on your data.** The preview reads your Fishbowl data and can't change it. If the preview reports a problem, the AI reads it and fixes it.
4. **The AI asks before it installs.** Drafting and installing are separate permissions.
5. **It opens in the BI Report module.** Each BI Report needs its own name. You choose which groups can see it in Fishbowl, the same way you do for any BI Report.

## Changing a report

<figure>
<svg class="bic" viewBox="0 0 720 432" role="img" aria-label="Fishbowl's BI Report module lists an Open Orders by Customer report. A person asks the AI to add each customer's next ship date. A Next ship column appears, the report is saved as version 2 with an option to roll back to version 1, and the groups that can see it stay the same." style="display:block;width:100%;height:auto;border-radius:16px;font-family:'Hanken Grotesk',system-ui,sans-serif"><style>
.bic .bub{animation:bic-b 12s infinite}
.bic .col{animation:bic-col 12s infinite}
.bic .ver{animation:bic-v 12s infinite}
.bic .acc{animation:bic-a 12s infinite}
@keyframes bic-b{0%,4%{opacity:0}9%,92%{opacity:1}100%{opacity:0}}
@keyframes bic-col{0%,24%{opacity:0}30%,92%{opacity:1}100%{opacity:0}}
@keyframes bic-v{0%,46%{opacity:0}51%,92%{opacity:1}100%{opacity:0}}
@keyframes bic-a{0%,60%{opacity:0}65%,92%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.bic *{animation:none!important}}
</style>
<rect width="720" height="432" rx="16" fill="#1C2045"/>
<g class="bub"><rect x="322" y="18" width="374" height="42" rx="14" fill="#fff"/><text x="509" y="45" text-anchor="middle" font-size="15.5" font-weight="700" fill="#1C2045">Add each customer's next ship date.</text></g>
<rect x="24" y="74" width="672" height="270" rx="12" fill="#fff"/>
<rect x="24" y="74" width="672" height="36" rx="12" fill="#F4F5FA"/><rect x="24" y="98" width="672" height="12" fill="#F4F5FA"/><line x1="24" y1="110" x2="696" y2="110" stroke="#E6E7EF"/>
<text x="42" y="97" font-size="13.5" font-weight="800" fill="#1C2045">BI Report</text>
<line x1="196" y1="110" x2="196" y2="344" stroke="#E6E7EF"/>
<g font-size="12.5" font-weight="700" fill="#6B6F86"><text x="40" y="138">Inventory Value</text><rect x="32" y="150" width="158" height="26" rx="6" fill="#FFF3D6"/><text x="38" y="168" fill="#1C2045" font-weight="800" font-size="11.5">Open Orders by Customer</text><text x="40" y="198">Sales Summary</text><text x="40" y="226">Vendor Spend</text></g>
<text x="214" y="142" font-size="18" font-weight="800" fill="#1C2045">Open Orders by Customer</text>
<g font-size="11.5" font-weight="800" fill="#6B6F86" letter-spacing=".05em"><text x="214" y="178">CUSTOMER</text><text x="420" y="178" text-anchor="end">ORDERS</text><text x="530" y="178" text-anchor="end">VALUE</text></g>
<g class="col"><rect x="548" y="160" width="134" height="174" rx="8" fill="#FFF3D6"/><text x="562" y="178" font-size="11.5" font-weight="800" fill="#8A5A00" letter-spacing=".05em">NEXT SHIP</text></g>
<g stroke="#E6E7EF"><line x1="210" y1="190" x2="682" y2="190"/><line x1="210" y1="226" x2="682" y2="226"/><line x1="210" y1="262" x2="682" y2="262"/><line x1="210" y1="298" x2="682" y2="298"/></g>
<g font-size="15" font-weight="600" fill="#1C2045">
<text x="214" y="214">Acme Supply</text><text x="420" y="214" text-anchor="end">3</text><text x="530" y="214" text-anchor="end">$8,420</text>
<text x="214" y="250">Bayside Marine</text><text x="420" y="250" text-anchor="end">2</text><text x="530" y="250" text-anchor="end">$5,180</text>
<text x="214" y="286">Cedar Labs</text><text x="420" y="286" text-anchor="end">4</text><text x="530" y="286" text-anchor="end">$11,060</text>
<text x="214" y="322">Delta Tools</text><text x="420" y="322" text-anchor="end">1</text><text x="530" y="322" text-anchor="end">$2,975</text>
<g class="col"><text x="562" y="214">Oct 24</text><text x="562" y="250">Oct 27</text><text x="562" y="286">Oct 22</text><text x="562" y="322">Nov 3</text></g>
</g>
<text x="24" y="384" font-size="13" font-weight="800" fill="#B8BCD6" letter-spacing=".08em">VERSIONS</text>
<rect x="120" y="363" width="44" height="30" rx="8" fill="#2E3466"/><text x="142" y="384" text-anchor="middle" font-size="15" font-weight="800" fill="#fff">v1</text>
<g class="ver"><text x="180" y="385" font-size="18" font-weight="800" fill="#B8BCD6">→</text>
<rect x="212" y="363" width="44" height="30" rx="8" fill="#FAB435"/><text x="234" y="384" text-anchor="middle" font-size="15" font-weight="800" fill="#1C2045">v2</text>
<text x="272" y="384" font-size="15" font-weight="700" fill="#fff">Next ship date added</text>
<text x="696" y="384" text-anchor="end" font-size="15" font-weight="800" fill="#7FD3A6">↺ Roll back to v1</text></g>
<g class="acc"><text x="24" y="418" font-size="13" font-weight="700" fill="#B8BCD6">Who can see it: Sales, Customer Service · unchanged</text></g>
</svg>
<figcaption>A change to a BI Report is saved as a new version, and the groups that can see it stay the same.</figcaption>
</figure>

Ask for a change and the AI opens the installed report, makes the change and previews it again. It edits the report you have rather than building a new one. Installing the change saves a new version, and the groups that could see the report still can. If the new version is wrong, the AI can roll back to an earlier one.

The AI can remove a BI Report too. It tells you which report it matched and waits for your yes. The report is saved to its history first, so it can be put back.

## Limits today

- BI Reports are reports. They can't print documents or labels, or save files. Those are [CloudPages](/blog/ai-cloudpages-fishbowl) or [Jasper reports](/blog/ai-jasper-reports-fishbowl).
- The preview runs in your browser. Open the report in Fishbowl after it's installed to check it there.

Building BI Reports is part of the Custom reports add-on for ILC MCP, for teams that need it.

## BI Report or CloudPage?

If your team only needs reports on screen and you'd rather not install anything in Fishbowl, use BI Reports. If you want printed documents, labels or a page that does more, use CloudPages. Your AI assistant builds both the same way.

If there's a report your team has been waiting on, [tell us what it should show](/contact).

**Related:**
- [Can an AI assistant build a Fishbowl report and install it?](/blog/ai-builds-fishbowl-reports)
- [Can an AI assistant build a Fishbowl CloudPage?](/blog/ai-cloudpages-fishbowl)
- [Why I probably won't write a report ever again](/blog/custom-reports-with-ilc-mcp)

---

*From Israel Lopez Consulting (ILC). Custom Fishbowl Inventory integrations and software, and Fishbowl experts since 2015. Written by Israel Lopez, published October 19, 2026. Questions about this topic, or want to reach the people who wrote it? Visit https://israellopezconsulting.com/contact*
