# Recognition

> The Recognition space module, in the Planning & HR tab. The wall where a member publicly recognizes 1 to 20 colleagues, with an optional community value, reactions and comments; the community values, the team's dashboard, the engagement points and the e-mail to whoever was recognized. The types (Appreciation, Welcome, Milestone…), each with its art and phrase, and the community's own art.

**Recognition** is a wall of praise between colleagues, in front of the whole team: a member publicly thanks one or more people for what they did, and whoever sees the space reads, reacts and comments. The team can tie the praise to the **community values** and give **engagement points** to whoever recognizes and whoever is recognized.

It is a [space module](/conceitos/modulos) in the **Planning & HR** tab of **Add Space**. A community can have **several** Recognition spaces, for example a wall per team or per area, each with its own audience; the values belong to the whole community and apply in all of them.

## What it is for

| Community | How it uses it |
|---|---|
| Company HR | Reinforce the community values with real examples |
| Coworking | Thank whoever helped with the room move or organized the event |
| Community of practice | Give visibility to whoever answered questions and helped newcomers |

## How it works

### Who does what

| Who | What they do |
|---|---|
| Whoever has access to the space | Sees the wall, recognizes colleagues, reacts and comments |
| The author | Deletes their own recognition |
| The team (owner, admin, moderator and finance) | Deletes any recognition or comment |
| Owner and admin | Set up the community values and see the dashboard |

Whoever has no access to the space doesn't see the recognitions, neither in the Feed nor through the API. With several spaces, each recognition stays in the space where it was made and only shows to whoever has access to that space.

### Recognizing someone

In **Recognize**, the *"Recognize someone"* window asks for:

- **Who you want to recognize**: 1 to 20 people of the community with access to the space. Nobody recognizes themself.
- **Community value (optional)**: shows only when there are active values.
- **Message**: up to 500 characters.

The recognition shows on the wall and in the section's [Feed](/espacos/feed), for whoever sees the space; in the Feed, the **Recognitions** filter shows only them. Each card has reactions (one per person) and comments, with replies, as in a post.

### Types and art

Every recognition has a **type**, and every type has an art and a phrase:

| Type | Phrase |
|---|---|
| **Appreciation** (the default) | *Thank you, truly* |
| **Welcome** | *Welcome to the team* |
| **Milestone** | *Milestone reached* |
| **Award** | *Standout* |
| **Event shout-out** | *Great job at the event* |
| **Course completed** | *Course completed* |
| **Work anniversary** | *Another year with us* |

In **Recognize**, the **Type** field shows a thumbnail of the art of each type that is on, with **Appreciation** already selected. Recognitions made before types existed show as **Appreciation**.

**The card opens with the art.** On the wall and in the Feed, the card starts with the type's art, a wide banner at 3:1. On the left half of the art sit the type's phrase and the photos and names of whoever was recognized, one name per line (with three people or more, *"Ana Prado"* and *"Carla Nunes and 3 more"*); the photo of whoever recognized shows small, as a badge on the recipient's photo. On a narrow card (on a phone), the phrase and the names go right under the art. In the Feed, the art has a capped height.

Under the art comes a sentence: *"**David** recognized **Ana Prado** for **Collaboration**"* (without a value, no *"for…"*), with the sender's name leading to their page. On the next line, how long ago and in which space. The message comes as a quote, with a bar in the community's color. Last, the reactions, **Comment**, **Card** and, for whoever may, **Post on LinkedIn**.

**The wall** has two columns when there is room (on a 1280 px computer screen, for example) and one column on a phone. Cards in the same row have the same height, with the actions at the bottom, and the message shows up to 4 lines, with **See more** to read the rest (and **See less** to fold it back).

**The default art** is Memberfy's 3D images, one per type, the same in every community: it does not change with the community's colors.

**Setting up the types.** *Role: owner or admin.* In the side menu, open the space's **…**, **Edit space**, and scroll to **Types and art**. The setting *"Applies to every Recognition space in the community."* Each type shows its current art, its phrase and a switch to turn it on or off; every change is saved right away.

- **On and off**: a type that is off leaves **Recognize**; its older recognitions keep their art. At least one type stays on (*"At least one recognition type must stay on."*).
- **Upload own art**: PNG, JPG or WebP, up to 5 MB, at least **1200 px** wide. **1800×600** (3:1) is recommended, with the motif on the right and the left half free: the phrase and the name go there. The image is cropped to the center at 3:1; the **Preview** shows the art pinned to the right, with the phrase and an example name on the left, before **Save art**. On own art, the text area gets a light shade (and a light veil when the art is too dark for the text to be read). Own art also applies to that type's older recognitions. **Replace art** swaps the current one.
- **Back to default**: deletes the own art, and the type goes back to the default art on every recognition, older ones included.

**On the Card and in the e-mail.** The **Card** is a 1200 px wide PNG that mirrors the app's card: on top, the 3:1 art with the phrase, the photos and the names (one per line) on the left; below, *"X recognized Y for {value}"*, the day, the message as a quote and the community's logo. The height follows the content, between 1.91:1 and 1:1.25: a one-line message gives 1200×764, and a long message goes up to 8 lines, ending in *"…"*. The *you were recognized* e-mail shows the type's art and phrase at the top.

**In workflows.** The recognition received trigger (`recognition.received`) carries the recognition's type in the optional `type` field (`APPRECIATION`, `WELCOME`, `MILESTONE`, `AWARD`, `EVENT`, `GRADUATION` or `WORK_ANNIVERSARY`). See [Workflows](/notificacoes/workflows).

### The e-mail to whoever was recognized

Each person recognized gets an e-mail with the author, the message and the button to open the recognition, in their language and with the community's color. The e-mail is in the **Recognitions** category, on by default; whoever turned it off in [E-mails from this community](/notificacoes/emails-desta-comunidade) doesn't get it, and the footer turns off only that category in one click. The notice goes out 10 minutes later and counts toward the limit of 3 notices per person per day. There is no e-mail to the rest of the community.

### The community values

The values (for example *Collaboration*, *Ownership*, *Customer first*) are **optional**. The owner and the admin set them up when creating the space or later, in **Manage recognitions › Community values**: name (up to 80 characters), optional description (up to 300), the order and whether it is **active**. Up to 30. A saved value can't be deleted: **deactivate** it to take it out of the choice; recognitions that already use it keep showing it. With no active values, the field doesn't show when recognizing.

The values belong to the **community**: the same list applies in every Recognition space, and a change made in one applies to all. The values window says so: *"Values belong to the community: the same list applies in every Recognition space."*

### The dashboard

The **Manage recognitions** bar, for the owner and the admin, shows the recognitions of the last 30 days and opens the **Dashboard**: for the chosen period (up to 366 days, counted in the community's time zone), **Recognitions made**, **People who recognized** and **People recognized**. With several spaces, the bar and the dashboard show the open space.

### engagement points

In **Members › Gamification**, two new actions: **Recognize a colleague** (for the author) and **Be recognized** (for each person recognized). Both start at **0**: they only count if the owner gives them points. So nobody climbs engagement by volume or by collusion:

- whoever recognizes earns the **Recognize a colleague** points for **up to 3 recognitions a day**;
- whoever is recognized earns the **Be recognized** points **once a week per author** (the same colleague recognizing the same person again within 7 days doesn't count again).

Past the limit, the recognition is published normally, just without the points. Deleting a recognition takes back exactly the points it gave. Days follow the community's time zone. See [Engagement](/espacos/ranking) and [Gamification](/membros/gamificacao). The limits count the recognitions of all spaces together.

### Filter and count by value

On the wall, **Filter by value** shows only the recognitions of one community value, or those with **No value**; **See all** goes back to the whole wall. Anyone with access to the space uses the filter.

On the **Dashboard**, the **By value** block shows how many recognitions each value got in the period (and those without a value) and the 5 most recognized people in each. A turned-off value with recognitions in the period still shows, marked *inactive*.

### The card to share

On the recognition's card, **Card** downloads a PNG image with the community's colors and logo, who recognized, who was recognized, the value and the message, to share outside the community. The card has no e-mail and nothing beyond what the wall already shows.

The button shows for whoever gave the recognition, whoever was recognized and the team (owner, admin, moderator and finance). A deleted recognition makes no card (*"This recognition is no longer available."*).

### Post on LinkedIn

The LinkedIn button, next to **Card**, shows only for **whoever gave** the recognition and **whoever was recognized**. The team still downloads other people's cards, but does not post someone else's recognition.

- **On a phone**, it opens the system share sheet with the card image and the text ready; just pick LinkedIn.
- **On a computer**, it downloads the card, copies the text and opens LinkedIn in a new tab: *"Card downloaded and text copied. On LinkedIn, paste the text and attach the image."* If the browser blocks the tab, the notice brings the **Open LinkedIn** link.

The text depends on who posts. A recipient: *"I received a recognition from {sender} in the {community} community: “{phrase}”"*. The sender: *"I recognized {names} in the {community} community: “{phrase}”"*.

## Step by step

### Create the space

1. In the menu, open **Add Space** and pick the **Planning & HR** tab.
2. Pick **Recognition** and click **Next**. There is no "one or several" question.
3. Give it a name, an icon and who has access, as in any space. If you want, set up the community values right away.
4. For a wall per team or per area, create another Recognition space and give it the right audience. The community values already set up apply there too.

### Recognize a colleague

1. Open the space and click **Recognize**.
2. Type the name of one or more colleagues, pick a value (if any) and write the message.
3. Click **Recognize**. The card shows at the top of the wall.

## Example

The support lead recognizes Ana and Bruno with the value *Customer first*: *"They solved the integration problem on a Saturday, without anyone asking."* The team reacts with 👏 and comments. With 5 points on **Recognize a colleague** and 10 on **Be recognized**, the lead earns 5 and each of the two earns 10. Ana and Bruno get the e-mail.

## Through the assistant (MCP)

There are 14 tools: list the wall (`list_recognitions`, with a filter by person), open a recognition with its comments, search who can be recognized, **recognize** (`create_recognition`, with `dry_run` to see first who gets the e-mail), react, comment, see the values, and delete a recognition or a comment, with confirmation. The owner and the admin also add, edit, reorder and deactivate values and see the dashboard. See [Tools · Members › Recognition](/mcp/ferramentas-membros#recognition). With more than one Recognition space, the assistant asks which one (`space_id`) when recognizing and searching people; the list without `space_id` gathers the spaces the person opens, and the dashboard without `space_id` adds them all up.

`list_recognitions` filters by value (`value`: name, id or `none` for those without one), `get_recognition_dashboard` brings the by-value block and `get_recognition_card` returns the card as an image for whoever may download it. Every recognition brings `hasCustomArt`, `canShare` (may get the card) and `canPostToLinkedIn` (only the author and whoever was recognized): the assistant only suggests posting on LinkedIn when it is true.

**Types and art**. `list_recognition_types`, for whoever opens the space, lists the seven types with label, phrase, art and whether each is on. `create_recognition` takes `type` (`appreciation`, `welcome`, `milestone`, `award`, `event`, `graduation` or `work_anniversary`; without it, Appreciation), and the `dry_run` shows the type, the phrase and the art; `list_recognitions` filters by `type`; `get_recognition` brings the type and the art. The owner and the admin turn types on and off with `update_recognition_type` (turning off asks for confirmation), upload own art with `upload_recognition_type_art` (from a URL or an image; a type's first own art goes straight up, and replacing own art that already exists asks for confirmation) and go back to the default with `remove_recognition_type_art` (asks for confirmation). Own art is 3:1, at least 1200 px wide; without it, `artUrl` is the type's default art, the same in every community.

## Common errors and how to fix them

| Situation | Why | What to do |
|---|---|---|
| I can't find the person when recognizing | They have no access to the space, or it's you | Change the space's access |
| The value field doesn't show | There is no active value | Add or activate one in **Community values** |
| Nobody earned points | Both actions are at 0 | Give points in **Members › Gamification** |
| *"Choose the Recognition space: this community has more than one"* (API or assistant) | There are several spaces and the request didn't say which | Send the space (`spaceId` in the API, `space_id` in the assistant) |

## In the API

The space is `module: "recognition"`, and the community can have several. The routes live under `/api/recognitions`, with `X-CommunityId`: `GET` and `POST /api/recognitions`, `GET /api/recognitions/{id}`, `DELETE /api/recognitions/{id}`, `PUT` and `DELETE /api/recognitions/{id}/reaction`, `GET` and `POST /api/recognitions/{id}/comments`, `DELETE /api/recognitions/{id}/comments/{commentId}`, `GET /api/recognitions/people`, `GET /api/recognitions/dashboard` (`from`, `to`, `spaceId`) and the values at `GET` and `POST /api/recognitions/values`, `PUT /api/recognitions/values/{valueId}` and `PUT /api/recognitions/values/order`. In the Feed, the type is `recognition`; in engagement, the actions are `GIVE_RECOGNITION` and `RECEIVE_RECOGNITION`.

**Several spaces**: `GET` and `POST /api/recognitions`, `/people`, `/values` and `/dashboard` accept `spaceId`. With a single space it is optional and nothing changes; with several, creating and searching people without it returns `422` (`spaceRequired`). Lists without `spaceId` gather the spaces the person opens, and each recognition carries its `spaceId`; the dashboard without `spaceId` adds them all up and returns `spaceId: null`. The by-id routes check the recognition's own space. The values are the same in any space.

| Error | When |
|---|---|
| `403` | No access to the space, deleting someone else's recognition without being on the team, values or dashboard without being owner or admin |
| `404` | There is no Recognition space, the `spaceId` is not one of them, or the recognition doesn't exist (or belongs to a deleted space) |
| `422` | Recognizing yourself, more than 20 people, a person without access to the space or from another community, a message over 500 characters, or no `spaceId` in a community with several spaces (`spaceRequired`) |

**By value and card**: `GET /api/recognitions` takes `valueId` (an id or `none`); `GET /api/recognitions/dashboard` brings `byValue` (each value with `recognitions` and `topPeople`); `GET /api/recognitions/{id}/card` returns the PNG, with `403` (`cardDenied`) for someone who didn't give it, wasn't recognized and isn't on the team, and `404` for a deleted recognition. Each recognition brings `canDownloadCard`, `canShare` (the card's rule), `canPostToLinkedIn` (`canShare` and the caller is the author or one of the recipients) and `hasCustomArt` (the art is the community's own). The card is 1200 px wide and as tall as its content (from 1200×629 to 1200×1500).

**Types and art**: `POST /api/recognitions` takes `type` (`APPRECIATION`, the default, `WELCOME`, `MILESTONE`, `AWARD`, `EVENT`, `GRADUATION` or `WORK_ANNIVERSARY`), and `GET /api/recognitions` filters by `type`. Every recognition, on the wall and in the Feed, carries `recognitionType`, `typeLabel`, `typePhrase` and `artUrl` (the own or the default art, already resolved). `GET /api/recognitions/types` lists the types for whoever opens the space; `PUT /api/recognitions/types/{type}` turns one on or off, `POST /api/recognitions/types/{type}/art` uploads the art (field `art`; the image is re-encoded to 1800×600 without metadata) and `DELETE /api/recognitions/types/{type}/art` goes back to the default, owner and admin only (anyone else: `403`). An unknown or disabled type when recognizing, turning off the last type that is on, or art in another format, over 5 MB or under 1200 px wide: `400`, with the translated message.

## Related

- [Feedback](/espacos/feedbacks)
- [Engagement](/espacos/ranking)
- [Gamification](/membros/gamificacao)
- [Modules](/conceitos/modulos)
- [E-mails from this community](/notificacoes/emails-desta-comunidade)
