Event Systems at a Glance
ERP Webhooks
What they are: Signed HTTP requests that JTL sends to your app when data changes in the merchant’s ERP. An item is edited, an order is paid, stock moves between warehouses, and your endpoint hears about it within seconds. How they work: You declare the topics you want and an HTTPS endpoint in your app manifest. When a matching change occurs, JTL posts a signed request to that endpoint. The payload carries the key of the entity that changed rather than the entity itself, so your handler verifies the signature, acknowledges the delivery, and then fetches the current record through the GraphQL API. When to use them:- Keeping your own store in sync with ERP data
- Triggering work when an order reaches a status your app cares about
- Reacting to stock movements, returns, or payment changes without polling
Manifest Configuration
Subscriptions live undercapabilities.erp.webhooks in your app.json:
Key Characteristics
For the topic list and the handler implementation, see Webhook Topics and Handling Webhooks.
AppBridge Events
In development: Publishing events from your app to the host is in active development. Subscribing to host entity-context events is available today.
- Reacting when the merchant navigates to a different customer, order, quotation, or item
- Notifying the App Shell that your app completed an action (in development)
Subscribing to Host Events
A panel subscribes to host events to react when the merchant navigates to a different entity. Each ERP entity view publishes its own change event, using PascalCase past-tense names with object payloads.Publishing Events
Publishing will let your app notify the host when it completes an action, for example when a verification step finishes or a generated description is ready to insert. The API is in active development.Key Characteristics
Setup Handshake
What they are: A URL defined in your app’sapp.json that JTL loads in an iframe when a merchant installs your app.
How they work: You define a configurationUrl in the lifecycle section of your manifest. When a merchant installs your app, JTL loads that URL inside the JTL Hub. Your app shows its onboarding UI, completes the AppBridge handshake, and signals setup is done by calling appBridge.method.call('setupCompleted').
When to use it:
- Showing onboarding UI when a merchant installs your app
- Verifying the app token from AppBridge and persisting the tenant connection
- Collecting any configuration the merchant needs to provide
Manifest Configuration
The setup URL is defined in yourapp.json:
Key Characteristics
For implementation details, see the Quick Start: From Scratch guide, which walks through the full setup handshake.
Choosing the Right Event System
What’s Next?
Handling Webhooks
Declare subscriptions, receive deliveries, and fetch the changed entity.
Error Handling
Handle failures in event processing and API calls.