The form deflector attaches to any support form on your site. Before submission, it sends the user’s question to the form-deflect endpoint, and if BeforeQuery is confident it can resolve the issue, it shows the answer with sources in a modal:
  • “That answered my question” — the user dismisses without submitting a ticket.
  • “Continue to submit ticket” — the original form is re-submitted untouched.
  • Follow-up questions can be asked directly in the deflection modal.
Users are never blocked. If confidence is low (deflect: false) or the API call fails, the form submits normally.

Script-tag setup

No backend changes, no form HTML changes — just point at your form with CSS selectors:
data-deflect-question-field accepts a CSS selector or a field name attribute value (e.g. message). Works with Zendesk, Freshdesk, Front, Jira Service Management, and custom HTML forms.

Programmatic setup

Or via the window global:

How the decision is made

The deflector calls POST /api/v1/public/projects/:projectId/form-deflect, which runs a non-streaming RAG pass and returns:
deflect is true when confidence meets the threshold (default 0.55). Follow-ups use the normal chat SSE endpoint with thread_id set from conversation_id. Every deflection attempt is logged as a deflection trace and appears in your analytics, so you can measure exactly how many tickets never got filed.