# Teams

**URL:** https://heroiclabs.com/docs/hiro/server-framework/teams/
**Keywords:** teams, hiro
**Categories:** hiro, teams, server-framework

---


# Teams

Read more about the Teams system in Hiro [here](../../concepts/teams/).

## Functions

### Create

Create a new team (i.e. Nakama group) with additional metadata which configures the team.

```go
request := &hiro.TeamCreateRequest{
  Name:          "MyTeam",
  Desc:          "My team description",
  Open:          true,
  Icon:          "iconUrl",
  LangTag:       "",
  SetupMetadata: "<metadata>",
}

team, err := systems.GetTeamsSystem().Create(ctx, logger, nk, request)
if err != nil {
  return err
}
```

### List

List teams which the user can join.

```go
request := &hiro.TeamListRequest{
  Cursor:   "",
  Location: "uk",
  Limit:    10,
}

teams, err := systems.GetTeamsSystem().List(ctx, logger, nk, request)
if err != nil {
  return err
}
```

### Search

Search for teams based on given criteria.

```go
request := &hiro.TeamSearchRequest{
  Input:   "TeamName",
  Limit:   10,
  LangTag: "uk",
}

teams, err := systems.GetTeamsSystem().Search(ctx, db, logger, nk, request)
if err != nil {
  return err
}
```

### WriteChatMessage

Send a message to the user's team, even when they're not connected on a realtime socket.

```go
userId := "userId"
request := &hiro.TeamWriteChatMessageRequest{
  Id:      "teamId",
  Content: "Heya team!",
}

resp, err := systems.GetTeamsSystem().WriteChatMessage(ctx, logger, nk, userId, request)
if err != nil {
  return err
}
```