Skip to main content
Menu
On this page

Thank-you and redirects

Configure the built-in success screen, or send the respondent to an HTTP or HTTPS destination.

Completion settings decide what the respondent sees after Fillo accepts a response.

In the dashboard

Open the form editor and find the completion settings.

  1. Set the success title.
  2. Add a short success message that explains what happens next.
  3. Add a redirect only when the next step belongs on another route.
  4. Publish the draft and submit a test response.

Success copy should confirm the action without echoing sensitive answers back. A redirect only runs after a live submission — not when the renderer restores state in a browser that already responded.

In code

ts
const requestForm = defineForm({
  id: "request-demo",
  pages: [{
    id: "request",
    blocks: [{ id: "email", kind: "email", label: "Work email", required: true }],
  }],
  settings: {
    successTitle: "Request received",
    successMessage: "We'll reply by email within two working days.",
    redirectUrl: "https://app.example.com/requests/complete",
  },
});

redirectUrl must use http: or https:. Other protocols are rejected.

Own the after-submit behavior

An embedded renderer can also run host code with onSubmitted. Use it for local navigation, analytics, or a product-specific confirmation — Fillo still stores the response either way.

tsx
<FilloForm
  formId="request-demo"
  onSubmitted={(responseId) => {
    const query = responseId ? `?response=${encodeURIComponent(responseId)}` : "";
    router.push(`/requests/complete${query}`);
  }}
/>

Don't put secrets or private answer values in a query string.

Current routing limit

FormSettings has one success title, one success message, and one redirect URL. It can't currently pick a different completion screen or redirect based on an answer. Use page jumps for an early end, or handle response-based routing in the host app after submission.

  • Logic: End a reachable path before later pages.
  • Quickstart: Handle submitted and error states in an embed.
  • Webhooks: Start reliable server-side work after storage succeeds.

Updated

Was this page helpful?