> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tightknit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Groups

> Create and manage user groups for organizing members and permissions

export const PlanAvailability = ({feature = 'This feature', plan = 'enterprise', addon = false, plural = false, support = false, growth, momentum, enterprise, children}) => {
  const rank = {
    growth: 0,
    momentum: 1,
    enterprise: 2
  };
  const normalize = value => {
    if (value === true || value === 'included' || value === 'yes') {
      return 'included';
    }
    if (value === 'addon') {
      return 'addon';
    }
    return 'none';
  };
  const defaultStatus = p => {
    if (rank[p] < rank[plan]) {
      return 'none';
    }
    return addon ? 'addon' : 'included';
  };
  const overrides = {
    growth,
    momentum,
    enterprise
  };
  const status = p => overrides[p] === undefined ? defaultStatus(p) : normalize(overrides[p]);
  const plans = [{
    key: 'growth',
    label: 'Growth'
  }, {
    key: 'momentum',
    label: 'Momentum'
  }, {
    key: 'enterprise',
    label: 'Enterprise'
  }];
  const included = plans.filter(p => status(p.key) === 'included');
  const asAddon = plans.filter(p => status(p.key) === 'addon');
  const verb = plural ? 'are' : 'is';
  const srSentence = [feature, verb, 'available on:', included.map(p => `${p.label} plan`).join(', ') || 'no plans', asAddon.length > 0 ? `; as an add-on: ${asAddon.map(p => `${p.label} plan`).join(', ')}` : ''].join(' ');
  const statusCell = s => {
    if (s === 'included') {
      return <svg className="plan-availability-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
          <path d="M20 6 9 17l-5-5" />
        </svg>;
    }
    if (s === 'addon') {
      return <span className="plan-availability-addon">Add-on</span>;
    }
    return <span className="plan-availability-none">—</span>;
  };
  return <div className="plan-availability">
      <span className="plan-availability-sr">{srSentence}</span>
      <div className="plan-availability-content" aria-hidden="true">
        <div className="plan-availability-feature">{feature}</div>
        {(support || children) && <div className="plan-availability-body">
            {support && <>
                Contact <a href="mailto:support@tightknit.ai">Support</a> if you
                don't see this option or want to enable it for your community.
              </>}
            {children && <> {children}</>}
          </div>}
      </div>
      <div className="plan-availability-matrix" aria-hidden="true">
        {plans.map(p => <div className="plan-availability-plan" key={p.key}>
            <span className="plan-availability-plan-name">{p.label}</span>
            {statusCell(status(p.key))}
          </div>)}
      </div>
    </div>;
};

<PlanAvailability feature="Groups" plural plan="momentum" />

A Group is a collection of community members. Groups are useful for managing large numbers of users at once, mass DMs (*coming soon*), assignments to other areas of the Tightknit platform, and more!

<Info>
  Groups support up to 100 members when managed through the Slack app, and up
  to 1,000 members when imported from CSV in the Studio or managed through the
  API.
</Info>

<Note>
  **Terminology**: Note that Tightknit Groups are distinct from Slack's ["user
  groups"](https://slack.com/help/articles/212906697-Create-a-user-group) (a
  feature only on paid Slack Pro plans). For the purposes of this article, every
  time we mention "Group" we are referring to the Tightknit feature.
</Note>

## Managing Groups

Admins can manage groups from either the Admin Studio or directly in Slack. The two experiences differ in capability and scale, so pick the tab that matches where you're working.

<Tabs>
  <Tab title="Studio">
    Navigate to the **Groups** page in the [Admin Studio](https://studio.tightknit.ai) to view, search, and manage all of your community's groups. The groups list displays each group's name, slug, visibility, member count, Slack channel sync status, and creation date.

    <Frame caption="Groups page in the Admin Studio">
      <img src="https://mintcdn.com/tightknit/l9TleiX5XTWyzLSH/assets/community/groups/groups-list-studio.png?fit=max&auto=format&n=l9TleiX5XTWyzLSH&q=85&s=4ce6c0987533b591920cb1c0517add22" alt="Groups page in the Admin Studio" width="1299" height="754" data-path="assets/community/groups/groups-list-studio.png" />
    </Frame>

    From this page you can:

    * **Search** groups by name or slug
    * **Create** new groups (empty or from CSV)
    * **Click** any group to view its detail page with the full member roster

    ### Create a Group

    Click the **Create Group** button on the Groups page. You have two options:

    <Tabs>
      <Tab title="Empty Group">
        Create a group and configure it manually. Provide the following:

        * **Name** (required) — the display name for the group
        * **Slug** (optional) — a URL-friendly identifier; auto-generated from the name if not provided
        * **Community Site Visibility** — **Public** groups appear on the [Groups page](/community-site/pages#groups-list) and member profile pages. **Private** groups are hidden from the community site.

        After creation you'll be taken to the group detail page where you can add members, assign a permission set, and configure an award.

        <Frame caption="Create group modal in the Admin Studio">
          <img src="https://mintcdn.com/tightknit/l9TleiX5XTWyzLSH/assets/community/groups/create-group-modal-studio.png?fit=max&auto=format&n=l9TleiX5XTWyzLSH&q=85&s=852439e58365826bfa1edf4d7371e97c" alt="Create group modal in the Admin Studio" width="978" height="762" data-path="assets/community/groups/create-group-modal-studio.png" />
        </Frame>
      </Tab>

      <Tab title="From CSV">
        Bulk-create a group from a list of email addresses. Prepare a single-column CSV with email addresses (up to 1,000 rows), then either paste the contents or drag-and-drop the file into the upload area.

        After submitting, Tightknit processes each email (finding existing member profiles or creating new ones) and displays a report showing which emails succeeded and which failed. Click **View group** to navigate to the newly created group.

        <Info>
          CSV import creates member profiles for email addresses that don't yet exist in your community. This requires the **Create Standalone Members** feature to be enabled on your plan.
        </Info>
      </Tab>
    </Tabs>

    ### Group Detail Page

    Click any group in the list to open its detail page. Here you can:

    * View group metadata (name, slug, visibility, Slack sync status)
    * Browse the full member roster with profile information and join dates
    * **Edit** the group — update name, slug, visibility, membership award, and notification preferences
    * **Add members** individually or remove existing members
    * **Delete** the group

    ### Group Settings

    When editing a group, you can configure:

    * **Name** — the name associated with the group
    * **Slug** — the URL route for the group on the community site
    * **Banner Image** — an optional hero image displayed at the top of the group's detail page on the community site. Upload a banner when creating or editing a group in the Studio. For the best results, use an image with dimensions of 2560 x 640 px (4:1).
    * **Community Site Visibility** — controls whether the group is visible on the community site
    * **Permission Set** — assign a [Permission Set](/community/permission-sets) to the group; all members inherit the permissions
    * **Membership Award** — assign an [Award](/gamification/awards) to the group. All members automatically receive the award and only retain it while they are a member. When you add or remove members, the award is automatically given or revoked, respectively.
    * **Notify New Members** — when enabled, new members added to the group receive a private notification DM informing them of their membership and any inherited permissions

    <Frame caption="Group membership notification DM">
      <img src="https://mintcdn.com/tightknit/UUILCHqZIh1p4QUW/assets/community/groups/group-membership-dm.png?fit=max&auto=format&n=UUILCHqZIh1p4QUW&q=85&s=47b0cda5f37ed9645e83c061d4a8ffae" alt="Group membership notification DM" width="1700" height="518" data-path="assets/community/groups/group-membership-dm.png" />
    </Frame>

    ### Import Members from CSV

    You can also bulk-add members to an existing group. Open the **Import Members** dialog from the group detail page or via the **Cmd+K** command palette (**Import Members from CSV**). Select the target group, then paste or upload a CSV of email addresses (up to 1,000 rows). A results report shows which imports succeeded or failed, and you can check the **Import History** page for past import jobs.
  </Tab>

  <Tab title="Slack">
    Admins can manage Groups from the Slack app by clicking the `Groups` button under the **Community** module.

    <Frame caption="Groups list panel">
      <img src="https://mintcdn.com/tightknit/UUILCHqZIh1p4QUW/assets/community/groups/groups-list.png?fit=max&auto=format&n=UUILCHqZIh1p4QUW&q=85&s=c2c7807b45b0beb5664379b127b1d1d0" alt="Groups list panel" width="1282" height="1124" data-path="assets/community/groups/groups-list.png" />
    </Frame>

    From the Groups List panel, admins can view, manage, and create groups with up to 100 members. For larger groups, CSV imports, membership awards, and notification preferences, use the Studio tab.

    <Note>
      Within the Slack app, you can only add or remove Slack users in a group. To manage non-Slack members, use the [Studio Groups page](https://studio.tightknit.ai/-/groups).
    </Note>

    ### Groups Page Settings

    Click the `Settings` button in the Groups List panel to configure:

    * **Groups Page Banner Image** — displayed at the top of the Groups page on the community site. Only available when your community has a community site. For the best results, use an image with dimensions of 2560 x 640 px (4:1). Other ratios are cropped from the center to fill the 4:1 frame. [Create with Canva template →](https://www.canva.com/design/DAHOzzAVSA4/Wqn_oKTYFcAdMLgiaj8d3A/view?mode=preview)

    <Note>
      Groups Page Settings are not yet available in the Studio.
    </Note>
  </Tab>
</Tabs>

## Flair

<PlanAvailability feature="Flair" />

Flair is a short label badge that displays next to a member's name on posts, comments, and profile pages. It lets communities highlight group membership (e.g. "MVP", "Staff", "Expert") directly in the feed without visitors needing to click into a profile.

Flair is **per-group, opt-in, and off by default**. Admins make a group eligible for flair, and members choose which group's flair to display.

### Setting up flair (admins)

When creating or editing a group in the Studio, configure two settings:

* **Flair label** — a short label up to 7 characters (e.g. "MVP", "Staff"). This is the text that appears in the badge.
* **Show flair in feed** — a toggle that controls whether the flair appears on posts and comments. Both the label and the toggle must be set for the flair to display.

<Note>
  Private groups cannot show flair. If a group's visibility is set to **Private**, the flair toggle is disabled. Change the group to **Public** visibility first if you want to use flair.
</Note>

### Choosing flair (members)

Members select which group's flair to display from **Settings > Profile** on the community site. A member shows **at most one flair** at a time. If a member belongs to multiple flair-eligible groups, they pick which one to display.

The selection is self-healing: if the group later loses flair eligibility (label cleared, toggle turned off, group made private, or the member leaves the group), the flair stops displaying automatically.

## Changing the Membership Award on a Group

When you add, swap, or clear the Membership Award on a Group, Tightknit automatically updates every current member:

* **Add an award** (*none → Award A*): every member receives Award A, along with a Slack DM, activity log entry, and outbound webhook event.
* **Swap the award** (*Award A → Award B*): Award A is revoked from every member and Award B is assigned. Only the Award B assignment triggers a DM. The Award A revocation is silent to avoid a confusing "you lost an award" notification.
* **Clear the award** (*Award A → none*): Award A is silently revoked from every member. No DMs are sent.

Slack DMs are only sent to members with a connected Slack user.


## Related topics

- [MCP Server](/integrations/mcp.md)
- [Pages](/community-site/pages.md)
- [CLI](/integrations/cli.md)
- [Add user to group](/api-reference/groups/add-user-to-group.md)
- [Getting Started](/tags/getting-started.md)
