Sign inGet Started

संपर्क

संपर्कों को डैशबोर्ड में संपर्क > सभी संपर्क में, टर्मिनल से bird contacts के साथ, संपर्क API के ज़रिए, या उपलब्ध SDKs में से किसी के साथ प्रबंधित करें।

संपर्कों तक पहुँचना

एक व्यक्ति को ईमेल करने के लिए भेजने वाले API से उसके पते पर भेजें; संपर्क रिकॉर्ड उसकी पहचान को दोबारा इस्तेमाल के लिए सहेजकर रखता है। एक साथ कई लोगों तक पहुँचने के लिए बैच भेजें, या उन्हें ऑडियंस में व्यवस्थित करके ब्रॉडकास्ट भेजें। संपर्क सहेजने भर से कोई संदेश नहीं भेजा जाता।

संपर्क पेज

संपर्क पेज संपर्क का नाम, पहचानकर्ता, ऑडियंस सदस्यता और बनाए जाने की जानकारी दिखाता है। नाम, ईमेल या फ़ोन से खोजें, फिर संपर्क खोलने के लिए उसकी पंक्ति चुनें। एक संपर्क जोड़ने या कई संपर्क इम्पोर्ट करने के लिए हेडर में मौजूद कार्रवाइयों का इस्तेमाल करें। देखने के लिए email_marketing की पढ़ने की अनुमति चाहिए। जोड़ने, संपादित करने और हटाने के लिए लिखने की अनुमति चाहिए।
डैशबोर्ड का संपर्क पेज, जिसमें सहेजे गए संपर्क ईमेल, नाम, बाहरी ID और बनाने की तारीख के साथ सूचीबद्ध हैं। साथ में खोज और प्रॉपर्टी, इम्पोर्ट व संपर्क जोड़ें बटन हैं

संपर्क में क्या सहेजा जाता है

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

संपर्क प्रॉपर्टी

संपर्क प्रॉपर्टी, संपर्क के कस्टम फ़ील्ड के प्रकार निर्धारित करने वाला स्कीमा हैं। अपने वर्कस्पेस के लिए प्रॉपर्टी पंजीकृत करें। इसके बाद हर संपर्क में data के अंतर्गत उसका मान हो सकता है। स्कीमा पहले से घोषित करने से वैयक्तिकरण और सेगमेंटेशन भरोसेमंद होते हैं: मान हमेशा आपके घोषित प्रकार में आता है, इसलिए टेम्पलेट या फ़िल्टर उस पर भरोसा कर सकता है।
डैशबोर्ड का संपर्क प्रॉपर्टी पेज, जिसमें छह प्रॉपर्टी उनकी की, प्रकार, फ़ॉलबैक मान और बनाने की तारीख के साथ सूचीबद्ध हैं। इनमें से एक पर आर्काइव किया गया बैज है
इन्हें संपर्क > संपर्क प्रॉपर्टी में प्रबंधित करें। हर प्रॉपर्टी में एक की, एक प्रकार और वैकल्पिक फ़ॉलबैक होता है:
  • की वह नाम है जिससे आप मान का संदर्भ देते हैं, जैसे 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 के रूप में सहेजा और लौटाया जाता है। बिना समय के केवल तारीख अस्वीकार की जाती है। डैशबोर्ड में इनके लेबल टेक्स्ट, संख्या, सही / गलत और तारीख व समय हैं।
  • फ़ॉलबैक मान उस संपर्क को पढ़ने पर मिलता है जिसका अपना मान नहीं है। इसलिए plan_tier मौजूद न होने पर खाली मान की जगह free मिल सकता है।
प्रॉपर्टीज़ को डिलीट करने के बजाय आर्काइव किया जाता है। आर्काइव करने से उस key पर नई राइट्स रुक जाती हैं, लेकिन पहले से स्टोर हर वैल्यू बनी रहती है, और key रिज़र्व्ड रहती है ताकि वह कभी किसी अलग टाइप के रूप में वापस न आ सके। किसी लाइव प्रॉपर्टी को आर्काइव करना सफल होता है चाहे कोई भी उस key को पढ़ रहा हो: उसके बाद प्रॉपर्टी, प्रॉपर्टी पिकर्स से हट जाती है और उसे पढ़ने वाला कोई भी टेम्पलेट वर्शन पब्लिश नहीं किया जा सकता, जबकि आर्काइव से पहले पब्लिश हुआ हर वर्शन भेजना जारी रखता है और आपके कॉन्टैक्ट्स में पहले से मौजूद वैल्यूज़ से key भरता रहता है। इसे वापस लाने के लिए अनआर्काइव करें। यही रिज़र्वेशन इस बात की भी वजह है कि टाइप अपरिवर्तनीय है: एक स्टोर किया गया number कभी string के रूप में पढ़ा जाने नहीं लगना चाहिए। एक वर्कस्पेस अधिकतम 200 प्रॉपर्टीज़ रजिस्टर कर सकता है, और आर्काइव की गई प्रॉपर्टीज़ भी इस सीमा में गिनी जाती हैं क्योंकि उनकी keys अभी भी होल्ड हैं।
जहाँ भी आप संपर्क संपादित करते हैं, वहाँ प्रॉपर्टी के मान सेट करें। डैशबोर्ड के संपर्क फ़ॉर्म में हर सक्रिय प्रॉपर्टी के लिए उसके प्रकार के अनुसार एक इनपुट दिखता है। CLI और API में भी data के अंतर्गत वही की दी जाती हैं।

संपर्क इम्पोर्ट करना और सिंक करना

संपर्क पेज से सूची इम्पोर्ट करने के लिए इम्पोर्ट चुनें और 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” का अर्थ है कि डैशबोर्ड को उस पंक्ति की पुष्टि करने वाला कोई परिणाम नहीं मिला। पंक्ति सेव हो चुकी हो सकती है, भले ही created और updated काउंट शून्य हों। फिर से प्रयास करने से पहले कुछ प्रभावित कॉन्टैक्ट्स जाँच लें। इम्पोर्ट टैब को पूरा होने तक खुला रखें; डैशबोर्ड उसी टैब से इम्पोर्ट चलाता है।
अपने डेटाबेस से सिंक करने के लिए CLI को स्क्रिप्ट करें या बैच एंडपॉइंट को कॉल करें। bird contacts create <email> एक कॉन्टैक्ट जोड़ता है। bird contacts batch एक ही कॉल में 1,000 तक upsert करता है। अपनी कॉन्टैक्ट सूची को अपने सिस्टम के साथ समन्वित रखने के लिए प्रति व्यक्ति एक रिक्वेस्ट के बजाय प्रति रन एक बैच का उपयोग करें।
const contact = await bird.contacts.create({
  email: "jane@acme.com",
  first_name: "Jane",
});
console.log(contact.id); // "con_…"
प्रत्येक बैच एंट्री उसमें दिए गए आइडेंटिफ़ायर (ईमेल पता, फ़ोन नंबर, या एक्सटर्नल 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 पहले से मौजूद है, इसलिए एंट्री उस कॉन्टैक्ट पर रिज़ॉल्व होती है और नया ईमेल वहीं लिख देती है।

कॉन्टैक्ट हटाना

कॉन्टैक्ट हटाना स्थायी है: रिकॉर्ड और उसकी ऑडियंस सदस्यताएँ चली जाती हैं, और कुछ भी उन्हें वापस नहीं ला सकता। हालाँकि, सप्रेशन और प्राथमिकताएँ अछूती रहती हैं। जिस पते पर हार्ड-बाउंस हुआ वह कॉन्टैक्ट हटाने के बाद भी आपकी सप्रेशन सूची पर बना रहता है, और जिसने अनसब्सक्राइब किया उसकी ऑप्ट-आउट प्राथमिकता बनी रहती है, ताकि किसी को हटाने से वे चुपचाप फिर से मेल-योग्य न बन जाएँ।

अगले कदम

  • Audiences: कॉन्टैक्ट्स को पुन: उपयोग योग्य सूचियों में समूहित करें
  • Suppressions: उन पतों की वर्कस्पेस सूची जिन पर हम डिलीवर नहीं करते, आपके कॉन्टैक्ट्स से अलग रखी जाती है
  • Batch sending: एक कॉल में कई प्राप्तकर्ताओं तक पहुँचें, प्रति रिक्वेस्ट 100 संदेश तक
  • CLI: bird कमांड से संपर्क, प्रॉपर्टी और ऑडियंस को स्क्रिप्ट करें
  • API reference: पूर्ण अनुरोध और प्रतिक्रिया स्कीमा