> For the complete documentation index, see [llms.txt](https://docs.limecall.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.limecall.com/callback/testing-your-widget.md).

# Testing your widget

Verify the whole path works before you rely on it.

Test the full path, not just whether the button appears.

## Before you start

Use a private/incognito window. A normal window may serve a cached page, and may remember that you dismissed the widget earlier.

Have a phone you can answer that is **not** the destination number — you need two distinct phones to test a callback properly, one for each leg.

## The checklist

**1. It appears.** Open your site. The widget should load within a few seconds, in the right corner, in your brand colour.

**2. It appears on the right pages.** Check a page that should show it and one that should not. See [Display rules](/callback/display-rules.md).

**3. It opens.** Click it. The panel should open showing the channels you enabled.

**4. The form validates.** Enter an obviously invalid phone number. It should be rejected rather than accepted and silently failed later.

**5. Your side rings.** Enter a real number and submit. Your configured destination should ring within a few seconds.

**6. The visitor side rings.** Answer your side. The number you entered should then ring.

**7. Both sides can hear each other.** Speak on both. One-way audio usually means a browser microphone permission problem — see [Calls are not connecting](/troubleshooting/calls-not-connecting.md).

**8. It is recorded.** Hang up and open **Calls**. The call should be listed with its duration and, if recording is on, a playable recording.

**9. A lead was created.** Open **Leads**. A new lead should exist with the number and any fields you captured.

**10. Your alerts fired.** Check the channels you configured — email, Slack, SMS.

## Test the unhappy paths too

**Nobody answers your side.** Request a callback and let it ring out. Confirm your retry settings behave as configured and the request appears as a missed callback. See [Alerts & retry](/callback/alerts-and-retry.md).

**Outside business hours.** Temporarily set your business hours so you are closed, then reload the widget. Confirm it offers what you intended — scheduling, a message, or the AI. Set the hours back afterwards.

**On a phone.** Do the whole flow on a real mobile device. Check the panel is usable and the form is not pushed below the fold.

## Test calls and billing

Test calls consume the same minutes and allowances as real calls. Keep them short.

## If something fails

* Widget not appearing → [The widget is not showing](/troubleshooting/widget-not-showing.md)
* Calls not connecting → [Calls are not connecting](/troubleshooting/calls-not-connecting.md)
