Skip to main content
AI & Technology

PizzaBot: Open-Source Slack Recognition, Extra Cheese

·
PizzaBot: Open-Source Slack Recognition, Extra Cheese

Some of the best work in an agency happens between the things on the job description.

The designer who rescues a last-minute edit. The account manager who spots a missing detail before the client does. The teammate who quietly helps someone else get a difficult project over the line.

Then Slack fills up, another brief arrives, and that small moment of brilliance disappears somewhere between “quick question” and “has anyone seen the latest version?”

We wanted a better way to say: we saw that. Thank you.

So, naturally, we built a pizza bot.

PizzaBot is our open-source Slack recognition system: a small, cheerful way to thank teammates, celebrate the people doing good work and turn those thank-yous into rewards. We built it for life inside Grassroots Creative Agency, and we are sharing the code so other teams can make it their own.

Get PizzaBot as a free resource, or take a look inside the GitHub repository.

A thank-you with extra cheese

The basic idea fits in one Slack message:

@Jo 🍕 Thanks for turning that last-minute edit around.

Jo receives one slice. You use one pizza from your daily giving allowance. The reason sits alongside the recognition, where the team can see what actually helped.

Our starting allowance is five pizzas per person, per Dubai day. Admins can change it. You can give a slice for a brilliant bit of creative work, a patient explanation, a helpful handover or the sort of behind-the-scenes effort that deserves a moment in the sun.

The pizza makes it easy to join in. The specific thank-you gives it meaning.

And yes, you can thank a group:

@Jo @Sam 🍕🍕 Thanks for getting the shoot over the line together.

That gives two slices each and uses four of your daily allowance. PizzaBot counts the total pizzas in the message for every unique eligible person mentioned, wherever their name appears. If an award exceeds your allowance or includes an ineligible recipient, the whole award is refused with private feedback. Keep separate awards in separate messages when you want different amounts.

Why make recognition part of the everyday conversation?

In a busy creative team, useful work is often collaborative. A great final result might involve someone sharing an idea, someone fixing a problem and someone making the handover painless. Recognition works best when there is room for all of those contributions.

PizzaBot gives us a simple habit to build around:

  • Make helpful work visible. A public thank-you explains the contribution, rather than leaving the team to guess what “great job” meant.
  • Let colleagues recognise each other. The people closest to the work can acknowledge the help they received.
  • Give quieter contributions a place. Research, patience, organisation and support can get a slice alongside the headline creative work.
  • Keep it in the conversation. Staff use Slack, where they already work, instead of remembering another portal.
  • Make the follow-through tangible. Team-chosen rewards give people something enjoyable to work towards.

There is a serious idea underneath the cheese. Gallup and Workhuman's longitudinal recognition research found an association between high-quality recognition and employees staying with their organisations. That research is about the quality of recognition, not this bot. PizzaBot is newly launched; its results will depend on how consistently and thoughtfully our team uses it.

Our immediate ambition is modest and useful: make a good thank-you easier to give and harder to miss.

Celebrate the people giving, too

Receiving recognition feels good. Being the person who notices other people's effort matters as well.

PizzaBot has weekly, monthly and all-time leaderboards for slices received and slices given. Giving standings also show how many different teammates someone thanked. Tied scores share a rank, so the system can celebrate joint winners.

You can check the standings privately:

/pizza leaderboard week received
/pizza leaderboard week given

Or intentionally share a leaderboard with the team in the recognition channel:

/pizza leaderboard share
/pizza leaderboard share week given

When enabled, the bot also posts a weekly wrap-up and monthly recap with top receivers, top givers, team totals and selected real thank-you messages. Our weekly period runs from Friday at 4 pm to the following Friday at 4 pm, Dubai time. A scheduled worker posts the completed period's recap after it becomes due.

The rankings are a conversation starter. Managers still need to notice good work, recognise people fairly and keep an eye on whose contributions might be getting overlooked. We use pizza to celebrate helpful behaviour; performance reviews and compensation belong in their own processes.

Small pizza. Medium pizza. Your choice of toppings

Received pizzas earn slices. Slices can then be spent on a reward from your team's catalogue.

We started with three editable size presets: Small at six slices, Medium at eight and Large at twelve. The names are a playful organising system. Your admins choose the actual prizes, prices and availability.

An example menu might include a coffee, a team lunch, a book allowance or an actual pizza. Those are ideas for a team to choose and fund, not a preloaded list or a promise from Grassroots. The bot starts with an empty catalogue.

Staff can track a reward and see their progress without spending anything. Redeeming asks them to confirm the slice cost, then creates a request for an admin to fulfil. Admins can cancel a pending request and refund its slices if needed.

One detail we care about: spending your slices does not erase your recognition. Your lifetime earned score stays intact. Available reward slices and the daily pizzas you can give are separate numbers, too. Receiving a pizza does not refill your giving allowance.

The admin menu comes with plenty of room to experiment

Every team has a different idea of what makes a good reward. So the people running PizzaBot can change the everyday settings themselves, inside Slack.

With /pizza admin, configured admins can add, edit and archive rewards, choose slice costs, manage stock, fulfil requests and cancel/refund pending ones. /pizza admin settings lets them change the daily giving allowance, the three size presets and the weekly or monthly celebration switches.

They can also correct available balances with a recorded reason. Those corrections preserve earned recognition scores. Personal balance checks, goals, rewards and admin replies stay private; public leaderboard sharing is an explicit choice.

Workspace/channel selection, admin membership, credentials and timezone remain backend configuration. We designed flexibility around the day-to-day decisions a reward admin actually makes.

We built it for ourselves. You can have a slice

Grassroots is a creative agency in Dubai. We build things to solve problems we encounter while doing the work, and some of those things are useful enough to share. PizzaBot joins our free tools and resources on that basis.

The code is available on GitHub under the MIT license. You can inspect it, fork it, adapt it and run it for your own team, while keeping the license and copyright notice.

Free code means free code. Your team supplies the Slack workspace, hosting, database, setup, maintenance and prizes. This is a self-hosted resource, with no Grassroots-hosted free plan or public “Add to Slack” installation.

Under the hood, it is a standalone Next.js API service, a dedicated PostgreSQL database and a small scheduled worker. Slack is the staff interface. There is no requirement to connect it to our dashboard or Assistant, and it does not need an AI API key. The current version uses Dubai time; a different timezone needs a backend change.

The repository includes a pizza icon, a Slack app manifest template, setup instructions, a plain-English guide, technical architecture and tests. Your own Slack app points to your own backend and keeps your team's recognition records in your database.

Start with the PizzaBot resource page, then follow the self-hosting guide. If you improve it, we would love to see what you bring to the table.

Pass the pizza. Name the good work

You do not need a grand announcement to thank someone. A useful detail and a slice will do.

“You caught that mistake before it went live.”

“You made the handover easy.”

“You helped me find a better answer.”

That is the habit we want PizzaBot to help us grow. Something small, specific and generous, repeated often enough to become part of how the team works.

Fork PizzaBot on GitHub. Choose your prizes. Give good work a slice.

Frequently Asked Questions

What is PizzaBot?

PizzaBot is an open-source Slack employee recognition bot built by Grassroots Creative Agency. Staff thank teammates with a direct mention and a pizza emoji, earn slices, view leaderboards and redeem rewards chosen by their team.

Is PizzaBot free?

The source code is free under the MIT license. You can fork it and run it in your own Slack workspace. Your team supplies its own hosting, database, setup and prizes; Grassroots does not provide a hosted free plan or one-click public installation.

Can admins change the prizes and slice costs?

Yes. Configured PizzaBot admins can add and edit prizes, set slice costs and stock, change the daily giving allowance and reward-size presets, and switch weekly or monthly reports on or off through Slack. Admin membership, workspace/channel IDs and timezone are backend configuration.

How do multiple mentions and pizza emojis count?

Every unique eligible person directly mentioned receives the total number of pizza emojis in that message. @Jo @Sam with two pizzas gives two slices each and uses four of the giver's daily allowance. An invalid or over-budget award is refused as a whole.

Does PizzaBot need the Grassroots dashboard or AI?

No. It runs as its own Next.js API service, PostgreSQL database and scheduled worker. Slack is the staff interface. You do not need the Grassroots dashboard, Grassroots Assistant or an AI API key. The current version uses Dubai time for resets and reports.

READY TO BUILD SOMETHING BOLD?