ย
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.
- Evaluate Your Need: Consider if existing component types could address your use case
- Define the Integration Point: Identify where in epilot your component would integrate
- Describe the Value: Outline the problems it would solve for epilot users
- 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:
| Command | Description |
|---|---|
epilot app init | Scaffold a new app project with manifest.json |
epilot app add-component | Add a component from a starter template |
epilot app validate | Validate your manifest before deploying |
epilot app deploy | Deploy your app to epilot |
epilot app versions | List all versions of your app |
epilot app review | Submit a version for public review |
epilot app export | Export 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.
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.