Tool Builder for Excel

Overview

Enables you to create a standalone HTML web application in an AI tool (like ChatGPT, Claude, or Gemini) and then run it directly within your workbook. Your spreadsheet is the web server and database, there is no need to host it on a separate server. The web application creates tables in the workbook to store its data. Security becomes simple, if you share the workbook with someone they can use the web app. No need for separate authentication. Depending on your app design, it will even work offline.

Use it to build your own personalized Excel tools—whether you need a specialized calculator, a Kanban board, a data entry form, or a visual dashboard.

How It Works

The workflow is designed to be simple and AI-driven:

  1. Generate: Use an AI tool to write the code for you. We provide a versioned builder guide that tells the AI exactly how to build apps compatible with our platform.
  2. Paste: Copy the generated HTML/JavaScript code into the add-in editor.
  3. Run: Launch your app instantly. It runs directly in your workbook and stores data in the workbook as tables.

Getting Started

1. Installation

The add-in is deployed as an Office Content Add-in. Once installed from the store or your admin catalog, it will appear directly on your Excel canvas.

2. Your First App

When you first open the add-in, you’ll see a welcome screen with options to get started.

Option A: Try an Example Select the example app to see what’s possible immediately, you can always delete it later.

Option B: Create with AI 1. Click “Copy Guide”. This copies our latest technical guide to your clipboard. 2. Open your preferred AI tool (ChatGPT, Claude, etc.). 3. Paste the guide, then add your specific request. For example: > “Build a simple inventory management tool that tracks item names, quantities, and reorder levels.” 4. Copy the code the AI generates. 5. Back in Excel, click “Create New Tool”, paste the code, give it a name, and click “Create Tool”.

The Builder Guide

The key to success is the versioned builder guide at https://apps.boardflare.com/bf-guide-v1.txt. This text file contains the technical rules, API documentation, and HTML contract needed to build a working app. It ensures the app: - Uses the correct “Boardflare Bridge” (bf) API to talk to Excel. - Uses Bootstrap 5.3.8 consistently. - Adds a guide comment immediately above bf-view-v1.js so an LLM can fetch the latest guide when inspecting the generated app. - For table-backed apps, calls bf.getRows(...) after bf.ready(...) to hydrate initial state instead of relying on onSync alone. - Handles errors and edge cases correctly.

Always start a new AI chat session by pasting the guide first, or by telling the model to fetch https://apps.boardflare.com/bf-guide-v1.txt before generating code.

Managing Your Apps

Storage

Your apps are stored inside the Excel workbook file itself (in Document Settings). This means: - Portability: Your custom app code and data travel with the workbook. - Privacy: Nothing is stored on our servers.

Version History

We automatically save the last 3 versions of your app code in the workbook. If an edit breaks your app, you can easily restore a previous version via the History button in the editor or the settings menu.

Editing & Deleting

  • Edit: Click the settings gear icon or use the context menu to open the code editor.
  • Delete: Remove the current app if you no longer need it. This permanently deletes the code from the workbook settings.

API Reference (For Developers)

While the AI handles most coding, advanced users can write or tweak code manually. The app exposes a global window.bf object interaction with Excel tables.

Note: All table operations use a bf_ prefix for table names to avoid conflicts (e.g., a table named “expenses” in the app corresponds to bf_expenses in Excel).

createTable(name, options)

Creates an Excel table if it doesn’t exist. - name (string): The table name (e.g., “tasks”). - options (object): - columns (object): Column schema keyed by column name, for example { title: 'string', amount: 'number', paid: 'boolean' }. - seed (array of objects): Initial rows keyed by column name, for example [{ title: 'Rent', amount: 1200, paid: true }].

ready(options)

One-shot initialization for table-backed apps. - options (object): - tables (object): Table definitions keyed by table name, where each table uses the same columns object schema and seed row-object format as createTable(...). - onSync (function, optional): Sync handler called as onSync(tableName, rows). - After await bf.ready(...), call bf.getRows(...) to hydrate initial state. Keep onSync for later workbook or coauthor updates.

getRows(name, options)

Retrieves data from a table. - name (string): The table name. - options (object): limit and offset for pagination. - Returns an array of row objects. For table-backed apps, use this after await bf.ready(...) for initial hydration.

addRow(name, data)

Adds a new row to the table. - name (string): The table name. - data (object): Key-value pairs matching column names.

updateRow(name, rowId, updates)

Updates an existing row. - name (string): The table name. - rowId (string): The unique ID (_id) of the row to update. - updates (object): Fields to change.

deleteRow(name, rowId)

Deletes a row. - name (string): The table name. - rowId (string): The unique ID of the row.

onSync(callback)

Subscribes to real-time updates. - callback (function): Called as callback(tableName, rows) whenever the Excel table changes after initialization.

Troubleshooting

“App Failed to Load”

If your app crashes on start: 1. Check the Error State screen details. 2. Click “Copy Error” and paste it back to your AI assistant to ask for a fix.

“Table Not Found”

Ensure your app calls bf.createTable() or bf.ready({ tables: ... }) at startup. The builder guide covers this pattern.

Sync Issues

Changes in Excel are “debounced” (delayed by 300ms) to prevent performance issues. If you don’t see an update immediately, wait a moment. Also note that the bridge ignores changes made by the API itself to prevent infinite loops.