SendGrid कनेक्टर
ईमेल इन्फ्रास्ट्रक्चर माइग्रेशन, कॉन्टैक्ट सिंक्रनाइज़ेशन, कैंपेन डेटा स्थानांतरण, और दोनों प्लेटफ़ॉर्म्स में एकीकृत एंगेजमेंट एनालिटिक्स के लिए अपने SendGrid खाते को Tajo के माध्यम से Brevo से कनेक्ट करें।
अवलोकन
| गुण | मान |
|---|---|
| प्लेटफ़ॉर्म | SendGrid (Twilio) |
| श्रेणी | Marketing |
| सेटअप जटिलता | आसान |
| आधिकारिक इंटीग्रेशन | हां |
| सिंक किया गया डेटा | कॉन्टैक्ट्स, कैंपेन, ट्रांज़ैक्शनल ईमेल, इवेंट्स |
| API Base URL | https://api.sendgrid.com/v3 |
विशेषताएं
- कॉन्टैक्ट माइग्रेशन - कस्टम फ़ील्ड्स के साथ SendGrid Marketing कॉन्टैक्ट्स को Brevo में माइग्रेट करें
- Transactional ईमेल सिंक - एकीकृत रिपोर्टिंग के लिए transactional ईमेल इवेंट्स ट्रैक करें
- कैंपेन डेटा - Single Send और Automation कैंपेन प्रदर्शन डेटा सिंक करें
- Event webhooks - ईमेल इवेंट्स (delivered, opened, clicked, bounced) को Brevo में फ़ॉरवर्ड करें
- Suppression सिंक - अनुपालन के लिए bounce, block, और unsubscribe lists माइग्रेट करें
- Template माइग्रेशन - Brevo उपयोग के लिए Dynamic Transactional Templates निर्यात करें
- Sender सत्यापन - सत्यापित sender identities और domain प्रमाणीकरण सिंक करें
- आंकड़े सिंक - Brevo एट्रिब्यूट्स में ऐतिहासिक एंगेजमेंट आंकड़े आयात करें
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- एक SendGrid खाता (Free, Essentials, Pro, या Premier)
- आवश्यक अनुमतियों के साथ एक SendGrid API key
- API एक्सेस वाला एक Brevo खाता
- एक Tajo खाता
प्रमाणीकरण
API Key प्रमाणीकरण
SendGrid bearer token प्रमाणीकरण का उपयोग करता है।
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"विशिष्ट अनुमति स्तरों के साथ SendGrid Settings > API Keys में API keys बनाएं:
- Full Access - संपूर्ण API एक्सेस
- Restricted Access - Granular अनुमति नियंत्रण
- Billing Access - केवल-billing operations
आवश्यक अनुमतियां
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessAPI Key सुरक्षा
SendGrid API keys केवल creation के समय दिखाई जाती हैं। उन्हें सुरक्षित रूप से संग्रहीत करें। यदि खो गई, तो आपको एक नई key बनानी होगी।
कॉन्फ़िगरेशन
बुनियादी सेटअप
connectors: sendgrid: enabled: true api_key: "${SENDGRID_API_KEY}"
# Data sync options sync: contacts: true campaigns: true transactional: true suppressions: true statistics: true
# List mapping to Brevo list_mapping: "All Contacts": 60 "Newsletter": 61 "Transactional": 62फ़ील्ड मैपिंग
SendGrid कॉन्टैक्ट फ़ील्ड्स को Brevo कॉन्टैक्ट एट्रिब्यूट्स में मैप करें:
डिफ़ॉल्ट मैपिंग्स
| Parameter | Type | Description |
|---|---|---|
email required | string | कॉन्टैक्ट ईमेल पता (अद्वितीय पहचानकर्ता) |
first_name optional | string | FIRSTNAME एट्रिब्यूट से मैप होता है |
last_name optional | string | LASTNAME एट्रिब्यूट से मैप होता है |
phone_number optional | string | SMS एट्रिब्यूट से मैप होता है |
city optional | string | कॉन्टैक्ट शहर |
country optional | string | कॉन्टैक्ट देश |
custom_fields optional | object | कस्टम फ़ील्ड key-value pairs |
list_ids optional | array | SendGrid list memberships |
कस्टम फ़ील्ड मैपिंग
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone_number: SMS
# Location fields city: CITY state_province_region: STATE country: COUNTRY postal_code: POSTAL_CODE
# Engagement metrics avg_open_rate: AVG_OPEN_RATE avg_click_rate: AVG_CLICK_RATE
# Custom fields custom_fields.company: COMPANY_NAME custom_fields.plan: PLAN_TYPEAPI एंडपॉइंट्स
Marketing कॉन्टैक्ट्स
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
PUT | /v3/marketing/contacts | कॉन्टैक्ट्स जोड़ें या अपडेट करें |
POST | /v3/marketing/contacts/search | कॉन्टैक्ट्स खोजें |
GET | /v3/marketing/contacts/count | कॉन्टैक्ट गिनती प्राप्त करें |
POST | /v3/marketing/contacts/exports | कॉन्टैक्ट्स निर्यात करें |
DELETE | /v3/marketing/contacts | कॉन्टैक्ट्स हटाएं |
GET | /v3/marketing/lists | सभी कॉन्टैक्ट lists सूचीबद्ध करें |
Transactional ईमेल (Mail Send)
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
POST | /v3/mail/send | एक ईमेल भेजें |
GET | /v3/templates | Dynamic Templates सूचीबद्ध करें |
GET | /v3/templates/{id} | template विवरण प्राप्त करें |
कैंपेन (Single Sends)
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /v3/marketing/singlesends | Single Sends सूचीबद्ध करें |
GET | /v3/marketing/singlesends/{id} | Single Send विवरण प्राप्त करें |
GET | /v3/marketing/automations | Automations सूचीबद्ध करें |
आंकड़े
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /v3/stats | वैश्विक ईमेल आंकड़े प्राप्त करें |
GET | /v3/categories/stats | category आंकड़े प्राप्त करें |
GET | /v3/marketing/stats/singlesends | Single Send आंकड़े प्राप्त करें |
Suppressions
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /v3/suppression/bounces | bounced ईमेल सूचीबद्ध करें |
GET | /v3/suppression/blocks | blocked ईमेल सूचीबद्ध करें |
GET | /v3/suppression/spam_reports | spam reports सूचीबद्ध करें |
GET | /v3/suppression/unsubscribes | वैश्विक unsubscribes सूचीबद्ध करें |
इवेंट्स
ईमेल इवेंट्स (Event Webhook के माध्यम से)
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
processed | ईमेल SendGrid द्वारा स्वीकार | भेजने की पुष्टि |
delivered | ईमेल recipient को डिलीवर हुआ | डिलीवरी ट्रैकिंग |
open | ईमेल खोला गया | एंगेजमेंट स्कोरिंग |
click | लिंक क्लिक किया | रुचि ट्रैकिंग |
bounce | ईमेल बाउंस हुआ | List हाइजीन |
dropped | ईमेल suppress हुआ | अनुपालन समीक्षा |
deferred | डिलीवरी विलंबित | रीट्राई निगरानी |
spam_report | स्पैम के रूप में चिह्नित | प्रतिष्ठा प्रबंधन |
unsubscribe | लिंक के माध्यम से unsubscribed | वरीयता सिंक |
कोड उदाहरण
कनेक्टर प्रारंभ करें
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect SendGridawait tajo.connectors.connect('sendgrid', { apiKey: process.env.SENDGRID_API_KEY});Brevo में कॉन्टैक्ट्स माइग्रेट करें
// Full contact migration from SendGrid to Brevoawait tajo.connectors.sync('sendgrid', { type: 'full', resources: ['contacts', 'suppressions'], options: { includeCustomFields: true, migrateListMemberships: true, migrateSuppressions: true }});
// Check migration statusconst status = await tajo.connectors.status('sendgrid');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 45000,// suppressionsSynced: 3200,// listsMapped: 8// }ईमेल इवेंट्स फ़ॉरवर्ड करें
// Handle SendGrid Event Webhookapp.post('/webhooks/sendgrid', async (req, res) => { const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');
// Verify webhook signature (ECDSA) if (!verifySendGridSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
// Process batch of events for (const event of req.body) { await tajo.connectors.handleWebhook('sendgrid', { type: event.event, email: event.email, timestamp: event.timestamp, payload: event }); }
res.status(200).send('OK');});दर सीमाएं
SendGrid API दर सीमाएं:
| एंडपॉइंट | सीमा | विवरण |
|---|---|---|
Mail Send (/v3/mail/send) | प्लान-निर्भर | Free: 100/दिन, Essentials: प्लान पर आधारित |
| Marketing Contacts PUT | 3 अनुरोध/सेकंड | 30,000 तक कॉन्टैक्ट्स बैच करें |
| Marketing Contacts Search | 50 अनुरोध/सेकंड | प्रति API key |
| General API | 1,000 अनुरोध/सेकंड | प्रति API key |
| Event Webhook | बैच डिलीवरी | प्रति POST 1,000 तक इवेंट्स |
Mail Send सीमाएं
Mail Send सीमाएं आपके SendGrid प्लान पर निर्भर करती हैं। Free अकाउंट्स 100 ईमेल/दिन तक सीमित हैं। सटीक sending सीमाओं के लिए अपना प्लान विवरण जांचें।
समस्या निवारण
सामान्य समस्याएं
| समस्या | कारण | समाधान |
|---|---|---|
| 401 Unauthorized | अमान्य API key | SendGrid Settings में API key सत्यापित करें |
| 403 Forbidden | अपर्याप्त API key अनुमतियां | आवश्यक scopes के साथ नई key बनाएं |
| Contact export pending | बड़ा डेटासेट processing | export status एंडपॉइंट को complete होने तक poll करें |
| Suppression sync अधूरा | Pagination आवश्यक | offset पैरामीटर के साथ pagination लागू करें |
| Event webhook प्राप्त नहीं हुआ | URL सत्यापित नहीं | SendGrid में webhook URL सत्यापन पूरा करें |
डीबग मोड
विस्तृत लॉगिंग सक्षम करें:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueकनेक्शन परीक्षण करें
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleसर्वोत्तम प्रथाएं
- पहले suppressions माइग्रेट करें - भेजने से पहले सुनिश्चित करें कि bounces, blocks, और unsubscribes Brevo में हैं
- batch contact uploads का उपयोग करें - दक्षता के लिए प्रति अनुरोध 30,000 तक कॉन्टैक्ट्स PUT करें
- Event Webhook सत्यापित करें - ECDSA सत्यापन के साथ हस्ताक्षरित webhooks सक्षम करें
- कस्टम फ़ील्ड्स मैप करें - कॉन्टैक्ट माइग्रेशन से पहले संबंधित Brevo एट्रिब्यूट्स बनाएं
- एंगेजमेंट डेटा सिंक करें - Brevo में सेगमेंटेशन के लिए ऐतिहासिक आंकड़े आयात करें
- async exports हैंडल करें - Contact exports asynchronous हैं; completion के लिए poll करें
सुरक्षा
- API Key प्रमाणीकरण - granular अनुमति स्तरों के साथ Bearer token
- Event Webhook signing - webhook payloads के लिए ECDSA सिग्नेचर सत्यापन
- TLS एन्क्रिप्शन - सभी API संचार HTTPS के माध्यम से एन्क्रिप्टेड
- IP Access Management - IP द्वारा Dashboard और API एक्सेस को प्रतिबंधित करें
- Two-factor प्रमाणीकरण - खाता एक्सेस के लिए 2FA उपलब्ध