अपना पहला एजेंट मेलबॉक्स क्लेम करें
यह गाइड एक दो-तरफ़ा बातचीत पूरी करती है: inbox.ai पर एक इनबॉक्स क्लेम करें, एक संदेश थ्रेड में प्राप्त करें, उसे पढ़ें, और जवाब दें। आपको कोई डोमेन सत्यापित करने या मेल सर्वर चलाने की ज़रूरत नहीं है।
1. एक API key बनाएँ
डैशबोर्ड में, Developers > API keys पर जाएँ और एक key बनाएँ। Email ग्रुप में mailbox और mailbox_management स्कोप सक्षम करें। Keys bk_us1_... या bk_eu1_... जैसी दिखती हैं; प्रीफ़िक्स में रीजन API होस्ट चुनता है।
कोड उदाहरण
export BIRD_API_KEY="bk_us1_..."2. एक मेलबॉक्स क्लेम करें
शेयर किए गए inbox.ai डोमेन पर एक मेलबॉक्स बनाएँ। लोकल पार्ट छोड़ दें और Bird एक उपलब्ध पता जनरेट कर देगा। open receive policy मेल तब तक स्वीकार करती है जब तक कोई receive rule उसे ब्लॉक न करे।
const mailbox = await bird.email.mailboxes.create({ display_name: "Support" });
console.log(mailbox.address); // "abc123@inbox.ai"mailbox = client.email.mailboxes.create(display_name="Acme Support")
print(mailbox.id)mailbox, err := client.Email.Mailboxes.Create(context.Background(), bird.EmailMailboxesCreateParams{
DisplayName: bird.Ptr("Support"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(mailbox.Id, *mailbox.Address)$mailbox = $bird->email->mailboxes->create(
(new MailboxCreate())
->setDisplayName('Acme Support'),
);
echo $mailbox->getId(), ' ', $mailbox->getAddress();bird email mailboxes create \
--display-name 'My Agent' \
--receive-policy opencurl -X POST "https://us1.platform.bird.com/v1/email/mailboxes" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"display_name": "My Agent",
"receive_policy": "open"
}'रिस्पॉन्स में मेलबॉक्स id और आपके लिए क्लेम किया गया address होता है। अगले चरण को पढ़ने के लिए कुछ देने हेतु किसी भी मेल क्लाइंट से उस पते पर एक ईमेल भेजें।
3. थ्रेड पढ़ें
इनबाउंड मेल मेलबॉक्स पर एक थ्रेड बन जाती है। थ्रेड्स की सूची देखें, फिर पहले थ्रेड के संदेश पढ़ें।

for await (const thread of bird.email.threads.list({ mailbox_id: "mbx_01abc" })) {
console.log(thread.id, thread.subject);
}for thread in client.email.threads.list(mailbox_id="mbx_01krdgeqcxet5s7t44vh8rt9mg"):
print(thread.id, thread.subject)for thread, err := range client.Email.Threads.List(context.Background(), bird.EmailThreadsListParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(thread.Id)
}foreach ($bird->email->threads->list(['mailbox_id' => 'mbx_01krdgeqcxet5s7t44vh8rt9mg']) as $thread) {
echo $thread->getId(), ' ', $thread->getSubject(), "\n";
}bird email threads listcurl -X GET "https://{region}.platform.bird.com/v1/email/threads" \
-H "Authorization: Bearer $TOKEN" \
--url-query "label=urgent" \
--url-query "participant=billing@acme.com" \
--url-query "subject=quarterly invoice" \
--url-query "limit=25"फिर उस थ्रेड के संदेश पढ़ें:
for await (const msg of bird.email.threads.messages.list("thr_01abc")) {
console.log(msg.id, msg.direction);
}for message in client.email.threads.messages.list("thr_01krdgeqcxet5s7t44vh8rt9mg"):
print(message.id, message.subject)for msg, err := range client.Email.Threads.Messages.List(context.Background(), "thr_123", bird.EmailThreadsMessagesListParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, msg.Direction)
}foreach ($bird->email->threads->messages->list('thr_01krdgeqcxet5s7t44vh8rt9mg') as $message) {
echo $message->getId(), ' ', $message->getDirection(), "\n";
}bird email threads messages list <thread-id>curl -X GET "https://{region}.platform.bird.com/v1/email/threads/{thread_id}/messages" \
-H "Authorization: Bearer $TOKEN" \
--url-query "label=unread" \
--url-query "limit=25"हर संदेश अपनी दिशा (inbound) और अपना id रखता है (प्राप्त संदेश के आगे rem_ लगा होता है)। quote-stripped body इनलाइन करने के लिए include=extracted_text जोड़ें: यह नई सामग्री होती है, बिना उद्धृत इतिहास के जिसे एजेंट को अन्यथा खुद हटाना पड़ता।
पोलिंग से बचने के लिए email_mailbox.message_received webhook सब्सक्राइब करें। यह तब फ़ायर होता है जब कोई इनबाउंड संदेश इनबॉक्स में पहुँचता है। इवेंट्स रेफ़रेंस देखें।
4. जवाब दें
प्राप्त संदेश का जवाब दें। चरण 3 से उसकी rem_ ID उपयोग करें। जवाब उसी थ्रेड में रहता है और आपके मेलबॉक्स के पते से भेजा जाता है:
const reply = await bird.email.threads.messages.reply("thr_01abc", "rem_01xyz", {
text: "Thanks for reaching out!",
});
console.log(reply.id);reply = client.email.threads.messages.reply(
"thr_01krdgeqcxet5s7t44vh8rt9mg", "rem_01krdgeqcxet5s7t44vh8rt9mg",
text="Thanks for reaching out!",
)
print(reply.id)reply, err := client.Email.Threads.Messages.Reply(context.Background(), "thr_123", "rem_456", bird.EmailThreadsMessagesReplyParams{
Text: bird.Ptr("Thanks for reaching out!"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(reply.Id)$reply = $bird->email->threads->messages->reply(
'thr_01krdgeqcxet5s7t44vh8rt9mg',
'rem_01krdgeqcxet5s7t44vh8rt9mg',
(new EmailThreadMessageReplyRequest())
->setText('Thanks, looking into it now.')
->setReplyAll(true),
);
echo $reply->getId();bird email threads messages reply <thread-id> <message-id> \
--text 'Thanks, confirming we received your request.'curl -X POST "https://{region}.platform.bird.com/v1/email/threads/{thread_id}/messages/{message_id}/reply" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Thanks, confirming we received your request."
}'अब आप क्लेम, प्राप्त, पढ़ और जवाब दे सकते हैं। किसी बातचीत का जवाब देने की बजाय नई बातचीत शुरू करने के लिए, मेलबॉक्स पर एक नया संदेश कंपोज़ करें (POST /v1/email/mailboxes/{id}/messages), जो एक नया थ्रेड खोलता है।
अगले कदम
- एजेंट मेलबॉक्स: थ्रेड, रिसीव नियम, भेजना और रिटेंशन कैसे काम करते हैं।
- MCP server: MCP server के ज़रिए किसी AI एजेंट से यही लूप चलाएँ।
- CLI: टर्मिनल के लिए bird email mailboxes और bird email threads।
- SDK क्विकस्टार्ट: Go, Python, और TypeScript SDK वॉकथ्रू।
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।