संपर्क
संपर्कों को डैशबोर्ड में Contacts > All contacts में, टर्मिनल से bird contacts के साथ, संपर्क API के ज़रिए, या किसी भी SDK से प्रबंधित करें।
संपर्कों तक पहुँचना
किसी एक व्यक्ति को ईमेल करने के लिए send API से उनके पते पर भेजें; संपर्क रिकॉर्ड यह जानकारी रखता है कि वे कौन हैं, ताकि आप उसे दोबारा इस्तेमाल कर सकें। एक साथ कई लोगों तक पहुँचने के लिए बैच भेजें, या उन्हें किसी ऑडियंस में समूहित करके ब्रॉडकास्ट भेजें। किसी संपर्क को संग्रहीत करने से अपने आप कुछ नहीं भेजा जाता।
Contacts पेज
Contacts पेज संपर्क का नाम, पहचानकर्ता, ऑडियंस सदस्यता और निर्माण की जानकारी दिखाता है। नाम, ईमेल या फ़ोन से खोजें, फिर संपर्क खोलने के लिए कोई पंक्ति चुनें। एक संपर्क जोड़ने या कई संपर्क इम्पोर्ट करने के लिए हेडर की कार्रवाइयों का उपयोग करें। देखने के लिए email_marketing पढ़ने की अनुमति चाहिए। जोड़ने, संपादित करने और हटाने के लिए लिखने की अनुमति चाहिए।

एक संपर्क में क्या होता है
हर संपर्क में एक ईमेल पता, एक फ़ोन नंबर या दोनों होते हैं, और इनमें से हर एक आपके वर्कस्पेस में अद्वितीय होता है। इसके अलावा वैकल्पिक रूप से एक नाम और उसके लिए आपका अपना पहचानकर्ता भी हो सकता है:
| फ़ील्ड | यह क्या है |
|---|---|
email | पता, जो आपके वर्कस्पेस में अद्वितीय होता है। हम इसे आगे-पीछे की खाली जगह हटाकर और छोटे अक्षरों में बदलकर सहेजते हैं, इसलिए Sam@Acme.com और sam@acme.com एक ही पहचानकर्ता में बदल जाते हैं। |
phone_number | फ़ोन नंबर, जो आपके वर्कस्पेस में अद्वितीय होता है। इसका फ़ॉर्मेट अंतरराष्ट्रीय रूप में बदल दिया जाता है। सहेजते समय नंबरिंग योजना की जानकारी, स्वामित्व, पहुँच योग्यता या सहमति की जाँच नहीं की जाती। |
first_name | वैकल्पिक पहला नाम, जिसका उपयोग भेजे गए संदेश को व्यक्तिगत बनाने के लिए होता है। |
last_name | वैकल्पिक उपनाम। |
external_id | वैकल्पिक। व्यक्ति के लिए आपकी अपनी प्राथमिक कुंजी (आपके डेटाबेस से उपयोगकर्ता ID), जो सेट होने पर आपके वर्कस्पेस में अद्वितीय होती है। इसी से आप ईमेल पर निर्भर हुए बिना किसी संपर्क को अपने रिकॉर्ड से मिलाते हैं। |
data | कस्टम प्रॉपर्टी मान, हर पंजीकृत संपर्क प्रॉपर्टी के लिए एक। |
डैशबोर्ड मौजूद पहचानकर्ताओं के आधार पर Email और SMS लेबल तय करता है। API केवल email और phone_number लौटाता है, कोई channels फ़ील्ड नहीं लौटाता। इन लेबल से यह तय नहीं होता कि आपको भेजने की अनुमति है या संपर्क उस चैनल पर पहुँच योग्य है।
हर संपर्क की एक ID भी होती है, जिसकी शुरुआत con_ से होती है। साथ ही उसके बनाए जाने और अपडेट होने के टाइमस्टैम्प भी होते हैं। सभी फ़ील्ड का पूरा विवरण API संदर्भ में है।
संपर्क प्रॉपर्टी
संपर्क प्रॉपर्टी किसी संपर्क के कस्टम फ़ील्ड का टाइप वाला स्कीमा हैं। अपने वर्कस्पेस के लिए कोई प्रॉपर्टी पंजीकृत करें। इसके बाद हर संपर्क में data के अंतर्गत उसका मान रखा जा सकता है। स्कीमा पहले से घोषित करने पर ही पर्सनलाइज़ेशन और सेगमेंटेशन भरोसेमंद बनते हैं। मान हमेशा उसी टाइप में आता है जो आपने घोषित किया था, इसलिए टेम्पलेट या फ़िल्टर उस पर भरोसा कर सकता है।

इन्हें Contacts > Contact properties में प्रबंधित करें। हर प्रॉपर्टी में एक कुंजी, एक टाइप और एक वैकल्पिक फ़ॉलबैक होता है:
- कुंजी वह नाम है जिससे आप मान का संदर्भ देते हैं, जैसे
plan_tier। यह लोअरकेस में होनी चाहिए और किसी अक्षर से शुरू होनी चाहिए (^[a-z][a-z0-9_]*$)। एक बार बनने के बाद इसे बदला नहीं जा सकता। - टाइप
string,number,booleanयाdatetimeमें से एक होता है। एक बार बनने के बाद इसे भी बदला नहीं जा सकता।datetimeमें स्पष्ट ऑफ़सेट वाला RFC 3339 टाइमस्टैम्प दिया जाता है, जैसे2026-01-15T11:30:00+02:00। हम इसे सेकंड की सटीकता तक UTC में बदल देते हैं, इसलिए यह मान2026-01-15T09:30:00Zके रूप में संग्रहीत होता है और लौटाया जाता है। बिना समय वाली केवल तारीख अस्वीकार कर दी जाती है। डैशबोर्ड में इनके लेबल Text, Number, True / false और Date & time हैं। - फ़ॉलबैक मान वह मान है जो किसी संपर्क का अपना मान न होने पर पढ़ा जाता है। इससे गायब
plan_tierखाली दिखने के बजायfreeके रूप में दिख सकता है।
आप जहाँ भी संपर्क संपादित करते हैं, वहीं प्रॉपर्टी मान सेट कर सकते हैं। डैशबोर्ड के संपर्क फ़ॉर्म में हर सक्रिय प्रॉपर्टी के लिए उसके टाइप वाला एक इनपुट दिखता है। CLI और API भी data के अंतर्गत यही कुंजियाँ लेते हैं।
प्रॉपर्टी को आर्काइव करना
किसी संपर्क प्रॉपर्टी को हटाने का तरीका उसे आर्काइव करना है। Bird उसके मान सुरक्षित रखता है, ताकि आप Unarchive से उसे बहाल कर सकें। किसी प्रॉपर्टी को स्थायी रूप से हटाने का कोई विकल्प नहीं है।
आर्काइव की गई प्रॉपर्टी प्रॉपर्टी चुनने वाली सूचियों से हट जाती है, जिसमें इम्पोर्ट का कॉलम मैपिंग भी शामिल है। उसे पढ़ने वाले नए टेम्पलेट संस्करण प्रकाशित नहीं किए जा सकते। प्रकाशन की त्रुटि में उस प्रॉपर्टी का नाम दिया जाता है। पहले से प्रकाशित टेम्पलेट भेजते रहते हैं और मान संपर्क से या प्रॉपर्टी के फ़ॉलबैक से भरते हैं।
संपर्कों में उनके संग्रहीत मान बने रहते हैं। आप API और इम्पोर्ट के ज़रिए उन्हें अब भी पढ़ और अपडेट कर सकते हैं। मान प्रॉपर्टी के प्रकार से मेल खाने चाहिए।
यदि कोई प्रकाशित ऑटोमेशन, रोका गया ऑटोमेशन भी, किसी ट्रिगर या संपर्क में लिखने के लिए उस प्रॉपर्टी का उपयोग करता है, तो आर्काइव करने पर 409 कॉन्फ़्लिक्ट लौटता है। उस प्रॉपर्टी में लिखने वाला कोई सक्रिय रन भी आर्काइव करने से रोकता है। उन ऑटोमेशन से प्रॉपर्टी हटाएँ या उन्हें आर्काइव करें। सक्रिय रन पूरे होने दें या उन्हें रद्द करें, फिर प्रॉपर्टी को दोबारा आर्काइव करें। यदि आपके पास उन ऑटोमेशन को पढ़ने की अनुमति है, तो त्रुटि में उनके नाम दिए जाते हैं।
प्रॉपर्टी को उसके मानों के साथ बहाल करने के लिए उसे अनआर्काइव करें। वह चुनने वाली सूचियों में फिर से दिखती है और नए टेम्पलेट संस्करणों में उपयोग की जा सकती है। आर्काइव रहने के दौरान उसकी कुंजी आरक्षित रहती है और वर्कस्पेस की 200 प्रॉपर्टी की सीमा में गिनी जाती है।
संपर्क इम्पोर्ट और सिंक करना
Contacts पेज से कोई सूची इम्पोर्ट करने के लिए Import चुनें और CSV, TSV या Excel फ़ाइल अपलोड करें। हर पंक्ति में एक संपर्क रखें और कॉलमों के नाम बताने वाली एक हेडर पंक्ति शामिल करें। एक फ़ाइल में अधिकतम 50,000 संपर्क हो सकते हैं। CSV फ़ाइलें अधिकतम 50 MB और स्प्रेडशीट फ़ाइलें अधिकतम 10 MB की हो सकती हैं।
हेडर पंक्ति से हर संपर्क फ़ील्ड की पहचान करने में मदद मिलती है। "Email Address", "E-Mail" या "Correo electrónico" नाम वाले सभी कॉलम ईमेल फ़ील्ड से मैप होते हैं। पूरा नाम रखने वाला एक अकेला कॉलम पहले नाम और अंतिम नाम में बाँटा जाता है। जहाँ दो कॉलम एक ही फ़ील्ड भर सकते हैं, वहाँ वह कॉलम चुना जाता है जिसके मान उसके नाम से मेल खाते हैं। हर कॉलम अपने कुछ मान दिखाता है, ताकि आप देख सकें कि उसमें क्या है, और बाँटा जा रहा नाम उस मान के साथ दिखाया जाता है जिससे वह निकला है। हर कॉलम के ड्रॉपडाउन से इनमें से कुछ भी बदलें। उसी इम्पोर्ट के दौरान फ़ाइल के सभी लोगों को एक या अधिक ऑडियंस में जोड़ा जा सकता है।
हर पंक्ति को उसमें मौजूद पहचानकर्ताओं के आधार पर किसी मौजूदा संपर्क से मिलाकर अपडेट किया जाता है, या नई होने पर बनाया जाता है। इसलिए वही फ़ाइल दोबारा इम्पोर्ट करने पर डुप्लिकेट का ढेर नहीं बनता, बल्कि अपसर्ट होता है। कुछ भी लिखे जाने से पहले डैशबोर्ड बताता है कि मौजूदा मैपिंग के साथ शुरुआती कितनी पंक्तियाँ इम्पोर्ट नहीं की जा सकतीं। रन के बाद हर छोड़ी गई पंक्ति के साथ उसकी स्रोत पंक्ति संख्या और त्रुटि दी जाती है।
इम्पोर्ट में डुप्लिकेट की गिनती आपकी फ़ाइल के भीतर दोहराई गई पंक्तियों की होती है। इसके लिए ईमेल पता मौजूद होने पर उसका, वरना फ़ोन नंबर का उपयोग होता है। आपके वर्कस्पेस में पहले से मौजूद संपर्कों से मेल तब अपडेट के रूप में दिखते हैं, जब API उनकी पुष्टि करता है।
“This row was not confirmed as saved” का अर्थ है कि डैशबोर्ड को उस पंक्ति की पुष्टि करने वाला परिणाम नहीं मिला। हो सकता है पंक्ति सहेजी गई हो, भले ही बनाए गए और अपडेट किए गए संपर्कों की गिनती शून्य हो। फिर से प्रयास करने से पहले कुछ प्रभावित संपर्कों की जाँच करें। इम्पोर्ट पूरा होने तक इम्पोर्ट टैब खुला रखें, क्योंकि डैशबोर्ड उसी टैब से इम्पोर्ट चलाता है।
अपने डेटाबेस से सिंक करने के लिए CLI की स्क्रिप्ट बनाएँ या बैच एंडपॉइंट को कॉल करें। bird contacts create <email> एक संपर्क जोड़ता है। bird contacts batch एक ही कॉल में अधिकतम 1,000 संपर्क अपसर्ट करता है। अपनी संपर्क सूची को अपने सिस्टम के अनुरूप रखने के लिए हर व्यक्ति के लिए एक अनुरोध भेजने के बजाय हर रन में एक बैच का उपयोग करें।
const contact = await bird.contacts.create({
email: "jane@acme.com",
first_name: "Jane",
});
console.log(contact.id); // "con_…"contact = client.contacts.create(email="jane@acme.com", first_name="Jane")
print(contact.id, contact.email)contact, err := client.Contacts.Create(context.Background(), bird.ContactCreateParams{
Email: bird.Ptr("jane@acme.com"),
FirstName: bird.Ptr("Jane"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(contact.Id)$contact = $bird->contacts->create(
(new ContactCreateRequest())
->setEmail('jane@acme.com')
->setFirstName('Jane'),
);
echo $contact->getId(); // "con_…"bird contacts create alice@acme.com \
--first-name Alice \
--last-name Anderson \
--phone-number +31612345678curl -X POST "https://{region}.platform.bird.com/v1/contacts" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@acme.com",
"phone_number": "+31612345678",
"first_name": "Alice",
"last_name": "Anderson"
}'हर बैच प्रविष्टि का मिलान उसके दिए गए पहचानकर्ताओं (ईमेल पता, फ़ोन नंबर या बाहरी ID) के आधार पर अपने आप होता है। वैकल्पिक match_on फ़ील्ड इसके बजाय इनमें से केवल एक पर मिलान करवाता है। कोई प्रविष्टि कस्टम प्रॉपर्टी मान भी सेट कर सकती है, और audience_ids के ज़रिए अनुरोध के हर संपर्क को सीधे ऑडियंस में जोड़ सकती है। हर प्रविष्टि अलग से सफल या विफल होती है, और प्रतिक्रिया भेजे गए क्रम में हर प्रविष्टि का एक परिणाम बताती है:
{
"data": [
{
"contact_id": "con_01ky7q5t51echr7mqj5c08423b",
"entry": { "email": "alex@example.com", "phone_number": null, "external_id": null },
"matched_on": "email",
"status": "updated"
},
{
"contact_id": "con_01ky7q6mxdfhe86c9dqyt866pz",
"entry": { "email": "jamie@example.com", "phone_number": null, "external_id": null },
"matched_on": null,
"status": "created"
},
{
"contact_id": "con_01ky7q7rv9e9pt4vkr0w0gxq5e",
"entry": { "email": "casey@example.com", "phone_number": null, "external_id": "user_2214" },
"matched_on": "external_id",
"status": "updated"
}
]
}अगर किसी प्रविष्टि के पहचानकर्ता अलग-अलग मौजूदा संपर्कों की ओर इशारा करते हैं, तो वह प्रविष्टि समीक्षा के लिए एक टकराव के साथ विफल हो जाती है। फिर से प्रयास करने से पहले स्रोत रिकॉर्ड ठीक करें; बैच उन संपर्कों को आपस में नहीं मिलाता।
सिंक के लिए दो डिफ़ॉल्ट काम आते हैं। बैच data कुंजियों को मौजूदा संपर्क डेटा में मिला देता है, इसलिए एक विशेषता बदलने वाला इंपोर्ट बाकी विशेषताओं को नहीं मिटाता। किसी एक कुंजी को साफ़ करने के लिए null मान भेजें, या पूरे मैप को बदलने के लिए data_mode: "replace" सेट करें। हर संपर्क पर अपना external_id सेट करें, ताकि ईमेल बदलने के बाद भी अगला सिंक उसी व्यक्ति को ढूँढ सके। बैच उदाहरण में user_2214 पहले से मौजूद है, इसलिए प्रविष्टि उसी संपर्क से मिलती है और नया ईमेल उसी में लिख देती है।
संपर्क हटाना
संपर्क हटाना स्थायी है: रिकॉर्ड और उसकी ऑडियंस सदस्यताएँ हट जाती हैं, और उन्हें वापस नहीं लाया जा सकता। हालाँकि सप्रेशन और प्राथमिकताएँ नहीं बदलतीं। संपर्क हटाने के बाद भी हार्ड-बाउंस हुआ पता आपकी सप्रेशन सूची में रहता है, और सदस्यता छोड़ चुका पता अपनी ऑप्ट-आउट प्राथमिकता बनाए रखता है। इसलिए किसी को हटाने से वह चुपचाप फिर से ईमेल पाने योग्य नहीं बनता।
अगले कदम
- ऑडियंस: संपर्कों को दोबारा इस्तेमाल होने वाली सूचियों में समूहित करें
- सप्रेशन: उन पतों की वर्कस्पेस सूची जिन पर हम डिलीवर नहीं करते, जो आपके संपर्कों से अलग रखी जाती है
- बैच में भेजना: एक कॉल में कई प्राप्तकर्ताओं तक पहुँचना, प्रति अनुरोध 100 संदेशों तक
- CLI:
birdकमांड से संपर्कों, प्रॉपर्टी और ऑडियंस की स्क्रिप्टिंग - API संदर्भ: पूरे अनुरोध और प्रतिक्रिया स्कीमा
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।