@getdial/sdk - v0.38.0
    Preparing search index...

    Interface Message

    interface Message {
        body: string;
        channel: string;
        createdAt: string;
        deliveryError?: string | null;
        deliveryState?: MessageDeliveryState;
        direction: string;
        from: string;
        groupId?: string | null;
        id: string;
        media: MessageMediaItem[];
        phoneNumberId: string;
        reaction?: string | null;
        readAt?: string | null;
        readState?: MessageReadState;
        replyToId?: string | null;
        status: string;
        statusError?: string | null;
        to: string | null;
    }
    Index
    body: string
    channel: string
    createdAt: string
    deliveryError?: string | null

    Vendor-neutral failure reason; non-null only on undelivered/failed.

    deliveryState?: MessageDeliveryState

    The delivery axis. unconfirmed means the rail sends no delivery receipts (iMessage numbers) — only a read can upgrade it.

    direction: string
    from: string

    Who sent it, E.164. On an inbound group message this is the participant who sent it — not the group, and not your own line.

    groupId?: string | null

    The group this message belongs to, or null for a one-to-one conversation. A Dial id — never the channel's own group identifier.

    id: string

    Media attachments (MMS), in send order. Empty for plain SMS.

    phoneNumberId: string
    reaction?: string | null

    The reaction this message carries (a reaction name or an emoji); null otherwise.

    readAt?: string | null

    When the recipient read the message; null if unread or unsupported.

    readState?: MessageReadState

    The read axis, independent of delivery — a message can be both delivered and read. unsupported means the rail never reports reads (SMS): nothing is coming, so don't wait for it.

    replyToId?: string | null

    Id of the message this one replies or reacts to; null for ordinary messages.

    status: string

    Delivery only, in the original vocabulary. Kept for compatibility — prefer deliveryState, which names the same axis more precisely (sent is pending, unknown is unconfirmed) and pairs with readState. No longer returns read: reads live on readState/readAt.

    statusError?: string | null

    A human-readable failure reason, present only when status is undelivered or failed. Null otherwise. Identical to deliveryError.

    to: string | null

    The destination, E.164 — and null exactly when groupId is set, in both directions: a group message is addressed to the group, and a group is not a phone number.

    Which of your numbers the conversation is on is phoneNumberId, which is set on every message. Code reading to as "my number" must read that instead.