Messages in Pistonlog are internal team chat. Two surfaces share the same composer and the same notification stream:
- Jobcard threads — a chat thread attached to a specific jobcard, so context comes with the conversation
- Direct messages — a one-to-one chat between two teammates, not tied to any jobcard
Both are visible only to your team. Customers don't see them and don't reply to them — for customer comms you'd use reminders, reviews, or send a payment link via Square.
Why team chat lives in Pistonlog
Coordination about a specific car is easier when the message and the jobcard sit in the same place. A technician posts a quick "found the leak, see job 3" on the jobcard thread; reception sees it next time they open the jobcard. No app-switching, no losing context.
Mentions and notifications
@-mention a teammate in a message and they get a Pistonlog notification (in-app bell and, if they have the mobile app installed, a push). Assignments and mentions are the two real notification triggers in the product today.
Permissions
| Permission | Default | What it gates |
|---|---|---|
messages.view | Owner, Manager, Reception, Technician | See message threads |
messages.create | Owner, Manager, Reception, Technician | Send messages |
messages.direct | Owner, Manager, Reception | Start one-to-one DMs |
Technicians do not have messages.direct by default — they can post on jobcard threads but can't open a private DM with a teammate without a custom role granting it.
Related
In this section
Messaging from a jobcard
Per-jobcard customer threads — send updates, ask questions, share photos, all attached to the work
Direct messages
One-to-one chat with a teammate that doesn't belong on any jobcard
Messages list
An inbox-style view of every conversation you're part of — jobcard threads and DMs together