Freshdesk Connector
Poveži Freshdesk z Brevo prek Tajo za poenotenje podatkov podpore in marketinga. Sinhroniziraj zahtevke za podporo strank, profile stikov in ocene zadovoljstva za napajanje ciljnih komunikacij na osnovi interakcij s podporo.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Freshdesk |
| Kategorija | Support |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Zahtevki, stiki, agenti, podjetja |
| Razpoložljivi Skills | 6 |
Funkcionalnosti
- Sinhronizacija stikov – dvosmerna sinhronizacija stikov Freshdesk s seznami stikov Brevo
- Sledenje dogodkom zahtevkov – posreduj dogodke ustvarjanja, posodabljanja in reševanja zahtevkov v Brevo
- Sinhronizacija CSAT – sinhroniziraj ocene zadovoljstva strank kot atribute stikov Brevo
- Sinhronizacija podjetij – preslikaj podjetja Freshdesk v segmentacijo stikov Brevo
- Podatki agentov – sledi dodeljevanju agentov za avtomatizacijo notranjih delovnih tokov
- Polja po meri – preslikaj polja po meri zahtevkov in stikov Freshdesk v atribute Brevo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Račun Freshdesk z dostopom administratorja
- API ključ Freshdesk (najdeš ga v nastavitvah profila)
- Domeno Freshdesk (npr.
yourcompany.freshdesk.com) - Brevo račun z dostopom do API
- Tajo račun s poverilnicami API
Avtentikacija
Avtentikacija z API ključem
Freshdesk za avtentikacijo uporablja API ključ prek HTTP Basic Auth. API ključ se uporablja kot uporabniško ime z naključnim nizom (ponavadi X) kot geslom.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsAli z Base64 kodiranjem v glavi Authorization:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Iskanje API ključa
- Prijavi se v račun Freshdesk
- Klikni na svojo profilno sliko v zgornjem desnem kotu
- Pojdi na Profile Settings
- Tvoj API ključ je prikazan na desni strani
Konfiguracija
Osnovna nastavitev
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: 32Preslikava polj stikov
Preslikaj polja stikov Freshdesk v atribute 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: PLANPreslikava dogodkov zahtevkov
Preslikaj dogodke zahtevkov Freshdesk v sprožilce avtomatizacij 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"Končne točke API
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /api/v2/tickets | Seznam vseh zahtevkov |
POST | /api/v2/tickets | Ustvarjanje zahtevka |
GET | /api/v2/tickets/{id} | Pridobi določen zahtevek |
PUT | /api/v2/tickets/{id} | Posodobi zahtevek |
DELETE | /api/v2/tickets/{id} | Izbriši zahtevek |
GET | /api/v2/contacts | Seznam vseh stikov |
POST | /api/v2/contacts | Ustvarjanje stika |
PUT | /api/v2/contacts/{id} | Posodobi stik |
GET | /api/v2/companies | Seznam vseh podjetij |
GET | /api/v2/agents | Seznam vseh agentov |
GET | /api/v2/surveys/satisfaction_ratings | Seznam ocen CSAT |
GET | /api/v2/search/tickets?query= | Iskanje zahtevkov |
Primeri kode
Inicializacija konektorja 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});Sinhronizacija stikov v 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"// }Sledenje dogodkom zahtevkov
// 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');});Iskanje zahtevkov po stranki
// 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();Omejitve hitrosti
| Plan | Omejitev | Podrobnosti |
|---|---|---|
| Sprout | 50 zahtevkov/min | Brezplačni plan |
| Blossom | 200 zahtevkov/min | Začetni plan |
| Garden | 400 zahtevkov/min | Plan rasti |
| Estate | 700 zahtevkov/min | Pro plan |
| Forest | 1.000 zahtevkov/min | Enterprise plan |
Dodatne omejitve:
| Vir | Omejitev |
|---|---|
| Končne točke seznama | 30 strani na poizvedbo |
| Na stran | Največ 100 zapisov |
| Search API | 2 zahtevka/sekundo |
| Množične operacije | 10 zapisov/zahtevek |
Glave omejitve hitrosti
Freshdesk vrača informacije o omejitvi hitrosti v glavah odgovora. Sprljuj X-RateLimit-Remaining in implementiraj odlog, ko se približuješ omejitvi.
Odpravljanje težav
| Težava | Vzrok | Rešitev |
|---|---|---|
401 Unauthorized | Neveljaven API ključ | Preveri API ključ v nastavitvah profila Freshdesk |
403 Forbidden | Nezadostna dovoljenja | Zagotovi, da API ključ pripada administratorskemu računu |
| Stiki se ne sinhronizirajo | Manjkajoče polje e-mail | Stiki Freshdesk zahtevajo e-mailni naslov |
| Zahtevki se ne prikazujejo | Napačna domena | Preveri pravilnost URL-ja domene Freshdesk |
| Iskanje vrača prazno | Napaka v sintaksi poizvedbe | Uporabi sintakso iskanja Freshdesk z dvojnimi narekovaji |
429 Too Many Requests | Presežena omejitev hitrosti | Implementiraj omejevanje hitrosti glede na raven plana |
| Manjkajoča polja po meri | Polje ni omogočeno | Zagotovi, da so polja po meri omogočena v administraciji Freshdesk |
Najboljše prakse
- Za sinhronizacijo v realnem času uporabi webhooks – nastavi Automations Freshdesk za sprožitev webhooks ob dogodkih zahtevkov
- Sinhroniziraj ocene CSAT – sledi ocenam zadovoljstva strank kot atributom Brevo za segmentacijo
- Preslikaj status zahtevka v sezname – samodejno premikaj stike med seznami Brevo glede na status zahtevka
- Sledi metrikam podpore – sinhroniziraj število zahtevkov, povprečen čas odziva in stopnjo reševanja na stik
- Search API uporabljaj varčno – Search API ima strožje omejitve hitrosti; predpomni rezultate, kadar je mogoče
- Paginiraj velike izvoze – za začetno sinhronizacijo uporabi paginacijo s parametroma
pageinper_page
Varnost
- Avtentikacija z API ključem – enostavna HTTP Basic Auth z API ključem
- Samo HTTPS – vsa komunikacija API zahteva šifriranje TLS
- Dovoljenje IP – na voljo na planih Estate in Forest
- Dostop na osnovi vlog – dovoljenja API ključa vezana na vlogo agenta
- SOC 2 Type II – Freshdesk je certificiran po SOC 2 Type II
- Skladnost z GDPR – podpira zahteve za izvoz in brisanje podatkov