Blues Notehub
Connect cellular Notecard devices that sync through your Blues Notehub project. Pulse receives telemetry over a partner-owned HTTP route (read path only in v1: no downlinks or Notehub writeback).
Where to find it: Sidebar → Account settings → Integrations → Blues Notehub.
Blues Notehub is plan-gated (devices.notehub.enabled). If you do not see the sub-tab, contact ioX-Connect to enable it for your partner.
How it fits
| Layer | Source of truth |
|---|---|
| Device existence, firmware, sync, what Notehub forwards | Your Blues Notehub project |
| Tenancy, profiles, decoding, dashboards, workflows, alerts | ioX-Pulse |
Pulse never creates or edits routes in your Blues account. You paste a webhook URL and Bearer secret that Pulse generates.
Step 1: Create a connection in Pulse
- Open Account settings → Integrations → Blues Notehub.
- Click New connection.
- Enter a name (for example
Production Notecards). - Optionally set Product UID and an API token (enables registration-time device validation against Notehub; not required for ingest).
- Click Create.
- Copy the webhook URL and Bearer secret immediately. The secret is shown once.
The webhook URL should start with your Pulse portal's public web address. If it shows an internal-looking host instead, contact ioX-Connect support before pointing Notehub at it.
Step 2: Create the Notehub route
In your Blues Notehub project:
- Create a General HTTP/HTTPS route (suggested name:
ioX-Pulse). - Paste the Pulse webhook URL.
- Set authorization to Bearer, using a Notehub project Secret (
[$$...]syntax), never plaintext. - Select the notefiles you want Pulse to receive.
- Leave transform / JSONata empty. Pulse validates a fixed envelope (
device,event,file,when,body). A transform that reshapes the payload will fail with a 400 you can see in Notehub's route log. - Enable automatic reroute on failure. Without it, a single timeout or 5xx means that event is never redelivered.
- Prefer excluding
_session.qoand_health.qounless you specifically need them for liveness. Tracker notefiles such as_motion.qoand_track.qoare normal data notefiles.
When the first event arrives, the connection card moves from Awaiting first event to Receiving.
Step 3: Create a Notehub device profile
- Open Administration → Device Profiles.
- Click Create profile → Blank.
- Set Transport to Blues Notehub.
- Name the profile and create it.
Add fields whose identifiers match the keys in your Notehub JSON body when possible. For flat bodies (for example motion, movements, voltage), Pulse can identity-map at ingest with no decoder. Author a decoder only when you need remaps or multi-notefile branching. See Device profiles → Decoders.
Step 4: Register or adopt devices
Register from Inventory
- Open Administration → Inventory → Register device.
- Choose Connectivity: Blues Notehub.
- Enter the 15-digit IMEI (Luhn-checked), name, Notehub profile, and expected sync interval (minutes).
- Use the Notecard SYNC interval, not the sample interval. Pulse sets offline detection from
max(2 × sync, 120)minutes.
Adopt a discovered device
Unknown DeviceUIDs that hit your webhook appear under the connection's Discovered devices list (expand the connection row).
- Click Adopt.
- Choose a Notehub profile and sync interval.
- Register.
Adopt can validate the IMEI against Notehub when the connection has both a Product UID and API token.
Location and offline behavior
- Location updates from Notehub
best_lat/best_lon(and related type) when present on the event. - Offline detection uses the sync interval you set at register time. If devices look offline while still sampling locally, raise the expected sync minutes to match the Notecard SYNC setting.
New device types later
A new sensor type (pressure, etc.) is a new Blues Notehub profile in Pulse: fields, optional decoder, dashboard, workflows. Register devices under it. No platform code change.
If your Notehub route uses Selected Notefiles mode, add each new notefile to the include list. Otherwise that data never leaves Notehub and Pulse will not see it.
Decoder test samples
On a Notehub profile's Decoder tab, Recent uplinks loads real raw bodies from devices on that profile. Pick one to populate the test panel, or paste hex from Notehub Route as cURL. Use Insert JSON identity template when you need a starting script that JSON.parses the UTF-8 body.
Synthetic fPorts: data.qo → 1, _motion.qo → 2, _track.qo → 3; other files use a stable hash bucket (100–223).
Pausing a connection
Each connection row on the Integrations tab has a switch that pauses or resumes the connection without deleting it. While paused, ioX-Pulse still accepts your Notehub route's requests (so the route stays healthy on the Blues side and reroute on failure is not triggered) but discards the events: nothing is stored, and nothing is queued for replay. The events remain in your Notehub event log.
Two things to keep in mind while a connection is paused:
- Devices on the connection go silent in ioX-Pulse, so offline detection and any offline workflows can fire.
- Discarded events are not backfilled when you resume; data flows again from the next event.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Connection stays on awaiting first event | Route URL/secret wrong, transform present, or notefile not selected |
| 400 in Notehub route log about envelope fields | JSONata/transform reshaped the payload; remove it |
| 403 product mismatch | Connection Product UID does not match the event's product |
| Device offline while Notecard is sampling | Expected sync interval too low vs SYNC setting |
| New notefile never appears | Route include-list missing the new file |
Related
- Device profiles - fields, identity map vs decoder, testing
- Devices - inventory and assignment
- Webhooks - Pulse outbound webhooks (unrelated to the Notehub ingest route)