+1 (315) 925-6830

Fiesta: A Small Slack Bot for Team Culture

Updated on:
4 min read
Fiesta Bot, a cat in a party wizard hat, posting a team birthday message

Small moments build teams

Team culture gets built in small moments, like the morning your whole team wishes you a happy birthday before you have finished your coffee.

In an office, those moments happen on their own. Someone brings a cake, someone else notices, and word spreads by lunch. On a remote or hybrid team, nothing spreads by lunch. If nobody posts in Slack, the day passes like any other.

We wanted to fix that for our own team. So we built Fiesta, a small Slack bot that makes sure no birthday slips by. Then we made it open source.

Why the usual fixes fail

Most teams try one of three things, and each one breaks in its own way.

  • A shared spreadsheet. Someone starts it, half the team fills it in, and new hires never hear about it.
  • A shared calendar. Reminders fire for everyone, including the birthday person, and the surprise is gone.
  • The one person who remembers. Usually an office manager or a team lead. It works until they go on vacation, get busy, or leave.

All three depend on someone doing admin work forever. Software should do that job instead.

What Fiesta does

Fiesta handles the whole birthday routine inside Slack, in three steps. Nobody has to maintain a list.

  1. It asks. A few days after someone joins, Fiesta sends them a friendly DM with a Set my birthday button. If they don’t answer, it reminds them twice, then stops. A Never ask me button ends it right away.
  2. It gives a heads-up. Three days before a birthday, everyone except the birthday person gets a private DM. The team has time to plan a card, a call or a gift, and the surprise stays a surprise.
  3. It celebrates. On the day, Fiesta posts in your team channel and mentions the birthday person with a congratulation picked from a list you write. You can add GIFs to the mix too.

Members can change their birthday any time with the /birthday command. For a team that already exists, one command asks everyone at once.

Privacy and opt-outs

A team-building tool fails the moment it makes someone uncomfortable. Not everyone wants their birthday celebrated, and not everyone wants their age known. So every choice stays with the member.

  • The birth year is optional and never shown. Only the day appears.
  • Hide my birthday means no heads-up DMs about you and no post on the day.
  • Mute other people’s birthdays stops the heads-up DMs, for anyone who finds them noisy.
  • Delete means delete. Removing your birthday erases it from the database.
  • No nagging. The last ask says it is the last one. After that, Fiesta leaves you alone.

People mute a bot that nags or overshares, so these choices decide whether Fiesta gets used at all.

A small tool, built like a real one

A birthday bot sounds like a weekend toy. But a missed birthday, or the same congratulation posted twice, is worse than no bot at all. So we built Fiesta with the same care we put into client systems. We wrote about why that matters in “It Works” Is Not the Same as “It’s Built Right”.

  • It never posts twice. Every message is queued with a unique key before it is sent. If the bot restarts mid-send, the duplicate is dropped.
  • It catches up. If the server was down, Fiesta replays up to a week of missed days when it comes back. Older birthdays are skipped, because a congratulation two weeks late feels awkward.
  • It runs anywhere. Fiesta connects out to Slack, so it needs no public web address and works behind a company firewall. It is one small program and one database file.
  • It changes without a redeploy. Post time, timezone, reminder timing and on/off switches all live in the database and change with one command.
  • It is tested. More than 300 automated tests cover the logic.

What we learned about team-building tools

Fiesta is about birthdays, but the lessons apply to any tool meant to bring a team closer: work anniversaries, welcome messages for new hires, shout-outs, coffee pairings.

  • Live where the team talks. Nobody opens a separate culture app, so Fiesta lives in Slack.
  • Automate only the admin. The bot reminds and posts. Colleagues write the replies in the thread, and those are what people remember.
  • Make opting out easy. People trust a tool they can switch off.
  • Keep it boringly reliable. A culture tool that posts twice or on the wrong day turns into a team joke.
  • Start small. Fiesta does one job. GIFs came in a second phase, after the plain post worked.

Try Fiesta on your team

Fiesta is free and open source under the MIT license. You can find it at github.com/EzcloudllcNY/fiesta-bot. To set it up, create the Slack app from the included manifest, paste in two tokens, and start the bot with Docker or Python.

If you want a tool like this for your team, or a bigger system built with the same care, talk to us. We have shipped more than 200 projects over 13 years.