Konektor Freshdesk
Połącz Freshdesk z Brevo przez Tajo, aby ujednolicić dane wsparcia i marketingu. Synchronizuj zgłoszenia wsparcia klientów, profile kontaktów i wyniki satysfakcji, aby zasilać ukierunkowane komunikacje na podstawie interakcji ze wsparciem.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Freshdesk |
| Kategoria | Support |
| Poziom konfiguracji | Łatwy |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Zgłoszenia, Kontakty, Agenci, Firmy |
| Dostępne Skills | 6 |
Funkcje
- Synchronizacja kontaktów - Dwukierunkowa synchronizacja kontaktów Freshdesk z listami kontaktów Brevo
- Śledzenie zdarzeń zgłoszeń - Przekazuj zdarzenia tworzenia, aktualizacji i rozwiązywania zgłoszeń do Brevo
- Synchronizacja CSAT - Synchronizuj wyniki satysfakcji klientów jako atrybuty kontaktów Brevo
- Synchronizacja firm - Mapuj firmy Freshdesk na segmentację kontaktów Brevo
- Dane agentów - Śledź przypisania agentów dla wewnętrznej automatyzacji workflow
- Niestandardowe pola - Mapuj niestandardowe pola zgłoszeń i kontaktów Freshdesk na atrybuty Brevo
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Freshdesk z dostępem administratora
- Klucz API Freshdesk (dostępny w Ustawieniach profilu)
- Domenę Freshdesk (np.
twojafirma.freshdesk.com) - Konto Brevo z dostępem do API
- Konto Tajo z poświadczeniami API
Uwierzytelnianie
Uwierzytelnianie kluczem API
Freshdesk używa uwierzytelniania kluczem API przez HTTP Basic Auth. Klucz API jest używany jako nazwa użytkownika z dowolnym ciągiem (zazwyczaj X) jako hasłem.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsLub używając kodowania Base64 w nagłówku Authorization:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Znajdowanie klucza API
- Zaloguj się do konta Freshdesk
- Kliknij zdjęcie profilowe w prawym górnym rogu
- Przejdź do Ustawień profilu
- Twój klucz API jest wyświetlany po prawej stronie
Konfiguracja
Podstawowa konfiguracja
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: 32Mapowanie pól kontaktów
Mapuj pola kontaktów Freshdesk na atrybuty 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: PLANMapowanie zdarzeń zgłoszeń
Mapuj zdarzenia zgłoszeń Freshdesk na wyzwalacze automatyzacji 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"Endpointy API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/tickets | Lista wszystkich zgłoszeń |
POST | /api/v2/tickets | Utwórz zgłoszenie |
GET | /api/v2/tickets/{id} | Pobierz konkretne zgłoszenie |
PUT | /api/v2/tickets/{id} | Zaktualizuj zgłoszenie |
DELETE | /api/v2/tickets/{id} | Usuń zgłoszenie |
GET | /api/v2/contacts | Lista wszystkich kontaktów |
POST | /api/v2/contacts | Utwórz kontakt |
PUT | /api/v2/contacts/{id} | Zaktualizuj kontakt |
GET | /api/v2/companies | Lista wszystkich firm |
GET | /api/v2/agents | Lista wszystkich agentów |
GET | /api/v2/surveys/satisfaction_ratings | Lista ocen CSAT |
GET | /api/v2/search/tickets?query= | Wyszukaj zgłoszenia |
Przykłady kodu
Inicjalizacja konektora 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});Synchronizuj kontakty do 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"// }Śledź zdarzenia zgłoszeń
// 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');});Wyszukaj zgłoszenia według klienta
// 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();Limity API
| Plan | Limit | Szczegóły |
|---|---|---|
| Sprout | 50 żądań/min | Plan bezpłatny |
| Blossom | 200 żądań/min | Plan startowy |
| Garden | 400 żądań/min | Plan wzrostowy |
| Estate | 700 żądań/min | Plan pro |
| Forest | 1 000 żądań/min | Plan enterprise |
Dodatkowe limity:
| Zasób | Limit |
|---|---|
| Endpointy listujące | 30 stron na zapytanie |
| Na stronę | Maks. 100 rekordów |
| Search API | 2 żądania/sekundę |
| Operacje masowe | 10 rekordów/żądanie |
Nagłówki limitów szybkości
Freshdesk zwraca informacje o limitach szybkości w nagłówkach odpowiedzi. Monitoruj X-RateLimit-Remaining i wdrożyj wycofanie przy zbliżaniu się do limitów.
Rozwiązywanie problemów
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
401 Unauthorized | Nieprawidłowy klucz API | Zweryfikuj klucz API w Ustawieniach profilu Freshdesk |
403 Forbidden | Niewystarczające uprawnienia | Upewnij się, że klucz API należy do konta administratora |
| Kontakty się nie synchronizują | Brakujące pole e-mail | Kontakty Freshdesk wymagają adresu e-mail |
| Zgłoszenia nie pojawiają się | Zła domena | Zweryfikuj prawidłowość URL domeny Freshdesk |
| Wyszukiwanie zwraca puste wyniki | Błąd składni zapytania | Używaj składni zapytań Freshdesk z podwójnymi cudzysłowami |
429 Too Many Requests | Przekroczono limit szybkości | Wdrożyj ograniczanie szybkości na podstawie poziomu planu |
| Brakujące niestandardowe pola | Pole nie włączone | Upewnij się, że niestandardowe pola są włączone w administracji Freshdesk |
Najlepsze praktyki
- Używaj webhooków do synchronizacji w czasie rzeczywistym - Skonfiguruj Automatyzacje Freshdesk do wyzwalania webhooków przy zdarzeniach zgłoszeń
- Synchronizuj wyniki CSAT - Śledź oceny satysfakcji klientów jako atrybuty Brevo dla segmentacji
- Mapuj status zgłoszeń na listy - Automatycznie przenoś kontakty między listami Brevo na podstawie statusu zgłoszenia
- Śledź metryki wsparcia - Synchronizuj liczbę zgłoszeń, średni czas odpowiedzi i wskaźnik rozwiązań na kontakt
- Używaj Search API oszczędnie - Search API ma ostrzejsze limity szybkości; buforuj wyniki gdy to możliwe
- Paginuj duże eksporty - Używaj paginacji z parametrami
pageiper_pagedla wstępnej synchronizacji
Bezpieczeństwo
- Uwierzytelnianie kluczem API - Proste HTTP Basic Auth z kluczem API
- Tylko HTTPS - Cała komunikacja API wymaga szyfrowania TLS
- Allowlisting IP - Dostępne w planach Estate i Forest
- Kontrola dostępu oparta na rolach - Uprawnienia klucza API powiązane z rolą agenta
- SOC 2 Type II - Freshdesk posiada certyfikat SOC 2 Type II
- Zgodność z RODO - Obsługuje żądania eksportu i usunięcia danych