Freshdesk konektor
Poveži Freshdesk sa Brevo putem Tajo da ujednačiš podatke podrške i marketinga. Sinhronizuj tikete korisničke podrške, profile kontakata i ocene zadovoljstva da pokretaš ciljane komunikacije zasnovane na interakcijama podrške.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Freshdesk |
| Kategorija | Podrška |
| Složenost podešavanja | Lako |
| Zvanična integracija | Ne |
| Sinhronizovani podaci | Tiketi, Kontakti, Agenti, Kompanije |
| Dostupne veštine | 6 |
Karakteristike
- Sinhronizacija kontakata - Dvosmerna sinhronizacija Freshdesk kontakata na Brevo liste kontakata
- Praćenje događaja tiketa - Prosleđivanje događaja kreiranja, ažuriranja i rešavanja tiketa u Brevo
- Sinhronizacija CSAT - Sinhronizacija ocena zadovoljstva kupaca kao Brevo atributa kontakta
- Sinhronizacija kompanija - Mapiranje Freshdesk kompanija na Brevo segmentaciju kontakata
- Podaci agenta - Praćenje dodela agenata za automatizaciju internih tokova rada
- Prilagođena polja - Mapiranje prilagođenih polja tiketa i kontakta u Freshdesk na Brevo atribute
Preduslovi
Pre nego što započneš, proveri da imaš:
- Freshdesk nalog sa admin pristupom
- Freshdesk API ključ (nalazi se u Profile Settings)
- Freshdesk domenu (npr.
yourcompany.freshdesk.com) - Brevo nalog sa API pristupom
- Tajo nalog sa API akreditivima
Autentifikacija
Autentifikacija API ključem
Freshdesk koristi autentifikaciju API ključem putem HTTP Basic Auth. API ključ se koristi kao korisničko ime sa bilo kojim nizom (obično X) kao lozinkom.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsIli korišćenjem Base64 kodiranja u Authorization headeru:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Pronalaženje API ključa
- Prijavi se na Freshdesk nalog
- Klikni na sliku profila u gornjem desnom uglu
- Idi na Profile Settings
- Tvoj API ključ je prikazan sa desne strane
Konfiguracija
Osnovno podešavanje
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: 32Mapiranje polja kontakta
Mapiranje polja Freshdesk kontakta na Brevo atribute:
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: PLANMapiranje događaja tiketa
Mapiranje događaja tiketa u Freshdesk na okidače Brevo automatizacije:
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 endpointi
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/tickets | Listanje svih tiketa |
POST | /api/v2/tickets | Kreiranje tiketa |
GET | /api/v2/tickets/{id} | Dohvatanje specifičnog tiketa |
PUT | /api/v2/tickets/{id} | Ažuriranje tiketa |
DELETE | /api/v2/tickets/{id} | Brisanje tiketa |
GET | /api/v2/contacts | Listanje svih kontakata |
POST | /api/v2/contacts | Kreiranje kontakta |
PUT | /api/v2/contacts/{id} | Ažuriranje kontakta |
GET | /api/v2/companies | Listanje svih kompanija |
GET | /api/v2/agents | Listanje svih agenata |
GET | /api/v2/surveys/satisfaction_ratings | Listanje CSAT ocena |
GET | /api/v2/search/tickets?query= | Pretraga tiketa |
Primeri koda
Inicijalizacija Freshdesk konektora
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});Sinhronizacija kontakata sa 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"// }Praćenje događaja tiketa
// 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');});Pretraga tiketa po kupcu
// 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();Ograničenja brzine
| Plan | Limit | Detalji |
|---|---|---|
| Sprout | 50 zahteva/min | Besplatni plan |
| Blossom | 200 zahteva/min | Starter plan |
| Garden | 400 zahteva/min | Growth plan |
| Estate | 700 zahteva/min | Pro plan |
| Forest | 1.000 zahteva/min | Enterprise plan |
Dodatni limiti:
| Resurs | Limit |
|---|---|
| List endpointi | 30 stranica po upitu |
| Po stranici | Maks 100 zapisa |
| Search API | 2 zahteva/sek |
| Bulk operacije | 10 zapisa/zahtev |
Headeri ograničenja brzine
Freshdesk vraća informacije o ograničenju brzine u headers odgovora. Prati X-RateLimit-Remaining i implementiraj usporavanje kada se priblizuješ limitima.
Rešavanje problema
| Problem | Uzrok | Rešenje |
|---|---|---|
401 Unauthorized | Nevažeći API ključ | Verifikuj API ključ u Freshdesk Profile Settings |
403 Forbidden | Nedovoljne dozvole | Osiguraj da API ključ pripada admin nalogu |
| Kontakti se ne sinhronizuju | Nedostaje polje emaila | Freshdesk kontakti zahtevaju email adresu |
| Tiketi se ne pojavljuju | Pogrešna domena | Verifikuj da je Freshdesk URL domene ispravan |
| Pretraga vraća prazno | Greška u sintaksi upita | Koristi Freshdesk sintaksu upita za pretragu sa dvostrukim navodnicima |
429 Too Many Requests | Prekoračen limit brzine | Implementiraj ograničenje brzine na osnovu nivoa plana |
| Nedostaju prilagođena polja | Polje nije omogućeno | Osiguraj da su prilagođena polja omogućena u Freshdesk adminu |
Najbolje prakse
- Koristi webhook-ove za sinhronizaciju u realnom vremenu - Konfiguriši Freshdesk Automations da aktiviraju webhook-ove na događajima tiketa
- Sinhronizuj CSAT ocene - Prati ocene zadovoljstva kupaca kao Brevo atribute za segmentaciju
- Mapiraj status tiketa na liste - Automatski premesti kontakte između Brevo lista na osnovu statusa tiketa
- Prati metrike podrške - Sinhronizuj broj tiketa, prosečno vreme odgovora i stopu rešavanja po kontaktu
- Koristi Search API štedljivo - Search API ima strožija ograničenja brzine; kešuj rezultate kada je moguće
- Paginuj velike izvoze - Koristi paginaciju sa parametrima
pageiper_pageza početnu sinhronizaciju
Bezbednost
- Autentifikacija API ključem - Jednostavan HTTP Basic Auth sa API ključem
- Samo HTTPS - Sva API komunikacija zahteva TLS enkripciju
- Bela lista IP adresa - Dostupna na Estate i Forest planovima
- Kontrola pristupa na osnovu uloge - Dozvole API ključa vezane za ulogu agenta
- SOC 2 Type II - Freshdesk je SOC 2 Type II sertifikovan
- GDPR usklađenost - Podržava zahteve za izvoz i brisanje podataka