Freshdesk कनेक्टर
सपोर्ट और मार्केटिंग डेटा को एकीकृत करने के लिए Tajo के माध्यम से Freshdesk को Brevo से कनेक्ट करें। सपोर्ट इंटरैक्शन्स के आधार पर लक्षित संचार को सशक्त करने के लिए ग्राहक सपोर्ट टिकट्स, कॉन्टैक्ट प्रोफ़ाइल्स, और संतुष्टि स्कोर सिंक करें।
अवलोकन
| गुण | मान |
|---|---|
| प्लेटफ़ॉर्म | Freshdesk |
| श्रेणी | Support |
| सेटअप जटिलता | आसान |
| आधिकारिक इंटीग्रेशन | नहीं |
| सिंक किया गया डेटा | टिकट्स, कॉन्टैक्ट्स, एजेंट्स, कंपनियां |
| उपलब्ध Skills | 6 |
विशेषताएं
- कॉन्टैक्ट सिंक - Brevo कॉन्टैक्ट lists के साथ Freshdesk कॉन्टैक्ट्स का द्विदिशीय sync
- टिकट इवेंट ट्रैकिंग - टिकट निर्माण, अपडेट, और resolution इवेंट्स को Brevo में फ़ॉरवर्ड करें
- CSAT सिंक - ग्राहक संतुष्टि स्कोर को Brevo कॉन्टैक्ट एट्रिब्यूट्स के रूप में सिंक करें
- कंपनी सिंक - Freshdesk कंपनियों को Brevo कॉन्टैक्ट सेगमेंटेशन में मैप करें
- एजेंट डेटा - आंतरिक workflow ऑटोमेशन के लिए एजेंट असाइनमेंट ट्रैक करें
- कस्टम फ़ील्ड्स - Freshdesk कस्टम टिकट और कॉन्टैक्ट फ़ील्ड्स को Brevo एट्रिब्यूट्स में मैप करें
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- admin एक्सेस के साथ एक Freshdesk खाता
- आपकी Freshdesk API Key (Profile Settings में मिले)
- आपका Freshdesk domain (जैसे,
yourcompany.freshdesk.com) - API एक्सेस वाला एक Brevo खाता
- API क्रेडेंशियल्स वाला एक Tajo खाता
प्रमाणीकरण
API Key प्रमाणीकरण
Freshdesk HTTP Basic Auth के माध्यम से API key प्रमाणीकरण का उपयोग करता है। API key को username के रूप में किसी भी string (आमतौर पर X) के साथ password के रूप में उपयोग किया जाता है।
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsया Authorization हेडर में Base64 encoding का उपयोग करके:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"अपनी API Key खोजें
- अपने Freshdesk खाते में लॉग इन करें
- ऊपरी-दाएं कोने में अपनी प्रोफ़ाइल चित्र पर क्लिक करें
- Profile Settings पर जाएं
- आपकी API Key दाईं ओर प्रदर्शित होती है
कॉन्फ़िगरेशन
बुनियादी सेटअप
connectors: freshdesk: enabled: true domain: "yourcompany.freshdesk.com" api_key: "your-freshdesk-api-key"
# Data sync options sync: contacts: true tickets: true companies: true satisfaction_ratings: true
# Brevo list assignment lists: all_support_contacts: 30 open_tickets: 31 resolved_tickets: 32कॉन्टैक्ट फ़ील्ड मैपिंग
Freshdesk कॉन्टैक्ट फ़ील्ड्स को Brevo एट्रिब्यूट्स में मैप करें:
contact_mapping: email: email name: FULLNAME phone: SMS company_id: COMPANY job_title: JOB_TITLE twitter_id: TWITTER language: LANGUAGE time_zone: TIMEZONE
# Support metrics total_tickets: TICKET_COUNT open_tickets: OPEN_TICKETS avg_csat: CSAT_SCORE last_ticket_date: LAST_SUPPORT_DATE
# Custom fields custom_fields.account_type: ACCOUNT_TYPE custom_fields.subscription_tier: PLANटिकट इवेंट मैपिंग
Freshdesk टिकट इवेंट्स को Brevo ऑटोमेशन ट्रिगर्स में मैप करें:
ticket_events: ticket_created: "support_ticket_created" ticket_updated: "support_ticket_updated" ticket_resolved: "support_ticket_resolved" ticket_closed: "support_ticket_closed" ticket_reopened: "support_ticket_reopened" satisfaction_rated: "csat_submitted" note_added: "support_note_added"API एंडपॉइंट्स
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /api/v2/tickets | सभी टिकट्स सूचीबद्ध करें |
POST | /api/v2/tickets | एक टिकट बनाएं |
GET | /api/v2/tickets/{id} | एक विशिष्ट टिकट प्राप्त करें |
PUT | /api/v2/tickets/{id} | एक टिकट अपडेट करें |
DELETE | /api/v2/tickets/{id} | एक टिकट हटाएं |
GET | /api/v2/contacts | सभी कॉन्टैक्ट्स सूचीबद्ध करें |
POST | /api/v2/contacts | एक कॉन्टैक्ट बनाएं |
PUT | /api/v2/contacts/{id} | एक कॉन्टैक्ट अपडेट करें |
GET | /api/v2/companies | सभी कंपनियां सूचीबद्ध करें |
GET | /api/v2/agents | सभी एजेंट्स सूचीबद्ध करें |
GET | /api/v2/surveys/satisfaction_ratings | CSAT ratings सूचीबद्ध करें |
GET | /api/v2/search/tickets?query= | टिकट्स खोजें |
कोड उदाहरण
Freshdesk कनेक्टर प्रारंभ करें
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Freshdesk accountawait tajo.connectors.connect('freshdesk', { domain: 'yourcompany.freshdesk.com', apiKey: process.env.FRESHDESK_API_KEY});Brevo में कॉन्टैक्ट्स सिंक करें
// Fetch Freshdesk contacts and sync to Brevoconst response = await fetch( 'https://yourcompany.freshdesk.com/api/v2/contacts?page=1&per_page=100', { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`), 'Content-Type': 'application/json' } });
const contacts = await response.json();// Each contact:// {// "id": 12345,// "name": "Jane Kim",// "email": "[email protected]",// "phone": "+15551234567",// "company_id": 678,// "job_title": "Product Manager",// "created_at": "2024-01-15T10:30:00Z"// }टिकट इवेंट्स ट्रैक करें
// Set up Freshdesk webhook to forward ticket events// Configure in Freshdesk Admin > Automations > Webhook
// Webhook handlerapp.post('/webhooks/freshdesk', async (req, res) => { const { ticket, event_type } = req.body;
await tajo.connectors.handleWebhook('freshdesk', { topic: event_type, payload: { ticketId: ticket.id, subject: ticket.subject, status: ticket.status, priority: ticket.priority, requesterEmail: ticket.requester.email, createdAt: ticket.created_at } });
res.status(200).send('OK');});ग्राहक के अनुसार टिकट्स खोजें
// Search for all tickets from a specific customerconst response = await fetch( `https://yourcompany.freshdesk.com/api/v2/search/tickets?query=${query}`, { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`) } });
const { results, total } = await response.json();दर सीमाएं
| प्लान | सीमा | विवरण |
|---|---|---|
| Sprout | 50 अनुरोध/min | Free प्लान |
| Blossom | 200 अनुरोध/min | Starter प्लान |
| Garden | 400 अनुरोध/min | Growth प्लान |
| Estate | 700 अनुरोध/min | Pro प्लान |
| Forest | 1,000 अनुरोध/min | Enterprise प्लान |
अतिरिक्त सीमाएं:
| संसाधन | सीमा |
|---|---|
| List एंडपॉइंट्स | 30 pages प्रति query |
| प्रति page | 100 records max |
| Search API | 2 अनुरोध/sec |
| Bulk operations | 10 records/अनुरोध |
दर सीमा हेडर्स
Freshdesk response हेडर्स में दर सीमा जानकारी लौटाता है। X-RateLimit-Remaining की निगरानी करें और सीमाओं तक पहुंचने पर backoff लागू करें।
समस्या निवारण
| समस्या | कारण | समाधान |
|---|---|---|
401 Unauthorized | अमान्य API key | Freshdesk Profile Settings में API key सत्यापित करें |
403 Forbidden | अपर्याप्त अनुमतियां | सुनिश्चित करें कि API key एक admin account से संबंधित है |
| कॉन्टैक्ट्स सिंक नहीं हो रहे | ईमेल फ़ील्ड गायब | Freshdesk कॉन्टैक्ट्स के लिए ईमेल पता आवश्यक है |
| टिकट्स दिखाई नहीं दे रहे | गलत domain | अपना Freshdesk domain URL सही है सत्यापित करें |
| Search खाली लौटा रहा | Query syntax त्रुटि | double quotes के साथ Freshdesk search query syntax का उपयोग करें |
429 Too Many Requests | दर सीमा पार | प्लान tier के आधार पर rate limiting लागू करें |
| कस्टम फ़ील्ड्स गायब | फ़ील्ड सक्षम नहीं | सुनिश्चित करें कि कस्टम फ़ील्ड्स Freshdesk admin में सक्षम हैं |
सर्वोत्तम प्रथाएं
- रीयल-टाइम sync के लिए webhooks का उपयोग करें - टिकट इवेंट्स पर webhooks ट्रिगर करने के लिए Freshdesk Automations कॉन्फ़िगर करें
- CSAT स्कोर सिंक करें - सेगमेंटेशन के लिए Brevo एट्रिब्यूट्स के रूप में ग्राहक संतुष्टि ratings ट्रैक करें
- टिकट स्थिति को lists में मैप करें - टिकट स्थिति के आधार पर Brevo lists के बीच कॉन्टैक्ट्स को स्वचालित रूप से स्थानांतरित करें
- सपोर्ट मेट्रिक्स ट्रैक करें - प्रति कॉन्टैक्ट टिकट गिनती, औसत प्रतिक्रिया समय, और resolution rate सिंक करें
- search API का संयम से उपयोग करें - search API की दर सीमाएं अधिक सख्त हैं; जब संभव हो परिणाम cache करें
- बड़े exports को paginate करें - प्रारंभिक sync के लिए
pageऔरper_pageपैरामीटर के साथ pagination का उपयोग करें
सुरक्षा
- API key प्रमाणीकरण - API key के साथ सरल HTTP Basic Auth
- HTTPS only - सभी API संचार को TLS एन्क्रिप्शन की आवश्यकता है
- IP whitelisting - Estate और Forest प्लान्स पर उपलब्ध
- Role-based एक्सेस - API key अनुमतियां agent role से जुड़ी हैं
- SOC 2 Type II - Freshdesk SOC 2 Type II प्रमाणित है
- GDPR अनुपालन - डेटा निर्यात और deletion अनुरोधों का समर्थन करता है