수신

라벨과 버킷

발신 및 수신 메일을 라벨로 자동 분류하고, 에이전트의 대화가 밖으로 나가지 않는 버킷을 제공합니다.

라벨

라벨은 Gmail 폴더처럼 동작합니다. 메시지 하나에는 라벨을 최대 10개까지 붙일 수 있고, 워크스페이스에는 200개까지 만들 수 있습니다. POST /labels로 생성하고, GET /labels로 메시지 수와 읽지 않은 수가 포함된 목록을 조회하며, GET /emails?label=Billing으로 라벨 하나의 이메일을 조회합니다. 라벨은 어디서나 이름 또는 lbl_ ID로 참조할 수 있습니다.

라벨로 바로 발송

POST /emails 본문
{
  "from": "Orders <orders@example.com>",
  "to": [
    "customer@example.net"
  ],
  "subject": "Order 1042",
  "text": "Reply with a delivery window.",
  "labels": [
    "Agent/Orders"
  ]
}

알 수 없는 라벨 이름은 새로 생성됩니다. 고객의 답장을 포함해 대화의 이후 모든 메시지는 그 대화의 라벨을 상속합니다.

버킷

"skip_inbox": true로 라벨을 만들면 버킷이 됩니다. 분류 규칙, 라벨이 붙은 대화에 대한 답장, POST /emails/:id/labels 중 어느 경로로든 버킷 라벨이 붙은 수신 메일은 보관 처리되어 라벨에만 표시되고 받은편지함에는 나타나지 않습니다. 발신 메일은 받은편지함에 나타나지 않습니다. 이렇게 하면 에이전트의 작업 대화가 양방향 모두 한곳에 모입니다.

POST /labels 본문
{
  "name": "Agent/Orders",
  "skip_inbox": true,
  "rules": [
    {
      "inbox_id": "inb_…"
    }
  ],
  "apply_to_existing": true
}

분류 규칙

규칙은 새 메일을 자동으로 분류합니다. 규칙에 설정한 모든 조건이 일치해야 합니다. inbox_id(수신 주소), direction(in 또는 out), from, to(To와 Cc), subject의 대소문자를 구분하지 않는 부분 문자열입니다. 규칙 자체의 skip_inbox는 그 규칙에 일치하는 수신 메일만 보관 처리합니다. POST /labels/:id/rules로 규칙을 추가하며, apply_to_existing은 보관 중인 메일도 분류합니다.

버킷 처리하기

GET /emails?label=Agent%2FOrders&direction=in&unread=true를 폴링하고, GET /threads/:id로 대화를 읽고, reply_to_email_id로 답장한 다음, PATCH /emails/:id {"read": true}로 처리 완료를 표시하세요. 메시지를 버킷에 넣거나 빼려면 POST /emails/:id/labels {"add": [...], "remove": [...]}를 사용합니다. MCP 서버는 같은 작업을 create_label, create_label_rule, label_email, list_emails로 제공합니다.