Groups

Set up accounts, workspaces, projects, and other product objects so you can inspect audiences by the groups they belong to.

Last reviewed

Groups

Use Groups when user traits alone do not describe the audiences you want to inspect. Groups let you model accounts, workspaces, projects, properties, playlists, or any other object your users belong to.

getuserfeedback.com builds this graph from supported integration group data or first-party SDK relationship observations. These connections make Groups available in the segment builder.

What to configure

Open Groups settings. Organization admins can add the Groups their workspace sends.

Add one row for each kind of Group, enter a name such as Accounts, and click Save changes. A stable Group type key is generated once from the name: Customer Accounts becomes customer-accounts. You can inspect it under Developer details, but you don't need to enter or copy it for Segment setup.

You can add more than one Group, such as Accounts, Workspaces, and Projects. Renaming a Group does not change its key or existing relationships. Existing Group type keys stay unchanged.

Send group data

For Segment, select the Group by name during integration setup or in the source settings. Organization admins can also click New Group to create and select one there. Save the integration configuration to apply the selection. A Segment Group call then supplies a particular group's groupId, its traits, and the known userId connected to it.

For example, an existing Group can have the name Accounts and key account. A Group call with groupId: "acct_123" refers to one account in that configured Group. See Segment as a source for the payload shape.

Group calls are positive, additive observations. Connecting the same user to a second group instance does not replace the earlier connection or declare the user's complete group membership.

First-party JavaScript, React, and React Native clients can record the same relationship directly:

const relationship = {from: { collection: "user", id: "user_123" },to: { collection: "account", id: "acct_123" },};await client.graph.connect(relationship);await client.graph.disconnect(relationship);

If the person has no stable user ID, name them with their known identities:

await client.graph.connect({from: {collection: "user",identities: [{ type: "traits.email", value: "booker@example.com" }],},to: { collection: "client", id: "client_456" },});

Use the same from and to to disconnect. An unknown identity does not create a person when disconnecting; ingestion rejects that observation. The SDK Promise does not report graph acceptance or rejection. The identity list belongs to the person in this relationship, not necessarily the SDK's current visitor. Call identify() separately for the person taking a survey. An email is a declared analytics identity, not proof that its sender is authorized for that client.

disconnect() ends the connection established by earlier observations, regardless of which source recorded them. A later connect() can establish the connection again. Collection keys use lowercase kebab-case and IDs must be nonblank. Invalid ID-based relationship properties remain analytics events but do not update the graph. The SDK rejects endpoints with both id and identities, or neither, before dispatch. Empty identity lists, conflicts, and unknown disconnects are rejected at ingestion.

Build a group audience

After matching events arrive, open the segment builder and add a user connection condition.

Examples:

  • User in Accounts
  • User not in Accounts
  • User in Accounts where plan is enterprise
  • User in Workspaces where status is active
  • User in Projects where lifecycle is beta

Groups work alongside normal user traits and event rules, so a segment can combine both:

  • users who viewed Billing
  • and are in Accounts where plan is enterprise

Each evaluated user is either in or not in the segment. A user who has not been evaluated yet satisfies neither condition. The segment page shows when the audience was last processed and whether processing is underway or needs attention. Audience membership updates automatically as data is processed; you do not need to refresh it manually.

You can inspect these audiences, use them for a one-time manual Flow send, or use them as the audience for a recurring scheduled Flow. Each send uses the users who are in, or not in, the selected segment when its audience is planned. Membership changes after planning affect future sends, not the already planned recipient set. If the selected segment is archived or its definition can no longer be evaluated before delivery, that send may be suppressed. For an event-triggered Flow without a delay, you can use these segments in Audience to choose who enters when the event occurs. That audience is frozen for the event. Conditions remain delivery-time filters and can remove users from the frozen audience. Delayed event rules support Conditions but not Audience; they check Conditions before queueing the send and again before delivery.

You can also trigger a Flow when a user enters or leaves a saved Group audience, and use Group audiences in that rule's Conditions. These triggers follow changes in evaluated segment membership, not the arrival of an individual Group call or SDK connection event. Group audiences are not available for runtime broadcasts.

What can break

  • The Group type is not configured or is unavailable. Select an existing Group by name in Segment source settings, or create one, then save. If names are identical, use the secondary key to distinguish them.
  • The event has no usable identity. We need an identity we can resolve to a person before we can connect that person to a group.
  • The user is not known yet. A Group call does not create a user profile; its userId must already resolve to a user in the workspace.
  • Only new Group calls apply. Changing Groups settings does not replay all historical events.
  • A Group is still in use. Groups settings links to integrations and segments that use it. Change or clear those references before removing the Group. Pausing an integration or segment does not release its reference; saved draft segments also count.
  • Removing an unused Group is not data deletion. Existing graph data remains.
  • The group has no traits yet. Send group traits such as plan or status in the Segment Group call.

Next