Как использовать метки для состояния?

Метки на письмах и тредах для workflow агента.

Метки — строковые теги на сообщениях и тредах: классификация, фильтрация и состояние процесса.

Метки при отправке

Python
1client.inboxes.messages.send(
2 inbox_id="agent@yourdomain.com",
3 to=["prospect@example.com"],
4 subject="Quick question",
5 text="Hi, I wanted to ask about...",
6 html="<p>Hi, I wanted to ask about...</p>",
7 labels=["outreach", "first-touch", "tech-vertical"]
8)

Обновление меток

Python
1client.inboxes.messages.update(
2 inbox_id="agent@yourdomain.com",
3 message_id=msg.message_id,
4 add_labels=["processed", "positive-sentiment"],
5 remove_labels=["unread"]
6)

Фильтрация

Python
1unread = client.inboxes.messages.list(
2 inbox_id="agent@yourdomain.com",
3 labels=["unread"]
4)
5
6follow_ups = client.inboxes.threads.list(
7 inbox_id="agent@yourdomain.com",
8 labels=["q4-campaign", "needs-response"]
9)
10
11escalations = client.inboxes.messages.list(
12 inbox_id="agent@yourdomain.com",
13 labels=["escalation", "needs-human-review"]
14)

Типовые метки

МеткаНазначение
unread / readПросмотрено агентом
unreplied / repliedНужен ответ
outreach / inboundНаправление
needs-human-reviewНа проверку человеку
escalationПриоритет / эскалация
processedОбработано
positive / negativeТональность
campaign-{name}Кампания

Имена произвольные — держите единый стиль.

Пример workflow

Python
1from agentinbox import Agentinbox
2
3client = Agentinbox()
4
5unreplied = client.inboxes.threads.list(
6 inbox_id="support@yourdomain.com",
7 labels=["unreplied"]
8)
9
10for thread_item in unreplied.threads:
11 thread = client.threads.get(thread_id=thread_item.thread_id)
12 last_message = thread.messages[-1]
13
14 category = classify(last_message.extracted_text or last_message.text)
15
16 if category == "needs-human":
17 client.inboxes.messages.update(
18 inbox_id="support@yourdomain.com",
19 message_id=last_message.message_id,
20 add_labels=["needs-human-review", "escalation"],
21 remove_labels=["unreplied"]
22 )
23 else:
24 reply_text = generate_reply(last_message, category)
25 client.inboxes.messages.reply(
26 inbox_id="support@yourdomain.com",
27 message_id=last_message.message_id,
28 text=reply_text
29 )
30 client.inboxes.messages.update(
31 inbox_id="support@yourdomain.com",
32 message_id=last_message.message_id,
33 add_labels=["replied", "processed", category],
34 remove_labels=["unreplied"]
35 )

Практика

  • Единое соглашение (например kebab-case)
  • Префиксы: status-pending, priority-high
  • Не перегружайте одно письмо десятками меток
  • Совмещайте с фильтром тредов по меткам

См. Метки.