Skip to content

Kudos recipe — employee recognition

The Kudos recipe (openintranet_kudos) adds a peer-to-peer recognition system to the intranet — say thanks publicly. Any employee can grant kudos to one or more colleagues with a short message describing what the recognition is for. Granted kudos show up on the recipient’s profile, on a global Kudos listing, and inside dashboard blocks (“Kudos for the team this week”).

Kudos is a recipe, not a default-installed module — install it with drush recipe recipes/openintranet_kudos (or pick it from the Add components page during install) when you decide your intranet should make recognition a first-class action.

The recipe ships:

  • A new Kudos content type.
  • Two fields on the kudos node — For whom (entity reference to one or more users) and For what (long text).
  • An auto-entity-label that synthesises a sensible title from the recipient list (“Kudos for Alice and Bob”) so the editor never has to type one.
  • A Kudos main-menu link and a kudos-list page.
  • A block — Users’ kudoses — for the dashboard / sidebar.
  • The right permissions for authenticated users to grant kudos to anyone, edit and delete their own.

That is the whole feature. It deliberately stays small — recognition is a social ritual, not a heavyweight workflow.

The bundle is straightforward:

FieldTypeNotes
TitleAuto-generated by the Auto Entity Label module from the recipient list — editors never edit it.
For whomEntity reference to userrequired, multi-value, sorted by First name.
For whatLong text — required. The public thank you message. The description prompts: “Explain what this Kudos is for. Say your thanks and your praises here. This will be visible to the team and others in the organisation.”

Each kudos node is revisioned (so edits track history) and the bundle has a menu entry available so admins can promote a single notable kudos into the main navigation.

Every authenticated user has a Grant kudos link in the main menu (the kudos node-add form). The form is just three fields:

  1. For whom — autocomplete that selects one or more colleagues.
  2. For what — the praise message.
  3. Save — publish.

There is no approval step — kudos publish immediately.

The recipe ships a dedicated view called kudos_list. It paginates through every published kudos with the recipient avatars, the message text, and the granted by / when metadata. The page is the natural landing for what’s happening on the appreciation front this week.

The recipe places a Users’ kudoses block (openintranet_theme_users_kudoses) that lists the most recent kudos granted to any of the people the current user follows / works with. It is meant for sidebars and dashboard regions; admins can move it to any other region from /admin/structure/block.

A user’s profile page lists the kudos they have receivedthe things colleagues thanked them for — in a chronological feed. This builds up as a public appreciation history that pairs naturally with the Engagement scoring on the Employee Directory.

  • Employee Directory — Each profile lists received kudos and contributes them to the engagement signal.
  • Social interactions — Kudos can be liked and commented on like any other content (the same reactions / comments primitives).
  • Messenger — A small ECA model can broadcast a Messenger notification when a user is granted kudos (“Alice just received kudos from Bob: Great work on the migration!”).
  • Search — The kudos content type is indexed by DB Index Content automatically.
  • AI assistant — Editors can use the AI button in the For what CKEditor field to polish their message.
  • Multilingual — Kudos strings can be translated per language; the content type opts into Content language settings.

Granted by the recipe to Authenticated user:

PermissionDefault role(s)
Create kudos contentAuthenticated user
Edit own kudos contentAuthenticated user
Delete own kudos contentAuthenticated user
Edit any kudos contentAdministrator
Delete any kudos contentAdministrator
Terminal window
cd web
drush recipe recipes/openintranet_kudos
drush cr

The recipe is idempotent — running it twice just no-ops the second time. After applying it, the Kudos main-menu link is visible to every authenticated user and the Users’ kudoses block can be placed on the dashboard.

To remove the recipe, uninstall its modules and delete the kudos content type and fields by hand — recipes do not provide an automatic uninstall path (this is a Drupal core limitation, not specific to Open Intranet).

  • node, text, user, views, views_ui, options — Drupal core
  • Default Content — the recipe ships sample kudos to seed the system
  • Auto Entitylabel — auto-generates kudos titles from the recipient list
  • openintranet_theme — provides the Users’ kudoses block