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

# BI Tile Components

Tight's Business Intelligence Embedded experience makes it easy for you to provide your users with an easily digestible overview of their business's key performance indicators. It also serves as a great way to onboard new users, as it gives them a glimpse of what kind of business intelligence they will receive by simply following a few quick onboarding steps.

## 1. How it works

Take a look at the various [Business Intelligence Tiles](/v5.0/embeddable-ui/business-intelligence-tiles/overview) available to you via the Tight Embedded experience, including:

1. [Profit & Loss tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#3-profit--loss-tile)
2. [Cash Flow tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#4-cash-flow-tile)
3. [Invoice tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#5-invoice-tile)
4. [Expense tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#6-expense-tile)
5. [Income tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#7-income-tile)
6. [Tax tile](/v5.0/embeddable-ui/business-intelligence-tiles/overview#8-tax-tile)

## 2. Initializing the Embedded Experience

To initialize the Tight Embedded experience in your project, follow the instructions on [Embedding Tight's white-labelled UI](/v5.0/getting-started/quickstart/embedded-ui#1-embedding-hurdlrs-white-labelled-ui-hurdlr-sdk).

## 3. Adding the Business Intelligence Tiles to your app

To render the Business Intelligence Tiles, you will need to provide the `elementId` parameter, which is the HTML `id` of the main `<div>` where you would like the Business Intelligence Tiles to render. When your user taps on your "Business Intelligence" or "Home" navigation CTA, you simply need to invoke the following line of javascript:

```javascript theme={null}
Hurdlr.renderScreen(elementId, 'biTiles', options);
```

## 4. Customizing the UI to match your branding

Tight's API team can quickly customize the UI to match your branding. Please follow the instructions on [Customizing the embedded UI to match your branding](/v5.0/getting-started/quickstart/embedded-ui#2-customizing-the-embedded-ui-to-match-your-branding).

## 5. Modifying the displayed tiles

If you'd like to alter or re-order the tiles being displayed, you can do so by populating a `biTiles` array within the `options` object as follows:

```javascript theme={null}
Hurdlr.renderScreen(elementId, 'biTiles', { biTiles: [Hurdlr.biTiles.profitLoss, Hurdlr.biTiles.cashFlow, Hurdlr.biTiles.invoice]});
```

The `tiles` array can contain any of the following values:

| Value                       | BI Tile Name  |
| :-------------------------- | :------------ |
| `Hurdlr.biTiles.profitLoss` | Profit & Loss |
| `Hurdlr.biTiles.cashFlow`   | Cash Flow     |
| `Hurdlr.biTiles.invoice`    | Invoices      |
| `Hurdlr.biTiles.expense`    | Expenses      |
| `Hurdlr.biTiles.revenue`    | Income        |
| `Hurdlr.biTiles.tax`        | Taxes         |

## 6. Using the tiles to onboard new users

The Business Intelligence tiles give users a glimpse into what kind of intelligence they will receive once they complete a few simple onboarding steps, including linking a bank account and setting up their tax profile. To encourage your users to fully onboard, you should include the optional `showOnboarding` parameter in the `options` object as follows:

```javascript theme={null}
Hurdlr.renderScreen(elementId, 'biTiles', { showOnboarding: true, biTiles: [Hurdlr.biTiles.profitLoss, Hurdlr.biTiles.cashFlow, Hurdlr.biTiles.invoice]});
```

The above code will display applicable banners encouraging your users to complete the following key onboarding steps:

1. Bank account linking
2. Invoice setup, including ability to accept credit cards
3. Tax profile setup

<img src="https://mintcdn.com/tight-7c882d74/Wf-_-tBNZrYWdgZf/v5.0/images/b356a9c-Part_II_C_1.png?fit=max&auto=format&n=Wf-_-tBNZrYWdgZf&q=85&s=988cff68670262076439e324023de036" alt="b356a9c-Part_II_C_1.png" width="1253" height="708" data-path="v5.0/images/b356a9c-Part_II_C_1.png" />

> 📘 showOnboarding: true
>
> Please note that the Tight Embedded experience is smart enough to determine whether the given user has already completed onboarding. Therefore, if you want to utilize the BI Tiles onboarding in general, you can always set this flag to true, and the Tight Embedded experience will decide whether the given user should be shown the onboarding UX based on whether the given user needs it. If your user completes onboarding, you do not need to set the `showOnboarding` flag to false.

## 7. Routing the tiles

In order to control where your user is routed when they click on a BI tile, you will want to take advantage of the Tight Embedded experience's `registerBITileListener` functionality. By registering a listener, the Tight Embedded experience will invoke the callback function you provide whenever a CTA is pressed by your user, so that you can route the user to the most relevant location within your app.

To register the listener, simply add the following line of JS to be ran once after `Hurdlr.init({...})`:

```javascript theme={null}
Hurdlr.registerBITileListener(myBITileCallback);
```

Whenever a user presses a Business Intelligence CTA in Tight's UI, `myBITileCallback` will be invoked, with a JSON object as the single argument, containing the following attributes:

| Field | Description                                                      | Format                                                                                                                                                                                                                                                 |
| ----- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| type  | Type of Business Intelligence CTA that was pressed by your user. | Must be one of the following enumerations: `Hurdlr.PROFIT_LOSS_TILE`,  <br />`Hurdlr.CASH_FLOW_TILE`,  <br />`Hurdlr.INVOICE_TILE`,  <br />`Hurdlr.EXPENSE_TILE`,  <br />`Hurdlr.REVENUE_TILE`,  <br />`Hurdlr.TAX_TILE`,  <br />`Hurdlr.LINK_ACCOUNT` |

An example of the arguments passed to `myBITileCallback` when a user presses on the Profit & Loss tile is shown below:

```json theme={null}
{
  type: "PROFIT_LOSS_TILE", // compare to Hurdlr.PROFIT_LOSS_TILE
}
```

For each of the available BI tile types, we recommend routing your user as follows:

| Type                      | Ideal Routing                                                                                 |
| :------------------------ | :-------------------------------------------------------------------------------------------- |
| Hurdlr.PROFIT\_LOSS\_TILE | [Profit & Loss Report](/v5.0/embeddable-ui/financial-statements/profit-and-loss-component)    |
| Hurdlr.CASH\_FLOW\_TILE   | [Cash Flow Statement](/v5.0/embeddable-ui/financial-statements/cash-flow-statement-component) |
| Hurdlr.INVOICE\_TILE      | [Invoice Dashboard](/v5.0/products/invoicing/embeddable-invoice-dashboard)                    |
| Hurdlr.EXPENSE\_TILE      | [Expense Dashboard](/v5.0/embeddable-ui/bank-transactions/expense-dashboard)                  |
| Hurdlr.REVENUE\_TILE      | [Income Dashboard](/v5.0/embeddable-ui/bank-transactions/income-dashboard)                    |
| Hurdlr.TAX\_TILE          | [Tax Dashboard](/v5.0/products/taxes/tax-estimates/embeddable-tax-dashboard)                  |
| Hurdlr.LINK\_ACCOUNT      | [Plaid Link](/v5.0/integrations/banking/plaid/integrating-plaid#4-plaid-link-user-interface)  |

Contact us directly at [api@tight.com](mailto:api@tight.com) should you need any help understanding how to use BI Tile listeners with the Tight Embedded experience.

## 8. Displaying tile tooltips

To give your users more context around the Business Intelligence Tiles, you can enable tooltips. Tooltips improve usability by providing quick explanations without cluttering the interface and help users understand tile data. To display them, you can include the optional `showTileTooltips` parameter in the `options` object as follows:

```Text JavaScript theme={null}
Hurdlr.renderScreen(elementId, 'biTiles', { showTileTooltips: true, showOnboarding: true, biTiles: [Hurdlr.biTiles.profitLoss, Hurdlr.biTiles.cashFlow, Hurdlr.biTiles.invoice]});
```

The above code will add tooltips to each of the available tiles. See an example of each tooltip text below:

<img src="https://mintcdn.com/tight-7c882d74/Wf-_-tBNZrYWdgZf/v5.0/images/fae2f5a869c2d971eb8c1186ea2f5c4e3461d225f1b78b41148449fbe7cd09bf-image.png?fit=max&auto=format&n=Wf-_-tBNZrYWdgZf&q=85&s=b20c3c0a96ee6e5c20aabad12f11bf8e" alt="" width="370" height="359" data-path="v5.0/images/fae2f5a869c2d971eb8c1186ea2f5c4e3461d225f1b78b41148449fbe7cd09bf-image.png" />

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/v5.0/images/06c1b5ae39a415ae1f466b69c8d7b54dc08931c108423ee622fb2649a7b4d970-image.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=65aad52350c81e6a5ddc969fdacad6cb" alt="" width="370" height="359" data-path="v5.0/images/06c1b5ae39a415ae1f466b69c8d7b54dc08931c108423ee622fb2649a7b4d970-image.png" />

<img src="https://mintcdn.com/tight-7c882d74/Wf-_-tBNZrYWdgZf/v5.0/images/5b1bf8fb57df7791994566baf8c9bf6d8820b730ee25a6f5bc917fb863786748-image.png?fit=max&auto=format&n=Wf-_-tBNZrYWdgZf&q=85&s=277965ac3c56265cdd9dd249e2019aed" alt="" width="370" height="359" data-path="v5.0/images/5b1bf8fb57df7791994566baf8c9bf6d8820b730ee25a6f5bc917fb863786748-image.png" />

<img src="https://mintcdn.com/tight-7c882d74/Wf-_-tBNZrYWdgZf/v5.0/images/b778bf4f08b77458b3d0d01b2447f900ef6ffe0de2be1fecb9c057ff14d8f511-image.png?fit=max&auto=format&n=Wf-_-tBNZrYWdgZf&q=85&s=66a74d00d858fcf4b12c2750ef244bcd" alt="" width="406" height="359" data-path="v5.0/images/b778bf4f08b77458b3d0d01b2447f900ef6ffe0de2be1fecb9c057ff14d8f511-image.png" />

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/v5.0/images/263dc1a2116df939c0154fb35e07010f8d5747c9244292d03cc466b46ca005b0-image.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=61cdaf7e1b10c37f1dcc7dc14cde6f01" alt="" width="416" height="359" data-path="v5.0/images/263dc1a2116df939c0154fb35e07010f8d5747c9244292d03cc466b46ca005b0-image.png" />

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/v5.0/images/4eba378fb743b3d6028a7aab31087ccefe48d74394979e0a4c44d9d779641adc-image.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=19a3d4fa74313702db603366bc343265" alt="" width="397" height="359" data-path="v5.0/images/4eba378fb743b3d6028a7aab31087ccefe48d74394979e0a4c44d9d779641adc-image.png" />
