---
title: "Rooftop messages"
description: "How a shopper message reaches the people who work at a rooftop, and how that differs from the product agent"
locale: "en"
---
# Rooftop messages

A conversation on this clone is between a shopper and the people on that rooftop's team. It is not a chat with an automated product agent.

  After Chat with seller, a test drive, a trade, service, or an offer, the browser opens `/messages?c=` on that thread. A second chat about the same car, while the inquiry is still open, returns the same thread.

### For founders

## What you should expect

You and your managers need to be members of the rooftop (or of the parent group). If nobody is a member, the shopper still gets a thread, but your desk is not on it. Add staff on the entity before you advertise the chat button.

The lead desk at `/dealer/leads` has an Open messages link. That link opens the inbox, not the exact thread. Use the thread the shopper was sent to, or pick the conversation in Messages. The title of the lead matches the vehicle or the offer.

Do not turn the product agent back on for a vehicle page. It can state a price, a payment, or an availability you did not approve. Those sentences would sit on an advertisement.

Notifications for a new lead point staff at `/dealer/leads`.

### For developers

`openEntityLeadConversation` in `features/opportunities/lib/entity-lead-conversation.ts` creates a conversation with `type: 'opportunity'`. Participants are the shopper plus `getEntityTeamUserIds` for the rooftop. The id is written to the opportunity's `metadata.conversationId`.

`MessagesShell` selects the thread from the `c` or `conversation` query. The product agent uses `agentChat=1` and a different conversation type. The pack overlay of `components/wrappers/product-details-wrapper.tsx` does not mount that agent when `readDealerVehicle` returns a vehicle.

The lead card's Open messages control is a plain `/messages` link in `app/[locale]/(protected)/dealer/leads/page.tsx`. It does not append `?c=`.

## Frequently asked questions

### Impact

#### Will chat work for a guest?

No. They are sent to sign in and then back to the vehicle, the service page, or the sell page.

### Ops

#### The shopper says nobody replied.

Check that the rooftop has members, then open `/dealer/leads` and `/messages` as one of those members.

  
- [features/opportunities](/docs/features/opportunities.md) — Prerequisite: the lead that owns this thread.

  
- [features/entities](/docs/features/entities.md) — Depends on: rooftop membership, which decides who is in the thread.
