Documentation

DocsCore ConceptsData Model

Data Model

A complete reference of every resource type, their fields, and how they relate to each other.

Organization

The top-level tenant boundary. All resources belong to exactly one organization. Billing and plan limits are scoped here.

Organization
{
  id: string,
  name: string,
  slug: string,
  plan: "free" | "pro",
  createdAt: string   // ISO 8601
}

Pod

Regional or logical isolation within an organization. Use pods to separate staging vs. production, comply with data residency, or isolate team sending reputations.

Pod
{
  id: string,
  name: string,
  region: string,
  createdAt: string
}

Inbox

An email identity assigned to a pod. Each inbox has its own address, display name, and sending status. This is what your runtime or application sends from and receives into.

Inbox
{
  id: string,
  address: string,       // email address
  displayName: string,   // shown as the sender name in recipient inboxes
  status: "active" | "warming" | "disabled",
  podId: string,
  createdAt: string,
  updatedAt: string
}
The displayName is what recipients see as the sender in their inbox and push notifications. For example, setting it to "Andy from Frandera" means emails arrive as "Andy from Frandera" instead of a raw email address like andy@mail.frandera.com. Choose a name that feels personal and recognizable to build trust with recipients.

Message

An individual email — either inbound (received) or outbound (sent). Messages are grouped into threads automatically.

Message
{
  id: string,
  inboxId: string,
  threadId: string,
  direction: "inbound" | "outbound",
  subject: string,
  preview: string,
  from: string,
  to: string[],
  status: "queued" | "sent" | "delivered" | "received" | "bounced",
  createdAt: string,
  attachments: Attachment[]
}

Thread

A conversation grouping related messages by subject and participants. Threads are created automatically when a message is sent or received.

Thread
{
  id: string,
  inboxId: string,
  subject: string,
  participants: string[],
  lastMessageAt: string,
  messageCount: number
}

Other Resources

See individual sections for detailed schemas: Domain (Domains & Deliverability), Contact / Template (Templates), WorkflowDefinition / Enrollment (Workflows), WebhookEndpoint / WebhookEvent (Webhooks).