---
title: Postmark
description: Connect Postmark, understand its sync behavior, and query every table and column it writes.
species: reference
---
# Postmark

Connect Postmark with server and account API tokens. The source writes 5 fixed tables under `titan.postmark`.
```sql
select
  id,
  name,
  description
from titan.postmark.message_streams
limit 10
```

## Connect Postmark

1. Open **Apps**, choose **Connect app**, and select **Postmark**.
2. Enter server and account API tokens.
3. Review the tables, then save the source.
4. Watch **Sync history** until the first run completes.

Credentials are stored as secrets. They never become lake columns or appear in query results.

## Sync behavior

Message streams, outbound messages, bounces, templates, and sender signatures sync together.

A new source syncs when you connect it and then follows its schedule. The default recurring interval is 4 hours. An interrupted run keeps its completed progress and retries safely.

Every lake table also has the [system columns](/v2/docs/concepts/your-lake#the-system-columns) `_synced_at` and `_deleted`; the column reference below lists source columns only.

## Table reference

### `message_streams`

`titan.postmark.message_streams` has 6 source columns.

```columns table=postmark.message_streams
id                                      string pk           Source field `id`.
name                                    string              Source field `name`.
description                             string              Source field `description`.
message_stream_type                     string              Source field `messageStreamType`.
created_at                              datetime            Source field `createdAt`.
updated_at                              datetime            Source field `updatedAt`.
```

### `outbound_messages`

`titan.postmark.outbound_messages` has 8 source columns.

```columns table=postmark.outbound_messages
message_id                              string pk           Source field `messageID`.
to                                      json                Source field `to`.
from                                    string              Source field `from`.
subject                                 string              Source field `subject`.
status                                  string              Source field `status`.
received_at                             datetime            Source field `receivedAt`.
tag                                     string              Source field `tag`.
message_stream                          string              Source field `messageStream`.
```

### `bounces`

`titan.postmark.bounces` has 8 source columns.

```columns table=postmark.bounces
id                                      integer pk          Source field `id`.
type                                    string              Source field `type`.
message_id                              string              Source field `messageID`.
description                             string              Source field `description`.
bounced_at                              datetime            Source field `bouncedAt`.
email                                   string              Source field `email`.
subject                                 string              Source field `subject`.
message_stream                          string              Source field `messageStream`.
```

### `templates`

`titan.postmark.templates` has 5 source columns.

```columns table=postmark.templates
template_id                             integer pk          Source field `templateId`.
name                                    string              Source field `name`.
subject                                 string              Source field `subject`.
active                                  boolean             Source field `active`.
template_type                           string              Source field `templateType`.
```

### `sender_signatures`

`titan.postmark.sender_signatures` has 5 source columns.

```columns table=postmark.sender_signatures
id                                      integer pk          Source field `id`.
domain                                  string              Source field `domain`.
email_address                           string              Source field `emailAddress`.
confirmed                               boolean             Source field `confirmed`.
created_at                              datetime            Source field `createdAt`.
```

## Deletes and history

Rows are merged by their source key. When the source can prove that a row was deleted, Supernova keeps the row and sets `_deleted` so queries can choose whether to include history. Filter current-state queries with `where not _deleted`.
