CommandBar

CommandBar (Command AI) is an in-app user-assistance platform: nudges, product tours, checklists, Spotlight search, and an AI copilot. Targeting these experiences relies on accurate user properties (plan, role, lifecycle stage, custom attributes).

Datafly Signal delivers your identified users and their properties to CommandBar server-side through the bulk-identify API, so segmentation attributes stay current without extra client-side calls.

⚠️

CommandBar’s server-side API supports setting user properties only. There is no server-side endpoint for behavioural events. CommandBar event triggers (trackEvent) remain a client-side SDK call. This integration syncs who the user is and what they look like, not what they did. Use it alongside the CommandBar JS SDK, which continues to handle page-level events and nudge triggers.

Prerequisites

  • A CommandBar (Command AI) account with an organization ID (the value passed to window.CommandBar.boot() on your site).
  • A server-side API key. This is separate from the client-side SDK and is issued manually by the CommandBar team — request it from CommandBar support.
  • Your Signal pipeline must populate a stable user_id that matches the id you boot the CommandBar SDK with. Property upserts attach to the user by this id.

Configuration

FieldRequiredDescription
Organization IDYesYour CommandBar org ID. Forms the request path https://api.commandbar.com/api/{org_id}/bulk-identify/.
API KeyYesServer-side key sent as the X-API-KEY header.

Configure in Signal

  1. In the management UI, go to Integrations and add CommandBar.
  2. Enter your Organization ID and API Key.
  3. Attach the integration to a pipeline and select the Default preset.
  4. Map your identity events (Signed Up, Identify, User Updated) and the user properties you want CommandBar to segment on.
  5. Save and enable the integration.

API Endpoint

Signal POSTs to the bulk-identify endpoint:

POST https://api.commandbar.com/api/{org_id}/bulk-identify/
X-API-KEY: <your-api-key>
Content-Type: application/json

The body is a JSON array of user objects, each { id, properties }. Signal batches users and sends them as a single array. A 2xx response indicates the upsert was accepted.

Identity Signals

CommandBar matches on a single key: the user id. Signal maps your canonical user_id to id, and this must equal the id you boot the client SDK with (window.CommandBar.boot("user-123")). There is no PII-based matching and no hashing — CommandBar stores the raw id and the property values you send. Send only attributes you are comfortable storing in CommandBar.

Event Mapping

The Default preset maps Signal identity events to property upserts. Only id is required; everything else lands under properties.

Signal eventCommandBar action
Signed UpUpsert user with plan, role, company, signup method
IdentifyUpsert user traits
User UpdatedUpsert changed user traits

Behavioural events (page, Order Completed, etc.) are dropped by default — CommandBar has no server-side ingestion for them.

Example

A Signed Up event from Datafly.js:

datafly.identify("user-123", {
  email: "ada@example.com",
  name: "Ada Lovelace",
  plan: "pro",
  role: "admin",
});
 
datafly.track("Signed Up", {
  method: "google",
  company: "Analytical Engines Ltd",
});

Resulting request body delivered to CommandBar:

[
  {
    "id": "user-123",
    "properties": {
      "email": "ada@example.com",
      "name": "Ada Lovelace",
      "plan": "pro",
      "role": "admin",
      "company": "Analytical Engines Ltd",
      "signup_method": "google"
    }
  }
]

Testing

  1. Trigger an identify or sign-up event through your Signal pipeline (or replay one from the Event Debugger).
  2. Confirm Signal reports a 2xx from api.commandbar.com.
  3. In the CommandBar dashboard, open the user by id and confirm the new properties appear.
  4. Build a nudge or checklist targeting rule on one of the synced properties and confirm it evaluates for that user.

Troubleshooting

SymptomLikely cause
401 / 403API key missing, invalid, or not scoped for bulk-identify. Confirm the server-side key with CommandBar support.
404Wrong org_id in the path.
400Malformed body or missing id. Ensure your pipeline populates user_id.
Properties not appearing on a userThe id Signal sends does not match the id used in window.CommandBar.boot(). Align both to the same canonical user id.
Events not showing upExpected — CommandBar has no server-side event ingestion. Use the client-side SDK trackEvent for nudge triggers.