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
userIdmust 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.