Skip to main content

ย 

What Are Components?

The Foundation of epilot Appsโ€‹

Components are the fundamental building blocks that make up every app in the epilot ecosystem. Think of them as specialized modules that extend epilot's functionality in specific, targeted ways. Each component type is designed to integrate with a particular part of the platform, enabling seamless extensions that feel native to users.

When you build an app for epilot, you're essentially creating one or more components that work together to deliver value. A single app might contain multiple components of different types, each addressing a specific use case or integration point.

Why Components Matterโ€‹

This modular approach offers several key advantages:

  • Targeted Integration: Components connect precisely where they're needed in the epilot platform
  • Flexible Combinations: Mix different component types to create comprehensive solutions
  • Focused Development: Build only what you need without unnecessary complexity
  • Consistent Experience: Users benefit from a unified interface regardless of the app source

Available Component Typesโ€‹

epilot currently supports these component types:

Custom Journey Blocksโ€‹

These web components integrate directly into epilot's Journey Builder, allowing you to create specialized elements for data collection, visualization, or process automation. Journey Blocks appear in the Journey Builder palette and can be placed anywhere in a customer journey flow.

Use cases: Data collection forms, calculators, visualizations, third-party integrations

Portal Extensionsโ€‹

Portal Extensions enhance epilot's customer and installer portals with new sections, tools, or visualizations. They can be added to dashboards or specific sections to extend the portal's functionality with custom features.

Use cases: Custom dashboard widgets, specialized tools, data visualizations

External Product Catalogโ€‹

External Product Catalog components integrate third-party product catalogs into epilot. They enable Product Blocks to fetch and display products and pricing from external systems, allowing customers to browse and select items from external catalogs directly within their journey experience.

Use cases: Custom product catalogs, journey products, journey product recommendations

Custom Workflow Taskโ€‹

Custom Workflow Tasks extend epilot's automation engine with your own logic. You can either call an external endpoint (webhook-style) or run TypeScript code in a sandboxed environment directly within a workflow task.

Use cases: Third-party integrations, data syncing, custom processing steps in workflows

API Proxyโ€‹

API Proxy components let your app call external APIs without exposing credentials to the browser. The proxy runs server-side, injecting authentication and signing requests so secrets never reach the client.

Use cases: Secure external API calls, OAuth integrations, credential-protected endpoints

On the Horizonโ€‹

The epilot platform continues to evolve, with new component types planned for future releases:

Custom Journey Design Elementsโ€‹

Extensions to the Journey Builder's design capabilities, including:

  • Email Plugins: For customizing and enhancing email templates and functionality

Requesting New Component Typesโ€‹

Have an idea for a new component type? We welcome feedback from the developer community.

  1. Evaluate Your Need: Consider if existing component types could address your use case
  2. Define the Integration Point: Identify where in epilot your component would integrate
  3. Describe the Value: Outline the problems it would solve for epilot users
  4. Submit a Request: Contact us with your proposal

Our product team regularly reviews component requests and prioritizes them based on community interest and platform direction.

App Surfaces & Communicationโ€‹

When your component runs inside epilot, it's embedded in an iframe and communicates with the parent application through the @epilot/app-bridge library. Different component types are displayed on different "surfaces" within epilot.

Learn more about App Surfaces to understand how your app communicates with epilot and receives authentication, entity context, and configuration data.

Building Your First Componentโ€‹

Ready to create your own component? The fastest way to get started is with the epilot CLI:

npx epilot app init my-app
npx epilot app add-component my-block --type CUSTOM_JOURNEY_BLOCK

The CLI manages the full app lifecycle โ€” from scaffolding and validation to deployment and version management. Key commands:

CommandDescription
epilot app initScaffold a new app project with manifest.json
epilot app add-componentAdd a component from a starter template
epilot app validateValidate your manifest before deploying
epilot app deployDeploy your app to epilot
epilot app versionsList all versions of your app
epilot app reviewSubmit a version for public review
epilot app exportExport an existing app as manifest.json

See the CLI documentation for the full command reference.

Each component type also has a ready-to-use starter template available in the app-templates repository.

Journey Blocks

Create interactive elements for epilot's Journey Builder

Start Building

Portal Extensions

Extend epilot's portals with custom functionality

Start Building

External Product Catalog

Integrate third-party product catalogs into epilot

Start Building

Custom Workflow Task

Run custom logic in epilot's automation workflows

Start Building

API Proxy

Call external APIs securely without exposing credentials

Start Building

By understanding how components work and which types are available, you can create powerful extensions that enhance the epilot platform while maintaining a seamless user experience.