← Docs

Skate events in your app

Skate tells your own code what it did, so you can send it to your analytics or update your UI.

js
const stop = Skate.on('task_ended', e => {
  analytics.track('skate_task', { state: e.state, met: e.met });
});
// later: stop();

Skate.on('*', e => console.log(e.event, e));          // every event, with its name
window.addEventListener('skate:task-ended', e => {});  // the same events as DOM events

If your code runs before the widget loads, wait for skate:ready or queue with window.SkateQueue.

What an event carries

Ids, states and counts. Never what the visitor typed, never page text. A task event says that a task started, or how it ended. It does not say what was asked.

EventDetail
ready— (fires once the widget is fully set up: a call to Skate.open() from a ready listener also fires open)
open, close— (the panel)
task_startedtask, mode (show or do)
task_endedtask, state (for example confirmed_done, guided_done, answered, failed, declined), met (true when the request was met)
approval_requestedtask (a change waits for the person to approve it)
handofftask (sent to a person)
checklist_tickeditem, how (skate_done, skate_guided, observed_request)
item_shown, item_clicked, item_dismisseditem, kind (banner, modal, news, survey)
survey_answeredsurvey, complete
news_unreadcount
stuckreason (rage_clicks, failed_saves or idle_form)
help_opened—
help_searchresults (how many articles matched)

state: confirmed_done means Skate did it and checked the result on the page. guided_done means the person did it with Skate pointing. Both are checked; nothing else counts as done.

Server-side

To get the same events on your server, with a signature, add a webhook in Settings › Integrations. Webhooks are sent by Skate’s server, so they arrive even when the visitor closes the tab.

Try it on your own site.

Sign up free: 500 task credits for your own site, and 10 requests a day to try Skate on any site.

Sign up free