Linking Ubidots as a source
This source is currently in alpha. The interface and available tables may change.
The Ubidots connector syncs your IoT devices, variables, and sensor time-series values into the PostHog Data warehouse, so you can analyze device telemetry alongside your product data.
Prerequisites
You need a Ubidots account with an API token. Tokens are account-wide, so the connector can read every device and variable the token's owner can see.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- Select the tables you want to sync, choose a sync method and frequency, then click Import.
Once the syncs are complete, you can start querying this data in PostHog.
When linking Ubidots, you'll need:
- API token – use a permanent token from your profile → API Credentials in Ubidots. Don't use a token minted via the temporary-token endpoint: those expire after a few hours and will break syncs.
- API base URL – Industrial and enterprise accounts use the default
https://industrial.api.ubidots.com. Pickhttps://things.ubidots.comonly if you're on a legacy STEM account.
Sync modes
Each table can be synced in one of several modes, depending on what the source supports:
- Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
- Incremental – only new or updated rows are synced on each run, using a cursor field (such as an
updated_attimestamp). Cheaper than a full refresh, but deletes aren't captured. - Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
- Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.
See sync methods for a full explanation of how each mode works and how to choose between them.
The values table supports incremental syncs on the dot timestamp (Unix epoch milliseconds), so after the first full sync only new data points are fetched. Device and variable metadata tables are full refresh only.
Configuration
| Option | Type | Required |
|---|---|---|
API token | password | Yes |
API base URL | select | No |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
devices | A device is a container that collects data from a physical asset (sensor, machine, gateway) into variables. | Full refresh | — | — |
variables | A variable holds one time series of dots (values) inside a device, e.g. temperature or humidity. | Full refresh | — | — |
device_groups | A device group is a user-defined collection of devices, used to organize fleets and target events. | Full refresh | — | — |
device_types | A device type is a template of properties, variables, and appearance applied to devices of the same kind. | Full refresh | — | — |
events | An event is a condition-based rule that triggers actions (email, SMS, webhook) when device data meets its criteria. | Full refresh | — | — |
values | A dot: one timestamped data point of a variable's time series. Joins to the variables table via the variable column. | Incremental, Full refresh | timestamp | — |
The values table contains one row per dot (data point), with the owning variable's ID injected in the variable column so you can join it to the variables table.
Troubleshooting
- If you see an authentication error, your API token is invalid or has expired. Temporary tokens expire after a few hours – use the permanent token from your profile's API Credentials page, then reconnect.
- If your account lives on the legacy consumer tier and the connection fails, switch the API base URL to
https://things.ubidots.com.
If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.