Create embedded apps that plug directly into the Haven Helix platform. Access real business data, authenticate automatically, and ship fast.
Your app gets a Helix auth token automatically. No login pages, no OAuth dance. Users are already signed in.
Call the Helix API with one line. Stores, transactions, employees, inventory, all through the SDK.
Build with React, Vue, plain HTML, Laravel, whatever you're fast in. If it runs in a browser, it works.
From zero to a working Helix App in 5 minutes.
Open Helix, go to Helix Apps in the sidebar, click + New App. Enter your app name and URL (even http://localhost:3000 works for development).
Your app appears in the Helix sidebar instantly. Click it to open and you're authenticated automatically.
Change your code, refresh the page. No redeploy needed during development. When you're ready to ship, deploy to *.apps.havenhelix.com and ask an admin to promote your app.
The Helix SDK handles authentication and API access. Include helix-sdk.js in your app. That's it.
Called when the user is authenticated. Fires immediately if already ready.
Make authenticated requests to the Helix API. Token is included automatically.
Utility methods. getToken() returns the raw auth token if you need to make your own fetch calls.
These endpoints are available to Helix Apps via the SDK. All require authentication (handled automatically).
| Method | Endpoint | Description |
|---|---|---|
| GET | /stores | List all stores |
| GET | /store_stats | Store statistics and summaries |
| GET | /store_stats/transactions | Transaction data |
| GET | /kra/day_data | KRA daily metrics |
| GET | /kra/stores | KRA store list |
| GET | /kra/blocks | KRA data blocks |
| GET | /kra/transactions | KRA transaction details |
| GET | /employee_stats | Employee performance data |
| GET | /distribution_products | Distribution product catalog |
| GET | /idr_reports | IDR report data |
| GET | /auth/authenticate | Current user info and roles |
All endpoints are prefixed with /api by the SDK automatically. Just pass the path.
Store inventory sourced from the Blaze partner API, mirrored under the blaze namespace. Paths match Blaze's /store/inventory/... shape so code written against Blaze works unchanged against the Helix mock.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/blaze/inventory/brands | List all brands |
| GET | /api/v1/blaze/inventory/categories | List all categories |
| GET | /api/v1/blaze/inventory/inventories | Stock rows per product per terminal |
| GET | /api/v1/blaze/inventory/products | List all products |
| GET | /api/v1/blaze/inventory/products/{productId} | Get product by id |
| GET | /api/v1/blaze/inventory/products/dates | Products modified after ?modified_after= |
| GET | /api/v1/blaze/inventory/products/terminals/{terminalId} | Products carried by a terminal (with on-hand quantity) |
| GET | /api/v1/blaze/inventory/sku/{sku} | Product by SKU with per-terminal quantities |
| GET | /api/v1/blaze/inventory/terminals | List all terminals |
The journey from localhost to production.
Register your app in Helix with any URL, even http://localhost:3000. Only you and admins can see it. Iterate freely, change the URL whenever.
Deploy your app to yourapp.apps.havenhelix.com. Update the app URL in Helix to point there. This is required before promotion.
An admin promotes your app to active. It appears in the Helix sidebar for all users (based on role permissions). Congratulations, you shipped a Helix App!
Anything. React, Vue, Angular, Svelte, plain HTML/JS, Laravel Blade, Django templates. If it outputs HTML, it works. The SDK is a single JS file.
When Helix loads your app, it passes auth params automatically. The SDK reads them, gives you a token, and cleans the URL. You never see a login screen.
Yes. Your app can have its own API, database, whatever. Use the Helix token to call the Helix API from your backend too. It's just a Bearer token.
To go from prerelease to active, your app must be hosted on an approved domain (*.apps.havenhelix.com, havenhelix.com, or myhavenbot.com variants). During development, any URL works.
Ask in RingCentral, check the toolkit repo, or read the helix-apps repo for examples.