Custom Entities let you go beyond Wizflow’s 35+ built-in entities. They’re perfect when your workflow needs something specific — a custom input, a specialised integration, or a unique user interface.
Powered by Web Standards
Custom entities are built with JavaScript Web Components, supported by all modern browsers. This means they’re flexible, reusable, and future-proof.

Why use Custom Entities?

Industry-specific

Build entities tailored to your sector (finance, healthcare, legal, etc.)

Integration-focused

Connect directly to internal systems or third-party APIs

Advanced UI

Create rich interactive widgets that go beyond form fields

Reusable

Develop once and use across multiple flows or teams

Common use cases


How it works

  1. Plan – Define what data to collect and what experience to deliver
  2. Generate – Use the Custom Entity Copilot to create a working prototype from a text description
  3. Refine – Adjust behaviour or styling with standard JavaScript (Lit, Stencil, or vanilla)
  4. Configure – Decide what settings flow builders can customise (labels, ranges, formats)
  5. Test & Publish – Preview the entity and make it available across flows
Start simple: even a small custom checkbox or lookup widget can add big value.

Best practices

Performance

Keep entities lightweight and mobile-friendly
Avoid unnecessary dependencies

User experience

Follow familiar patterns
Provide clear labels, help text, and error states

Security

Validate all inputs
Use HTTPS for external calls
Handle sensitive data responsibly

Maintenance

Document options and usage
Plan for updates and backwards compatibility

Getting started

To create a custom entity:
  1. Open Flow Builder
  2. Go to Entities → Custom Entities → Create New
  3. Describe what you want in the Copilot (e.g. “mortgage calculator with loan amount, rate, and duration”)
  4. Preview, refine, and save
Your entity will now appear in the entity palette alongside Wizflow’s built-in components.

Example

Here’s a simple confirmation widget built as a custom entity:
class ConfirmationSteps extends HTMLElement {
  connectedCallback() {
    this.innerHTML = `
      <div>
        <h3>Please confirm the steps:</h3>
        <ul>
          <li><input type="checkbox" /> Step 1</li>
          <li><input type="checkbox" /> Step 2</li>
        </ul>
        <button>All steps confirmed</button>
      </div>
    `;
  }
}

customElements.define('confirmation-steps', ConfirmationSteps);