Skip to main content
Resend Docs

Search documentation

Type to search this documentation.

On this pageOverview

Chat SDK Card Emails

The Chat SDK adapter renders Card elements into styled HTML emails using @react-email/components. This lets you send structured, branded messages without writing raw HTML.

A card has a type, title, optional subtitle, and children array. Children can be text blocks, dividers, link buttons, or action groups.

TypeScript
import type { CardElement } from 'chat';

const card: CardElement = {
  type: 'card',
  title: 'Order Confirmed',
  subtitle: 'Order #1234',
  children: [
    { type: 'text', content: 'Your order has been shipped.' },
    { type: 'divider' },
    {
      type: 'actions',
      children: [
        {
          type: 'link-button',
          label: 'Track Order',
          url: 'https://example.com/track/1234',
        },
      ],
    },
  ],
};
Type Fields Description
text content Plain text paragraph
divider n/a Horizontal rule
link-button label, url Clickable button that opens a URL
actions children Container for link buttons

Pass the card object and a fallbackText string to thread.post(). The fallback is used by email clients that don't render HTML.

TypeScript
chat.onNewMention(async (thread, message) => {
  await thread.subscribe();
  await thread.post({
    card: {
      type: 'card',
      title: 'Welcome!',
      subtitle: 'Thanks for reaching out',
      children: [
        {
          type: 'text',
          content: "Hi! Thanks for emailing us. We'll get back to you shortly.",
        },
        { type: 'divider' },
        {
          type: 'actions',
          children: [
            {
              type: 'link-button',
              label: 'Visit our website',
              url: 'https://resend.com',
            },
          ],
        },
      ],
    },
    fallbackText: 'Welcome! Thanks for reaching out.',
  });
});

Welcome Cards Example

Full working example that sends a styled card on first contact

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu