Which helpdesks does it work with?
Which helpdesks does it work with?
It needs no integration with your helpdesk at all — it runs in the browser and
attaches to markup — so the question is not which helpdesk you use but whether
you can reach the form. Two things have to be true:
- You can add a
<script>tag to the page the form is on. Zendesk Guide, Freshdesk portals, Salesforce Experience Cloud, Webflow, WordPress, Shopify and anything you host yourself all allow this. Some portals restrict custom JavaScript — Jira Service Management is the usual one — and there the deflector cannot be installed on the portal itself. - The form is not in a cross-origin iframe. No script on your page can read inside one, ours included. A third-party chat widget or an embedded form served from your vendor’s domain is out of reach; install the deflector inside that form’s own template instead, if the vendor allows it.
Can it ever stop someone filing a ticket?
Can it ever stop someone filing a ticket?
No, and that is the design constraint the whole implementation is built around.
Every failure path — network error, bad selector, an answer nobody wanted, a
request still in flight when the reader loses patience — ends with the form
submitting exactly as it would have if the script had never loaded.When the reader chooses to submit, the deflector re-fires their own event with
requestSubmit(), which runs the page’s validation and every submit listener on
it. Using submit() would skip both, which on an AJAX form means the ticket is
never created at all.Nothing happens when I press submit.
Nothing happens when I press submit.
In order of likelihood:
- The question is under 25 characters. By design. Turn on
data-debug-mode="true"— the console says so explicitly. - The wrong event. Start with
onSubmit; switch toonClickif your form does its work in a click handler and never fires submit. - A selector matched nothing. Debug mode names it.
- The form does not exist yet. The deflector waits 10s by default; raise
data-wait-for-elements-timeout, or-1to wait forever. - The form is rebuilt on hydration. Set
data-render-timeout="500".
The form submits twice.
The form submits twice.
The listener is on the wrong element for the event. A
submit listener on a
button never fires — submit is dispatched at the form — so the deflector’s
interception is skipped while its pass-through still runs.Either set data-submit-element-event-type="onClick" to match a button, or
leave the event on onSubmit and let the selector fall back to the form.Does the “Did this help?” vote change the deflection rate?
Does the “Did this help?” vote change the deflection rate?
No. The two measure different things and neither substitutes for the other: the
rate counts tickets avoided, the vote says whether the answer was any good. Only
a form submission counts against the rate.You want both. A confidently wrong answer avoids the ticket too.
What happens when there is no good answer?
What happens when there is no good answer?
The modal never opens and the ticket is filed. Nobody is shown a guess.Below the confidence threshold, the answer is withheld. When retrieval concludes
the corpus does not cover the question at all, the excerpts and the citations
are withheld from the model, so it cannot assemble a plausible answer out of
passages it was never given. And an answer whose claims are not supported by its
own sources has its confidence dropped to zero.All three appear in Activity as
low_confidence or no_answer — which is,
in practice, the most useful list of documentation gaps you will get, sorted by
what people were about to file tickets about.What languages does it answer in?
What languages does it answer in?
Whatever the reader wrote in, subject to your knowledge base’s own
answer style settings. The interface strings around
the answer are English by default and every one of them is configurable — see
Copy.
Does it work on a page behind authentication?
Does it work on a page behind authentication?
Yes. The deflector runs in the reader’s browser with your public client key, and
never needs to fetch the page itself. Your signed-in support portal is fine.The knowledge base it answers from is a separate question: an
internal knowledge base has no public surface at all
and cannot be used with a client key, deliberately.
Can a page I don't control use my deflector id?
Can a page I don't control use my deflector id?
Not usefully. The deflector’s origin allowlist is enforced server-side, so a
page on another domain is refused. Its source-group scope is enforced there too,
so an embed cannot widen what it reaches.
localhost always passes the allowlist, so a local build works before the
domain it ships on exists.Does a deflection count against my plan?
Does a deflection count against my plan?
Yes. A deflection is an answer produced by the full pipeline, so it counts as
one question against your monthly allowance, exactly like a widget question or a
bot answer. Interceptions that produced no answer cost nothing.
What does it store about the reader?
What does it store about the reader?
A browser-scoped anonymous id, shared with the Ask AI widget so one person is
one person in both. No IP address. Browser and OS family, never version. An
email address only if you point the deflector at your form’s email field, and
only on the conversation, purged with it — and never at all for a zero-retention
workspace. See User tracking.
Can I run two deflectors on one page?
Can I run two deflectors on one page?
One at a time.
attach() replaces any deflector already attached, so calling it
twice does not leave two sets of listeners on the same button.For two different forms on one page, or a different question field per ticket
type, call attach() with the right configuration when the form changes — see
Rendering manually.How is this different from helpdesk automation?
How is this different from helpdesk automation?
Timing. The deflector works on the form, before a ticket exists, in the reader’s
browser. Helpdesk automation works on tickets
that were filed anyway, over a webhook from your helpdesk.Both produce their answer through the same call with the same confidence
computation, so a threshold you tune in one behaves the same way in the other.