# `Cairnloop.Chat`
[🔗](https://github.com/szTheory/cairnloop/blob/main/lib/cairnloop/chat.ex#L1)

# `create_customer_conversation`

# `get_conversation!`

# `get_message`

Tolerant lookup of a single message by id. Returns %Cairnloop.Message{} or nil. Used by ChatLive's role-dedup branch (Phase 28 Pitfall 7) so a stale broadcast id can never crash a customer's chat tab.

# `ingest_widget_message`

# `list_conversations`

# `reply_to_conversation`

# `resolve_conversation`

# `submit_csat`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
