Hightouch (as a reverse-ETL source)
Sync audiences and traits from your warehouse into Hober with Hightouch's HTTP Request destination. Each synced row becomes a subscriber create-or- update against Hober's documented upsert API — no custom connector required, and because the endpoint is an upsert, Hightouch retries and re-syncs are naturally idempotent.
Setup
- In Hober, copy your publishable SDK key from Settings → API keys.
- In Hightouch, create an HTTP Request destination and configure the sync:
- URL:
https://api.hober.io/api/v1/subscribers/upsert - Method:
POST - Headers:
X-SDK-Key: <your SDK key>andContent-Type: application/json - Rate limit: start at ≤ 10 requests/second.
- URL:
- Template the request body from your model's columns (one request per row):
{
"external_id": "{{ row.user_id }}",
"email": "{{ row.email }}",
"attributes": {
"plan": "{{ row.plan }}",
"ltv_band": "{{ row.ltv_band }}"
}
}
Mapping
| Warehouse column | Hober field | Notes |
|---|---|---|
| Your primary user key | external_id | Required. The same identifier your SDKs and server events use — this is what makes warehouse traits, product events, and message engagement land on one profile. |
email | Optional; becomes the subscriber's email identifier | |
| Anything else | attributes.* | Schemaless; usable in segments and {{ subscriber.* }} personalization immediately |
A 200 returns the stored subscriber; 401 means a missing/invalid SDK key;
422 names the failing field (external_id is the only required one).
Syncing warehouse-computed events
To push model-derived events (not traits) — churn-risk transitions, LTV
milestones — target the Events API instead:
POST https://api.hober.io/v1/events with your hober_srv_ server key as a
Bearer token, batching up to 1,000 events per request. Set an
idempotency_key per row so re-syncs never double-fire journey triggers.
Consent caveat
Reverse-ETL syncs attributes, not permission. Upserting a subscriber does
not grant marketing consent — sends still pass Hober's consent and
suppression checks. If your warehouse holds an express opt-in you want
recorded, include the consent assertion field documented in the
subscribers API; never sync around a
suppression.