Skip to main content

Custom Message Renderer

Use renderMessageContent to take over how specific messages are rendered. You can detect custom payload types and return any React node, with or without the default avatar + bubble wrapper.

Renderer Mode

Loading chatbot...

Modes

ModeUse when
with-avatarCustom content but keep the default avatar and bubble
no-avatarFully custom rendering, bypass MessageContainer
wrapperAdd timestamps / metadata around the default content
defaultFall back to built-in rendering

Code Example

<Chatbot
renderMessageContent={({ message, renderDefaultContent, MessageContainer }) => {
if (message.type === "bot") {
const payload = message.message.payload;
if (payload?.customType === "order_card") {
return (
<MessageContainer>
<OrderCard payload={payload} />
</MessageContainer>
);
}
}
return renderDefaultContent();
}}
/>