Chatonio

This is taking longer than usual.

Conversion goals: track sign-ups, orders and chats

August 23, 2026 ViewsChannels & Integrations

What goals are

A goal is a result you want visits to end in — a completed sign-up, an order confirmation page, a submitted form, a started chat. Once a goal is defined, Insights counts how many visits reached it (completions) and what share of all visits that is (conversion rate). Each goal counts at most once per visit: if a visitor triggers it several times in one visit, that is still one conversion. After 30 minutes of inactivity a new visit begins and can convert again.

Goals live in the Goals panel at the bottom of the Insights Overview tab. Clicking any goal row filters the entire dashboard — every panel, chart and KPI — down to the visits that completed that goal. Goals work entirely on their own: you do not need Google Analytics, Google Tag Manager or any other tool.

What you need

  • A plan that includes Insights (Pro or Ultimate).
  • The web chat widget installed on your site — goals are measured on the pages where the widget script runs, even on pages where you have hidden the chat launcher.
  • To create or edit goals you need the admin or manager role on the project. Operators can see the Goals panel and its numbers but cannot change goals.

Creating a goal

  • Open Insights and scroll to the Goals panel, then click Manage.
  • Click Add goal, give it a name, and choose the type: Page visit (URL) or Custom event. The type cannot be changed later — delete and re-create instead.
  • Save. The goal appears in the panel immediately (URL goals also show past conversions right away — see below). You can deactivate a goal at any time to stop counting without losing its history; deleting an event goal permanently removes its recorded conversions.

A project can have up to 30 goals of its own, plus the built-in ones.

Page visit (URL) goals

A URL goal converts when the visitor opens a page whose path matches your pattern. Two wildcards are supported: * matches one path segment, ** matches anything. Matching is against the path only (query strings like ?utm_source=… are ignored) and is case-sensitive.

Examples:

  • /thank-you — exactly the thank-you page, a classic "form submitted" goal.
  • /order/*/complete — an order confirmation with an order id in the middle: matches /order/8421/complete but not /order/8421/cancel.
  • /signup/** — any page under /signup/, e.g. /signup/step-2 and /signup/done.

URL goals are retroactive: they are evaluated against the page-view history you have already collected, so a goal you create today immediately shows conversions for roughly the past 90 days.

Custom event goals

Use an event goal when the conversion has no page of its own — a button click, a purchase in a single-page app, an in-page form. Create the goal with an event key (lowercase letters, numbers and _ . -, up to 64 characters), then fire that key from your site’s code with one line:

chatonio('track', 'signup_completed')

Call it at the moment the action actually succeeds. Examples:

  • Counting clicks on a sign-up button: document.querySelector('#signup-btn').addEventListener('click', function () { chatonio('track', 'signup_clicked'); })
  • A single-page-app checkout — in your payment success handler: chatonio('track', 'order_completed')
  • A newsletter form — after the subscribe request returns OK: chatonio('track', 'newsletter_subscribed')

The key must match the goal’s key exactly, otherwise nothing is recorded. If your code can run before the chat widget script has loaded, add this one-line stub above it so early calls are queued: window.chatonio=window.chatonio||function(){(window.chatonio.q=window.chatonio.q||[]).push(arguments)}

Testing your goal

  • Perform the action on your live site, then open Goals → Manage: each event goal shows when its event was last received. "No events received yet" after a test almost always means the key in your code doesn’t match the goal’s key.
  • Open the browser console while testing — the widget warns about invalid event keys instead of silently dropping them.
  • Automated browsers and bots are ignored, and the widget preview inside the Chatonio dashboard never records goals (it logs to the console instead), so neither pollutes your numbers.

Built-in goals

Some goals track themselves and appear automatically alongside your own:

  • Started chat — a visit in which the visitor began a conversation.
  • One goal per on-site popup that captures leads.
  • One goal per proactive chat message, counting visits where the greeting turned into a real conversation.

The Started chat goal is the quickest way to see the value of the chat itself. Worked example: say your /order/*/complete goal shows a 3% conversion rate overall. Click the Started chat row — the whole dashboard now shows only visits that included a chat, and the order goal’s rate is recalculated for those visits, e.g. 11%. Clear the filter to compare. That difference is the sales effect of talking to your visitors.

Reading the numbers

  • Completions — visits that completed the goal (once per visit).
  • CR — completions divided by the visits currently in view. Both numbers respect every active filter, so you can ask things like "how well do mobile visitors from paid campaigns convert".
  • The Goal completions KPI tile at the top of the dashboard shows the total across all goals and can be graphed over time like any other metric, and exported as CSV.
  • History: event and chat goals keep about a year of data; URL goals look back over the page-view history window of roughly 90 days.

Google Analytics / Tag Manager (optional)

To be clear: goals require no Google products. But if your site already runs Google Tag Manager, the widget automatically pushes chat events into the dataLayer so you can reuse them in GA4 funnels and ads audiences: chatonio_chat_started, chatonio_goal, chatonio_lead_captured, chatonio_proactive_engaged. In GTM create a Custom Event trigger for chatonio_chat_started, attach a GA4 Event tag to it, and started chats become a normal GA4 event. The events carry ids only — never the visitor’s email or message content.

Troubleshooting

  • An event goal stays at zero — check the key spelling (it is case-normalized to lowercase), that the goal is active, and that the widget script is actually installed on the page firing the event.
  • A URL goal stays at zero — open the Pages panel and find the real path of the target page, then check your pattern against it; remember matching is case-sensitive and ignores query strings.
  • Conversions look low — goals count once per visit, not per action, and visits from bots and automated browsers are excluded.

Was this article helpful?