Hey @chihhaohuang
Yes, it is technically possible to build your own chat UI on top of Intercom APIs, but it is not a drop-in replacement for the Intercom Messenger.
The public Conversations API can create, retrieve, search, update, and reply to conversations, and the conversation model includes conversation parts, custom attributes, linked objects, and AI Agent metadata. So it is a valid API surface for conversation data and basic messaging.
Where it falls short is that the Messenger UI and the Messenger runtime add a lot of behavior on top of those conversation objects. The clearest public guidance we have says that if you build your own UI, you will need to handle apps inserted into the Messenger and conversations yourself, you will miss a lot of Operator functionality, and you will not receive read receipts.
For the specific items you listed:
-
Canvas Kit / Messenger apps in conversations
Yes — these are one of the biggest gaps. Messenger-specific responses include rich card/app payloads rather than just plain text, and the public guidance is that you would need to handle those app surfaces yourself in a custom UI.
-
Fin replies
You should not assume a Fin reply will always arrive as a plain text or HTML comment only. In the Messenger response model, Fin and workflow replies can include blocks, sources, reply options, forms, handover CTA/context, carousels, calendar cards, and Fin-specific metadata such as fin_response_type, fin_error_type, and fin_significant_response. In other words, if your custom UI only renders a body string, some Fin and workflow experiences will degrade or break.
-
Read / seen state
Your understanding is correct that this is another weak point. The public community answer explicitly says a custom UI will not receive read receipts. That matches the implementation behavior: genuine user “seen” updates are emitted through Messenger-specific flows, while programmatic mark-as-read does not generate the same realtime seen signal.
Other things that can silently break or require custom work when Operator / Workflows are involved include quick replies, forms, workflow intro/handover UI, and composer-state behavior. Fin and workflow templates use reply-button, message, Fin, and handoff steps, and the Messenger response model carries reply options, forms, footer notices, and composer state that the stock Messenger knows how to handle.
If your goal is only to make the Intercom entry point feel native in your product, the better-supported approach is to keep the Intercom Messenger and use a custom launcher / JavaScript API to hide the default launcher, open the Messenger from your own button, prefill content, and control visibility.
Or if your goal is to build a fully custom AI chat UI with Fin itself, the more suitable API is the Fin Agent API rather than the generic Conversations API. That API is centered around /fin/start and /fin/reply, and it supports webhook or SSE events such as fin_replied and reply chunks for realtime delivery.