अपना पहला एजेंट मेलबॉक्स क्लेम करें
यह गाइड एक दो-तरफ़ा बातचीत पूरी करती है: inbox.ai पर एक इनबॉक्स क्लेम करें, किसी थ्रेड में संदेश प्राप्त करें, उसे पढ़ें और जवाब दें। आपको कोई डोमेन सत्यापित करने या मेल सर्वर चलाने की ज़रूरत नहीं है।
1. एक API कुंजी बनाएँ
डैशबोर्ड में Developers > API कुंजियाँ पर जाएँ और एक कुंजी बनाएँ। Email समूह में mailbox और mailbox_management स्कोप सक्षम करें। कुंजियाँ bk_us1_... या bk_eu1_... जैसी दिखती हैं; प्रीफ़िक्स में मौजूद क्षेत्र से API होस्ट तय होता है।
export BIRD_API_KEY="bk_us1_..."2. मेलबॉक्स क्लेम करें
साझा inbox.ai डोमेन पर एक मेलबॉक्स बनाएँ। लोकल पार्ट छोड़ देने पर Bird एक उपलब्ध पता बना देता है। open रिसीव नीति मेल स्वीकार करती है, जब तक कोई रिसीव नियम उसे ब्लॉक न करे।
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_ लगा होता है)। उद्धरण हटाया गया मुख्य भाग इनलाइन पाने के लिए include=extracted_text जोड़ें। इसमें केवल नई सामग्री होती है, वह उद्धृत इतिहास नहीं जिसे एजेंट को अन्यथा खुद हटाना पड़ता।
बार-बार जाँच करने से बचने के लिए email_mailbox.message_received वेबहुक की सदस्यता लें। जब कोई आने वाला संदेश इनबॉक्स तक पहुँचता है, तब यह ट्रिगर होता है। इवेंट्स संदर्भ देखें।
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 सर्वर: MCP सर्वर के ज़रिए किसी AI एजेंट से यही लूप चलाएँ।
- CLI: टर्मिनल के लिए
bird email mailboxesऔरbird email threads। - SDK क्विकस्टार्ट: Go, Python और TypeScript के लिए SDK वॉकथ्रू।
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।