Skip to main content

ERP Toolkit

The ERP Toolkit is epilot's opinionated integration platform for building, monitoring, and maintaining ERP integrations. It combines standardized entity and event schemas, JSONata-based mapping, a dedicated inbound ingestion API, configuration APIs, central monitoring, and packaged Blueprints/Apps into a single, cohesive system.

ERP Toolkit High Level

The toolkit is optimized for energy-sector use cases: end-customer self-service via portals, meter reading propagation, contract lifecycle management, and billing account synchronization.

info

The ERP Toolkit does not remove the need for middleware. It standardizes the interface between epilot and your middle layer, radically reducing the complexity compared to direct API integration.

Components​

The ERP Toolkit is composed of the following components. Each plays a specific role in the integration lifecycle.

ComponentDescriptionStatus
Integration HubAdmin UI in epilot 360 to configure and monitor integrationsIn progress
ERP Integration APICRUD API to manage integrations, use cases, and mappingsStable
ERP Inbound APIDedicated API to receive and simulate inbound ERP eventsStable
Use CasesDocumented integration flows with testing supportIn progress
Core EntitiesStandardized entity schemas for mapping targetsStable
Core EventsStandardized event payloads for outbound notificationsStable
WebhooksPush events from epilot to ERPs via core eventsStable
JSONata MappingTransformation language for inbound and outbound dataStable
Monitoring and ACKsCentral logging, error tracking, and event replayIn progress
BlueprintsPackaged, installable integration setupsStable
AppsCustom automation actions and portal extensions for ERP logicIn progress

Integration Hub​

The Integration Hub is the administrative UI within epilot 360 (accessible at /app/integrations). It provides a guided wizard for activating ERP integrations, selecting self-service use cases, configuring mappings, running integration tests, and monitoring health.

ERP Integration API​

The /v2/integrations CRUD API centralizes all integration configuration in one place:

  • Environments -- API URLs, tenant IDs, secrets
  • API tokens with scoped roles and permissions
  • Inbound use cases with entity mappings
  • Outbound use cases with event mappings
  • Associated Apps and portal extensions

See the Configuration Guide for API details.

Inbound API​

Two dedicated endpoints for receiving ERP data:

EndpointPurpose
/v2/erp/updates/eventsReceive raw ERP data as events for processing
/v2/erp/updates/mapping_simulationDry-run events to verify mappings before going live

See the Inbound Integration Guide for setup instructions.

Use Cases​

A use case is a documented ERP integration flow: a description of how epilot and the ERP work together to implement a specific scenario (e.g., "Keep Contract In Sync" or "Meter Reading Submission"). Each use case defines:

  • Which core entities need to be mapped
  • Which core events are sent or received
  • Expected ERP behavior and response
  • Testing via simulated events or webhook test triggers with ACK confirmation

JSONata Mapping​

JSONata is the core transformation language for defining mappings between epilot's standardized entity/event schemas and ERP-specific data models. It is used across:

  • Inbound event processing (ERP to epilot entity mapping)
  • Outbound webhook payloads (epilot event to ERP format)
  • The Map Data flow building block

Monitoring and ACKs​

All inbound and outbound events are centrally logged and surfaced in the Integration Hub. Key capabilities:

  • Event replay -- reprocess failed events
  • ACK tracking -- ERPs acknowledge processed events via v1/erp/tracking/acknowledgement, enabling end-to-end visibility
  • Error alerting -- per-use-case status indicators with actionable error details
  • Partner log shipping -- middleware partners can send logs to epilot for centralized monitoring

Architecture​

ERP Toolkit Integration Architecture

Integration Directions​

Inbound (ERP to epilot)​

Push data from your ERP into epilot. Typical flows:

  • Synchronize customer master data (contacts, accounts)
  • Import contracts and subscriptions
  • Submit meter readings and consumption data
  • Update billing and payment information

Inbound Integration Guide

Outbound (epilot to ERP)​

Push epilot events to your ERP via webhooks. Typical flows:

  • New customer registrations and portal sign-ups
  • Contract changes (move-in, move-out, termination)
  • Self-service requests (IBAN changes, installment adjustments)
  • Meter reading submissions

Outbound events use Core Events and are delivered through Webhooks. JSONata transforms simplify payloads before delivery.

Operational Model​

The ERP Toolkit and your middle layer have clearly separated responsibilities.

Toolkit (epilot)Middle Layer (yours)
Stable schemas (core entities/events) and versioningERP connectivity (on-prem, VPN, ERP API calls)
Deduplication and idempotencyDomain-specific validation required by ERP
Inbound ingestion at scale with retries and mapping executionACK back to epilot for "processed" state
Central monitoring, replay, and retention
Configuration APIs and UI
tip

Most integrations involve a middleware (e.g., SAP CPI) that handles ERP-specific connectivity and validation. The toolkit standardizes the epilot side so your middleware only needs to speak one protocol.

Integration Patterns​

Two primary patterns exist. The right choice depends on your ERP's capabilities.

Pull vs Event-Driven Integration Patterns

Event-Driven (Direct)​

Your ERP or middleware sends events directly to the ERP Toolkit when data changes.

Best for: systems that support webhooks, need real-time sync, and require minimal transformation beyond mapping configuration.

Pull-Based (Delta Sync with Middleware)​

A middleware layer periodically queries your ERP for changes and pushes them to the ERP Toolkit.

Best for: ERPs without webhook support, complex multi-source aggregation, or scenarios requiring custom validation and retry logic.

Comparison table
RequirementEvent-DrivenPull-Based
ERP supports webhooksRequiredNot required
Real-time sync neededBest fitDepends on polling interval
Complex transformationsLimited to mapping configFull flexibility
Custom validation logicLimitedFull flexibility
Aggregating multiple sourcesNot supportedSupported
Minimal infrastructureBest fitRequires middleware
tip

Many integrations use a hybrid approach: event-driven for simple, real-time updates (e.g., contact changes) and pull-based for complex scenarios (e.g., aggregating invoice data from multiple systems).

Getting Started​

  1. Create an integration -- register your ERP connection via the Configuration API or Integration Hub
  2. Configure use cases -- define inbound/outbound data flows with entity mappings
  3. Test mappings -- use the mapping simulation endpoint to validate before going live
  4. Send events -- push data from your ERP to the inbound API
  5. Monitor -- track processing status, errors, and ACKs in the Integration Hub

Continue to the Inbound Integration Guide for step-by-step setup.