← Herald

The full loop, step by step

One Lumen user, from Hightouch to Braze and back. The data is sample data; the feature vector, the decision and the Braze trigger properties come from Herald's real code, and the other payloads follow the real API shapes.

Your warehouse already knows your users. Hightouch syncs each row to Herald as a user record, with no new tracking to build.

Sample
{
  "user_id": "lumen-user-1832",
  "plan": "free",
  "locale": "en",
  "sessions_7d": 5,
  "last_open_hour": 7,
  "days_since_last_open": 2,
  "streak_days": 4
}
Sample: Hightouch record
{
  "external_user_id": "lumen-user-1832",
  "attributes": {
    "plan": "free",
    "locale": "en",
    "sessions_7d": 5,
    "last_open_hour": 7,
    "days_since_last_open": 2,
    "streak_days": 4
  }
}
Sample: ingest request
{
  "method": "POST",
  "path": "/api/ingest/users",
  "body": {
    "users": [
      {
        "external_user_id": "lumen-user-1832",
        "attributes": {
          "plan": "free",
          "locale": "en",
          "sessions_7d": 5,
          "last_open_hour": 7,
          "days_since_last_open": 2,
          "streak_days": 4
        }
      }
    ]
  }
}