---
title: SendGrid
description: SendGrid에 연결하고 동기화 동작을 파악하며 기록되는 모든 테이블과 열을 쿼리합니다.
species: reference
---
# SendGrid

API 키를 사용해 SendGrid에 연결합니다. 이 소스는 `titan.sendgrid` 아래에 고정 테이블 6개를 기록합니다.
```sql
select
  id,
  email,
  first_name
from titan.sendgrid.contacts
limit 10
```

## SendGrid 연결

1. **앱**을 열고 **앱 연결**을 선택한 뒤 **SendGrid** 항목을 선택합니다.
2. API 키를 입력합니다.
3. 테이블을 확인한 뒤 소스를 저장합니다.
4. 첫 실행이 완료될 때까지 **동기화 기록**을 확인합니다.

자격 증명은 비밀 정보로 저장됩니다. 레이크 열이 되거나 쿼리 결과에 나타나지 않습니다.

## 동기화 동작

연락처, 목록, 캠페인, 이메일 템플릿, 수신 제외 목록, 전체 수신 거부 목록을 함께 동기화합니다.

새 소스는 연결할 때 동기화한 다음 설정된 일정을 따릅니다. 기본 반복 간격은 4시간입니다. 실행이 중단되어도 완료한 진행 상황을 유지하며 안전하게 재시도합니다.

모든 레이크 테이블에는 [시스템 열](/docs/concepts/your-lake#시스템-열)인 `_synced_at`과 `_deleted`도 있습니다. 아래 열 참조에는 소스 열만 나열합니다.

## 테이블 참조

### `contacts`

`titan.sendgrid.contacts`의 소스 열 수는 9개입니다.

```columns table=sendgrid.contacts
id                                      string pk           `id` 소스 필드.
email                                   string              `email` 소스 필드.
first_name                              string              `firstName` 소스 필드.
last_name                               string              `lastName` 소스 필드.
city                                    string              `city` 소스 필드.
country                                 string              `country` 소스 필드.
created_at                              datetime            `createdAt` 소스 필드.
updated_at                              datetime            `updatedAt` 소스 필드.
custom_fields                           json                `customFields` 소스 필드.
```

### `lists`

`titan.sendgrid.lists`의 소스 열 수는 5개입니다.

```columns table=sendgrid.lists
id                                      string pk           `id` 소스 필드.
name                                    string              `name` 소스 필드.
contact_count                           integer             `contactCount` 소스 필드.
created_at                              datetime            `createdAt` 소스 필드.
updated_at                              datetime            `updatedAt` 소스 필드.
```

### `campaigns`

`titan.sendgrid.campaigns`의 소스 열 수는 6개입니다.

```columns table=sendgrid.campaigns
id                                      string pk           `id` 소스 필드.
name                                    string              `name` 소스 필드.
status                                  string              `status` 소스 필드.
send_at                                 datetime            `sendAt` 소스 필드.
created_at                              datetime            `createdAt` 소스 필드.
updated_at                              datetime            `updatedAt` 소스 필드.
```

### `templates`

`titan.sendgrid.templates`의 소스 열 수는 4개입니다.

```columns table=sendgrid.templates
id                                      string pk           `id` 소스 필드.
name                                    string              `name` 소스 필드.
generation                              string              `generation` 소스 필드.
updated_at                              datetime            `updatedAt` 소스 필드.
```

### `suppressions`

`titan.sendgrid.suppressions`의 소스 열 수는 4개입니다.

```columns table=sendgrid.suppressions
email                                   string pk           `email` 소스 필드.
reason                                  string              `reason` 소스 필드.
status                                  string              `status` 소스 필드.
created_at                              datetime            `createdAt` 소스 필드.
```

### `global_unsubscribes`

`titan.sendgrid.global_unsubscribes`의 소스 열 수는 2개입니다.

```columns table=sendgrid.global_unsubscribes
email                                   string pk           `email` 소스 필드.
created                                 datetime            `created` 소스 필드.
```

## 삭제와 이력

행은 소스 키로 병합됩니다. 소스에서 행 삭제를 입증할 수 있으면 Supernova는 행을 유지하고 `_deleted`를 설정합니다. 따라서 쿼리에서 이력을 포함할지 선택할 수 있습니다. 현재 상태를 조회하는 쿼리에는 `where not _deleted` 필터를 사용하세요.
