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

# Chatbot Logs

> Inspect and debug every tool call your chatbot makes — MCP servers, custom webhook tools, and built-in tools.

# Chatbot Logs

When your chatbot answers a visitor, it often calls **tools** behind the scenes — your [MCP servers](/developer-guide/mcp-server), [custom webhook tools](/user-guide/custom-tools), and built-in tools (forms, scheduling, knowledge lookups). The **Log** page records every one of those calls so you can see exactly what your chatbot did, spot failures, and troubleshoot.

## Open the Log page

1. Go to your **Dashboard** and select a website.
2. In the left sidebar, expand **Chatbot** (under the Chatbot section) and click **Log**.

You can also press **⌘K** (macOS) or **Ctrl K** (Windows) to open the dashboard search and type "Log".

## What each row shows

The list shows one row per tool call:

* **MCP tool name** — the tool that was invoked (for example `search_orders` or `bubblav_search_knowledge`).
* **Status** — **Succeeded** (green) or **Failed** (red).
* **Sent at** — when the call was made, shown in **your browser's timezone** (no manual conversion needed).

Failed rows also show a one-line preview of the error so problems are easy to spot at a glance.

## Filter the list

* **Status** — *All statuses* (default), *Succeeded*, or *Failed*. Filter to **Failed** to jump straight to problems.
* **Date range** — click the calendar button to pick a preset (Today, Yesterday, This Week, This Month, Last Month, Last 3 Months, This Year, Last Year, **All Time**) or select a custom range on the two-month calendar and click **Apply**.

The list paginates 50 calls at a time, newest first.

## Inspect a single call

Click any row to open a detail panel with everything about that call:

* **Tool** — the full tool name.
* **Arguments** — the arguments your chatbot sent to the tool, as JSON. Any field that looks like a secret (tokens, keys, passwords, headers) is **masked as `***`** before it is shown, so logs are safe to share when debugging.
* **Result** — a truncated preview of what the tool returned, plus the response size.
* **Error** — the full error message for failed calls (only shown when the call failed).
* **API Key** — the MCP API key used, if the call came through your MCP server (shown by name and prefix only).

## Debugging workflow

When a tool isn't working for your visitors:

1. Open **Chatbot → Log** and set **Status** to **Failed** (and a date range that covers the issue).
2. Open the most recent failed call.
3. Read the **Error** message — it usually states the root cause (for example, an invalid endpoint URL, an authentication failure, a missing required argument, or the external service returning an error).
4. Check **Arguments** to confirm your chatbot sent what you expected. If an argument is wrong, review the tool's description/schema so the model knows the correct shape.
5. Check **Result** to see what the external system returned, if anything.

Common fixes:

* **401 / 403 / auth errors** → the tool's authentication (bearer token, HMAC secret, API key) is missing or invalid. Re-check the tool configuration.
* **404 / connection errors** → the webhook or MCP endpoint URL is wrong or unreachable.
* **400 / validation errors** → the arguments don't match what the external system expects. Tighten the tool's parameter schema.
* **Timeouts / 5xx** → the external system is slow or down; retry, or check its status.

After changing a tool's configuration, send a test message from the **Test** tab and re-check the Log to confirm the call now succeeds.

## Security & access

* Logs are scoped to **one website only** — you only ever see calls for the website you have open. There is no cross-website access.
* Access follows your website permissions: the **owner** and any **accepted team member** can view logs.
* Secret values inside call arguments are **redacted** before they leave the server.
