Skip to content

Rotate

Rotate picks people in order rather than at random, so everyone gets a turn before anyone gets a second one. It suits work that should go round the team – standup hosts, code reviews, the support pager, who fetches the coffee.

  • Channel: @Eeny rotate
  • List: @Eeny rotate Awesome People
  • Slack group: @Eeny rotate @engineering - requires the usergroups:read permission

In this example, “Awesome People” is the name of a custom list. You can create custom lists of users by following the instructions in the list guides.

Screenshot of rotating through a list Screenshot of rotating through a list

Every rotate posts a Next button. Press it and Eeny moves the rotation on to whoever is up next – no need to retype the command, and anyone in the channel can press it.

You can also start the next turn by typing the command again. Both do the same thing: they advance the same rotation.

If two people press Next on the same message at the same time, only the first one advances the rotation. The second gets a quiet “this rotation has already moved on” note telling them who is up now, so nobody is skipped by a double press.

Rotate takes 1, 2 or 3 people at a time, the same as picking:

  • @Eeny rotate 2 - takes the next 2 people from the channel
  • @Eeny rotate 3 Awesome People - takes the next 3 people from your list

When you rotate more than one person, each of them also gets a Replace button. Replace swaps just that person for the next one in the order and leaves the others alone – useful when one of the people up this turn is away.

Replace buttons are hidden when there is nothing to swap in: on a single rotate (Next already does exactly that), and when everyone in the channel, list, or group has already been selected this turn.

  • Lists rotate in the order the list is in – the order people were added.
  • Channels and Slack groups rotate in a fixed internal order that Eeny derives from Slack’s member ids. It isn’t alphabetical, but it is stable: the same channel gives the same order every time.

Membership is read fresh on every turn, so people who join or leave are picked up straight away. Someone who joins mid-rotation simply takes their place in the order, and someone who leaves is passed over.

If everyone from the last few turns has left, the rotation starts again from the top and says so.

Eeny remembers where each rotation got to in each channel. Rotating “Awesome People” in #standup and in #code-review keeps two independent rotations, so the two channels don’t advance each other’s turn.

Deleting a list deletes its rotations along with it.

  • Pick is random. Any given person can come up twice in a row, and fair picking only biases the odds.
  • Rotate is a queue. Everyone gets exactly one turn before the order comes round again.

Use pick when you want a genuinely random choice, and rotate when the fair thing is a turn each.