📄 Notification & Webhook

Notification & Webhook

This article compiles the most frequently asked questions from clients regarding the Ekko Notification service, webhook integrations, data delivery, and event decoding. It serves as a supplementary guide to the official Notification Documentation.

1. Event Ordering & Concurrency

How does the sequential mode (Parallel requests = 1) work?

In sequential mode, the next data packet is only sent after we have received a 200 OK HTTP acknowledgment for the previous packet. The second packet is not generated until the first one is successfully acknowledged. This strict blocking mechanism guarantees that events for a device are not processed out of order, even in the case of retries.

Are IDs guaranteed to be in order?

Yes. The id and id_str properties are always unique and strictly increasing (monotonically) for a given device across all packets. You can safely rely on these fields to reconstruct the correct temporal order.

What happens if I increase the number of parallel requests (Parallel requests > 1)?

Increasing the number of parallel requests speeds up overall data delivery while safely maintaining ordering. We enforce an Asset Pinning mechanism:

  • It is impossible to receive data for the same asset split across multiple parallel requests simultaneously.

  • All events for a given asset will always land in the same outgoing request stream.

  • For a specific asset, the system behaves exactly as if it were running sequentially. The per-device ordering within a packet is strictly preserved, regardless of how many concurrent requests are being processed for other devices.

2. Webhook Configuration & Setup

How do I register or update a webhook endpoint?

You need to contact our support that will handle the initial setup and configure a platform so you can change the paramters on your own and see your URL status.

3. Frequent questions

Why do I see binary/garbled data when decoding base64 track event fields?

When decoding the b64_payload from track events, you may occasionally see binary sequences (e.g., \x00\x0B) if you attempt to read the entire payload as a raw string. The base64 payload encapsulates multiple fields that may have different encodings depending on their raw signal type (integers, floats, bitmasks, etc.). You must parse the decoded byte array according to the specific MDI field definitions.

Where can I find the dictionary for MDI_* raw signals?

Raw signal definitions (meaning, unit, and encoding) such as MDI_SM_FUEL_LEVEL_ALARM or MDI_NETWORK_TYPE can be found in our comprehensive diagnostic fields documentation. If you encounter proprietary fields that are not listed, please raise a ticket with support for clarification. - https://support-ekko.munic.io/knowledge/article/283