Feedback on naming, not a bug report — the behaviour below is by design and
documented. The problem is that the name works against the design.
A “shift swap” in IRM is one-way. The requester gives away their own shift;
whoever accepts takes it on. The accepter’s own shifts are untouched. There is
no reciprocal leg — nothing comes back the other way.
That is a coverage handoff, not a swap. Everywhere else the word “swap” is used,
it means a two-sided trade.
What this causes
Someone accepts what they read as a mutual trade and is surprised to find they
have simply absorbed an extra day. The Slack notification reinforces it: it
announces a “shift swap request” and then says the teammate “has taken the shift
swap request”, which reads like a completed exchange rather than one person
picking up another’s shift.
A genuine two-way trade requires two separate requests, one filed by each
person. That is not obvious from the UI.
Suggestions
- Rename the action to something one-directional: “request cover”, “give away
shift”, “coverage request”. - Or keep the name and make the notification copy explicit about direction, e.g.
“X is covering Y’s shift on . Y’s other shifts are unchanged.” - Either way, a line in the request dialog noting that taking someone else’s
shift needs an override would help, since that is the adjacent thing people
are usually trying to do.