Trip messages (agent ↔ client thread)

By System Generated · Updated Jun 10, 2026

Download PDF

Every trip has a Messages tab — an email-threaded conversation between your team and the travelers. Sending from here looks and behaves like sending from your inbox: subject, recipients, attachments, HTML body. Under the hood every reply (from either side) is filed back on the right thread, automatically.

Composing a new thread

  1. Open the trip and click the Messages tab.

  2. Click + New message. The composer slides open with the travelers pre-checked as recipients.

  3. Optionally click Load template to pull one of your saved email templates in — subject + body fill in, with merge tags substituted from the trip.

  4. Add or remove recipients. You can pick travelers, teammates from your agency, or type a raw external email.

  5. Attach files from the trip's Files tab or upload fresh ones inline. Drag-drop or paste images into the body to embed them.

  6. Send. The thread root appears in the Messages list, newest first.

Replying and reply-all

Open a thread and the read pane shows the root + every reply in chronological order, newest at the top. The reply box at the bottom auto-fills with the original participants. Two buttons:

Both write a new TripMessage on the thread with the correct parent + root pointers, so the whole conversation renders as one continuous transcript. Subject + threading headers are preserved so mail clients on the other side also keep the thread together.

Attachments

Two kinds of attachments are supported:

File attachments

Up to 20 per message. Pick from the trip's Files tab, or upload new ones inline. They appear under the message body as download chips and are sent as real email attachments to the recipient.

Inline images

Drag-drop or paste images into the editor body. They render inline in the recipient's mail client — not as separate downloads.

The client side — portal replies

Clients can reply two ways:

Both paths arrive at the same TripMessage table, on the same thread, in the same order. Clients pick whichever they prefer; you don't see a difference unless you look at the source chip on the reply.

Notifications

When a client replies to a thread (either via email or via the portal), the assigned agent gets an email notification — same as if they were a regular recipient. Inbound messages also show as unread inside Trips: the Messages tab badge and the bell menu both bump up.

Opening the thread marks every inbound message in it as read for you. Other agents see their own read state independently, so reading a reply on one device doesn't silently clear it for the whole team.

Open tracking — MPP-aware

Each outbound trip email includes a tracking pixel. When the pixel fires, the recipient row moves through three states:

The thread view shows the state per recipient. When you see Likely opened, treat it as "delivered + plausibly seen" rather than confirmed. Don't use it to decide whether to follow up — wait for Opened, or ask the client directly.

Visibility

Threads can be marked traveler-visible (default — clients see them on the portal alongside agent replies) or staff-only (visible to your team but never surfaced to the client). Use staff-only for internal notes about a trip you don't want the client to read — e.g. a back-and-forth with your supplier rep that happens to belong with the trip.

Deleting a message

You can soft-delete a message you sent — the row stays in the database but disappears from the thread. You cannot delete messages other agents sent, and you cannot delete inbound messages from the client. If a client sent something they want removed, contact support.


Troubleshooting

A recipient is stuck on Likely opened forever.

That means the only pixel hits we've seen look like Apple MPP or webmail prefetches — no human-shaped hit. The recipient may have read it (Apple does pre-fetch even when the user later opens), they may have read it and we couldn't detect, or they genuinely never opened it. The honest answer is "we don't know" — that's exactly what Likely opened means.

Reply came back to my Gmail but didn't show in Messages.

Confirm the client hit Reply on the original message. If they typed your address into a fresh email, the threading headers + the signed Reply-To address are missing and the inbound webhook can't file it. The fix is to forward the email back through the portal as a manual note.

I sent a message and it shows as Sent but the client says they didn't receive it.

Hand-off worked — Gmail or our fallback accepted the message. From there it's on the recipient's mail provider: spam, corporate filter, or a typo on the email address are far more common than a Trips issue.

Can I forward a thread to a teammate?

Use reply-all and add the teammate as a recipient. There's no dedicated Forward button (yet) because the thread already lives inside Trips — anyone with access to the trip can read the whole transcript without you re-sending it.

Back to resources Published by UrTravelPro