Context messaging
Article Content
Pilla lets you send messages tied to specific items like shift patterns, work items and leaderboard entries. These context threads keep discussions organised by topic and make it easy to find related conversations.
What is context messaging?
Context messaging links conversations to specific items in Pilla:
- Shift patterns -- discuss a shift pattern assignment
- Work items -- coordinate on a work activity
- Leaderboard entries -- talk about team performance for a specific month
The context is automatically attached so everyone knows exactly what is being discussed.
Two types of context messaging
1. Entity threads
Entity threads are team-visible discussions about a specific item. All team members associated with the item can see and contribute to the thread.
2. Entity DMs
Entity DMs are private direct messages with the item's context attached. You choose specific recipients and the conversation is private, but the context tells both parties what the message is about.
Shift pattern messaging
Opening shift pattern threads
On mobile
- Go to the Shifts tab
- Find the shift pattern you want to discuss
- Swipe right on the shift pattern card -- a "Team" indicator with a message icon appears on the left
- The thread screen opens as a modal. The header shows the team name as the title and "About {employee name} Shift" as the subtitle
- A context preview row appears above the input field showing a clock icon and the pattern name
- Type your message and tap the Send button
Empty state: "No messages on this shift pattern thread yet"
On web
- Go to the Shifts page
- Click the action menu on a shift pattern row
- Select Message team about this
- An EntityThreaderSheet side panel opens on the right. The header shows the pattern name as the title with the team name and date below
- Helper text reads: "Threads let your team discuss a specific shift or work item. Send a message to notify relevant team members."
- Type your message and send
Empty state shows a clock icon with "No messages yet" and "Start a conversation about this shift"
Sending DMs about shift patterns
On mobile
- Go to the Shifts tab
- Swipe left on the shift pattern card -- a "DM" indicator with a message icon appears on the right
- The Select recipients screen opens as a modal. The AppBar shows "Select recipients" as the title and "About {pattern name}" as the subtitle
- Use the search box to filter users by name, email or job title. The current user is excluded from the list
- Tap users to select them -- circle checkboxes appear next to each name
- Tap Next in the header (enabled when at least one user is selected)
- The Compose DM screen opens. The AppBar shows "Compose DM" as the title and "Will send separately" as the subtitle
- Selected recipients are listed at the top with an X button to remove each one
- A context preview row above the text input shows a clock icon and the shift user name (e.g. "{Name} Shift") or the pattern name
- Attachment buttons below the text input allow you to take a photo (camera icon), pick from gallery (image icon) or attach documents (paperclip icon). Up to 5 images and 10 documents per message
- Tap Send in the header. The app navigates back to the Shifts tab while the message sends in the background
On web
- Go to the Shifts page
- Click the action menu on a shift pattern row
- Select DM user about this
- An EntityDmSheet side panel opens in Stage 1: Select Recipients
- Helper text reads: "Direct messages let you contact specific people about this item. Select who should receive your message."
- An entity context preview shows the icon and "About {pattern name}"
- Search and select users, then click Next
- The panel moves to Stage 2: Compose Message. A back arrow (ChevronLeft) replaces the close button to return to Stage 1
- Selected recipients are listed at the top with X buttons to remove them
- The centre shows the entity icon and "About: {display name}" along with "Send a message to N person(s)"
- Type your message in the input bar and send
- On successful send, a toast notification reads "Message sent to N person(s)"
Work messaging
Opening work threads
On mobile
- Go to the Work tab
- Find the work item you want to discuss
- Swipe right on the work card -- a "Team" indicator appears on the left
- The thread screen opens. The header shows the team name as the title and "About {work name}" as the subtitle
- A context preview row appears above the input showing a check-square icon and the work name
- Type your message and tap Send
Empty state: "No messages on this work thread yet"
On web
- Go to the Work page
- Click the action menu on a work row
- Select Message team about this
- An EntityThreaderSheet side panel opens with the work name as the title and the team name and date below
- Type your message and send
Empty state shows a check-square icon with "No messages yet" and "Start a conversation about this work item"
Sending DMs about work
On mobile
- Go to the Work tab
- Swipe left on the work card -- a "DM" indicator appears on the right
- The Select recipients screen opens with subtitle "About {work name}"
- Select users and tap Next
- The Compose DM screen opens with the work context attached. The context preview row shows a check-square icon and the work name
- Type your message and tap Send
On web
- Go to the Work page
- Click the action menu on a work row
- Select DM user about this
- The EntityDmSheet side panel opens following the same two-stage flow as shift pattern DMs
Leaderboard messaging
Opening leaderboard threads
On mobile
- Go to the Leaderboard tab
- Swipe right on a team card -- a "Team" indicator appears on the left
- The thread screen opens. The header shows the team name as the title and "About {Month Year}" as the subtitle (e.g. "About January 2025")
- A context preview row shows a trophy icon and "{Month} Leaderboard"
- Type your message and tap Send
Empty state: "No messages on this gamification month yet"
On web
- Go to the Leaderboard page
- Click the action menu on a team card
- Select Message team about this
- An EntityThreaderSheet side panel opens with the leaderboard entry name and team name
- Type your message and send
Empty state shows a trophy icon with "No messages yet" and "Start a conversation about this leaderboard entry"
Sending DMs about leaderboard entries
On mobile
- Go to the Leaderboard tab
- Swipe left on a team card -- a "DM" indicator appears on the right
- The Select recipients screen opens
- Select recipients and tap Next
- The Compose DM screen opens. The context preview shows a trophy icon and "{Month} Leaderboard"
- Type your message and tap Send
On web
- Go to the Leaderboard page
- Click the action menu on a team card
- Select DM user about this
- The EntityDmSheet side panel opens following the same two-stage flow
Swipe gestures (mobile)
On mobile, context messaging uses swipe gestures on cards in the Shifts, Work and Leaderboard tabs:
| Gesture | Indicator | Action |
|---|---|---|
| Swipe right | "Team" with message icon on left | Opens an entity thread visible to relevant team members |
| Swipe left | "DM" with message icon on right | Opens user selection to start a private DM with context attached |
The swipe requires a deliberate horizontal motion. Haptic feedback fires when the threshold is reached. The card animates during the swipe and snaps back when released.
Action menus (web)
On the web, context messaging is accessed through the action menu on each row in the data table. Each item type has two messaging actions:
- Message team about this -- opens the EntityThreaderSheet for a team-visible thread
- DM user about this -- opens the EntityDmSheet for a private direct message
Linked entity display in messages
When a message has context attached, it appears below the message text as a tappable row with:
- An icon matching the entity type: clock icon for shift patterns, check-square icon for work, trophy icon for leaderboard
- A label: "{Name} Shift" for shift patterns, the work name for work items, "{Month} Leaderboard" for leaderboard entries, or the pattern name for shift patterns without a user name
- A chevron-right arrow
On mobile
Tapping the linked entity navigates to the entity detail screen within the threader or DM modal. For shifts, it opens the shift details screen. For work, it opens the work screen. For leaderboard entries, it opens the heatmap screen. For shift patterns, it opens the shift details screen with the pattern data.
On web
Clicking the linked entity opens the entity page in a new browser tab (e.g. /app/shifts/{id}, /app/work/{id}, /app/leaderboard/{id}, /app/shift-patterns/{id}).
Context in the input area
When you are composing a message in a context thread or entity DM, a context preview row appears above the text field inside the message input container showing:
- An icon for the entity type (clock for shift patterns, check-square for work, trophy for leaderboard)
- A label: "{Name} Shift" for shifts, the pattern name for shift patterns, the work name for work, or "{Month} Leaderboard" for leaderboard entries
This confirms which item your message will be linked to.
Message features in context threads
Context threads support the full set of messaging features:
- @mentions -- type @ to mention team members or @everyone. Mention suggestions appear in a dropdown above the input
- Replies -- swipe right on a message to reply (mobile) or use the reply action. A reply preview with the original sender's name appears above the input
- Read receipts -- swipe left on a message to see who has read it (mobile)
- Reactions -- long press a message to open the actions sheet with emoji reactions (mobile) or hover for reaction options (web)
- Attachments -- attach up to 5 images (camera or gallery) and 10 documents (paperclip) per message
- Copy -- copy message text via the actions sheet
Tips
- Use threads for team discussions, DMs for private matters
- On mobile: swipe right for threads, swipe left for DMs
- On the web: use the action menu on each row
- Context is automatically attached so you do not need to explain which item you mean
- Shift pattern threads are useful for coordinating coverage or swaps
- Work threads are useful for reporting issues or sharing updates
- Celebrate wins publicly in leaderboard threads, address issues privately in DMs