Engagement Service Integration
The Engagement Service turns building and event data into personalized, contextual notifications delivered to your end users. The MOOST rule engine evaluates incoming events against your configured rules and generates recommendations that are pushed to your system via the fulfillment channel of your choice.
How It Works
You send events to the MOOST platform (see Common Integration).
The rule engine evaluates each event against the active rules for the building.
When a rule matches, a notification is generated with localized text.
The notification is delivered through the configured fulfillment channel.
Receive Notifications
MOOST delivers the generated notifications to a REST endpoint which can be specified by you. You can then deliver these notifications to your households (end-users) e.g. via Firebase Cloud Messaging.

The endpoint to be used can be configured per customer, per end-user, or a combination of both via the MOOST admin frontend: admin.moost.io/settings.
REST Endpoint
To receive notifications via REST, the endpoint has to be exposed on a public domain accessible via the Internet. Any REST endpoint accessible via Internet should be protected via authentication.
Authentication
The MOOST Platform can authenticate against your REST endpoint via the following methods:
Username / Password
Basic authentication with username and password.
API-Token
Authentication using an API token.
Bearer-Token
Authentication using a bearer token.
OAuth
OAuth client credentials authentication.
API Throttling
If your REST endpoint is protected against DDOS attacks with request throttling, please inform MOOST during the integration phase about the limitations in place. MOOST will configure the platform accordingly.
If the limits are exceeded, the MOOST Platform will not be able to send all notifications back to your REST endpoint. Ensure that the chosen limitation is in line with the expected notifications per time unit.
Notification Schema
The notification object is posted to your REST endpoint as a JSON message in the body.
Format
Notification Fields
id
Unique notification ID. Used to return interactions.
notification.actionQualifier
Maps action names (e.g. primary, secondary) to action qualifier types.
notification.texts
Localized notification content keyed by language code (e.g. en, de, fr). Each entry contains title, message, and optional actions.
notification.command
Optional command field for machine-to-machine instructions. Customer-specific; initially empty but can be defined by the customer.
createdAtTimeMillis
Timestamp when the notification was created (milliseconds).
customerId
The customer ID.
customerBuildingId
The building that this notification is for.
ruleId
The rule that triggered this notification.
priority
Notification priority (high or normal).
Actions and Action Qualifiers
A notification includes two actions that should be presented to the end-user. Each action consists of a text field (presented to the user in different languages) and an action qualifier that describes the type of action.
DISMISS
The push notification should be dismissed.
OPENAPP
The app should be opened. The optional parameter attribute may contain a language-specific value, such as a URL or use-case name.
STOPDELIVERY
The notification should be dismissed and the action qualifier returned to the MOOST API, indicating that no more notifications of this type should be sent to the end-user.
OPENWEB
A browser should be opened. The optional parameter attribute typically contains a language-specific URL.
Firebase Cloud Messaging
To integrate MOOST notifications into your mobile application, you can use Firebase Cloud Messaging (FCM). With FCM you have a centralized tool to send notifications to your end-users on both Android and iOS apps.
iOS Notification Handling
iOS differentiates between the action that happens when pressing the notification and the quick actions presented when long-pressing a notification.
Example (Swift):
Notifications and Interactions
Load Notifications of a Building
Your app may need to display the history of generated notifications (e.g. in a Notification Center). Use the following API:
customerBuildingId
yes
The building identifier.
deliveryStatus
no
Filter by DELIVERED or DROPPED.
Example with CURL:
Return Notification Interaction
To train our algorithms based on the actions taken by end-users, it is important that the action qualifier is returned to the MOOST Platform.
Request body:
Example with CURL:
Notification interactions must be returned to MOOST on every interaction the end-user has with a notification. This includes: pressing the primary button, pressing the secondary button, pressing on the notification itself, and dismissing the notification (swipe left).
Rules API
Rules define the conditions under which notifications are triggered. They are typically created and managed through the MOOST admin frontend, but can be read and managed via the API.
GET
/rules/v1?tags=solar
Get all rules. Optionally filter by tags.
GET
/rules/tags/v1
Get all distinct tags used across rules.
GET
/buildings/{customerBuildingId}/rules/v2
Get active rules of a specific building.
PUT
/buildings/{customerBuildingId}/rules/{ruleId}/v1?status=active
Activate or deactivate a rule for a building. Set status to activeor inactive.
This allows you to enable or disable specific rules per building — for example, to let end users opt out of certain notification types.
Integration Checklist
Last updated

