Freshdesk Connector
Forbind Freshdesk til Brevo via Tajo for at forene support- og marketingdata. Synkronisér kunders supportsager, kontaktprofiler og tilfredshedsscores for at drive målrettet kommunikation baseret på supportinteraktioner.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Freshdesk |
| Kategori | Support |
| Opsætningskompleksitet | Let |
| Officiel integration | Nej |
| Synkroniserede data | Sager, kontakter, agenter, virksomheder |
| Tilgængelige skills | 6 |
Funktioner
- Kontaktsynkronisering - Tovejssynkronisering af Freshdesk-kontakter til Brevo-kontaktlister
- Sporing af sagshændelser - Videresend sagsoprettelse, -opdatering og -løsningshændelser til Brevo
- CSAT-synkronisering - Synkronisér kundetilfredshedsscores som Brevo-kontaktattributter
- Virksomhedssynkronisering - Knyt Freshdesk-virksomheder til Brevo-kontaktsegmentering
- Agentdata - Spor agenttildelinger til intern workflow-automatisering
- Brugerdefinerede felter - Knyt Freshdesk-brugerdefinerede sags- og kontaktfelter til Brevo-attributter
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Freshdesk-konto med administratoradgang
- Din Freshdesk API-nøgle (findes i Profile Settings)
- Dit Freshdesk-domæne (f.eks.
yourcompany.freshdesk.com) - En Brevo-konto med API-adgang
- En Tajo-konto med API-legitimationsoplysninger
Autentifikation
API-nøgle-autentifikation
Freshdesk bruger API-nøgle-autentifikation via HTTP Basic Auth. API-nøglen bruges som brugernavn med en vilkårlig streng (typisk X) som adgangskode.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsEller ved brug af Base64-kodning i Authorization-headeren:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Find din API-nøgle
- Log ind på din Freshdesk-konto
- Klik dit profilbillede i øverste højre hjørne
- Gå til Profile Settings
- Din API-nøgle vises i højre side
Konfiguration
Grundlæggende opsætning
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: 32Kontaktfeltmapping
Knyt Freshdesk-kontaktfelter til Brevo-attributter:
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: PLANMapping af sagshændelser
Knyt Freshdesk-sagshændelser til Brevo-automatiseringstriggere:
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-endpoints
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /api/v2/tickets | Vis alle sager |
POST | /api/v2/tickets | Opret en sag |
GET | /api/v2/tickets/{id} | Hent en specifik sag |
PUT | /api/v2/tickets/{id} | Opdatér en sag |
DELETE | /api/v2/tickets/{id} | Slet en sag |
GET | /api/v2/contacts | Vis alle kontakter |
POST | /api/v2/contacts | Opret en kontakt |
PUT | /api/v2/contacts/{id} | Opdatér en kontakt |
GET | /api/v2/companies | Vis alle virksomheder |
GET | /api/v2/agents | Vis alle agenter |
GET | /api/v2/surveys/satisfaction_ratings | Vis CSAT-ratings |
GET | /api/v2/search/tickets?query= | Søg i sager |
Kodeeksempler
Initialisér Freshdesk-konnektor
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});Synkronisér kontakter til 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"// }Spor sagshændelser
// 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');});Søg sager efter kunde
// 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();Ratebegrænsninger
| Plan | Grænse | Detaljer |
|---|---|---|
| Sprout | 50 forespørgsler/min | Gratis plan |
| Blossom | 200 forespørgsler/min | Starter-plan |
| Garden | 400 forespørgsler/min | Growth-plan |
| Estate | 700 forespørgsler/min | Pro-plan |
| Forest | 1.000 forespørgsler/min | Enterprise-plan |
Yderligere grænser:
| Ressource | Grænse |
|---|---|
| Liste-endpoints | 30 sider per forespørgsel |
| Per side | 100 poster maks. |
| Search API | 2 forespørgsler/sek |
| Bulk-operationer | 10 poster/forespørgsel |
Rate limit-headere
Freshdesk returnerer information om ratebegrænsninger i responseheadere. Overvåg X-RateLimit-Remaining, og implementér backoff, når du nærmer dig grænserne.
Fejlfinding
| Problem | Årsag | Løsning |
|---|---|---|
401 Unauthorized | Ugyldig API-nøgle | Verificér API-nøgle i Freshdesk Profile Settings |
403 Forbidden | Utilstrækkelige rettigheder | Sørg for, at API-nøglen tilhører en administratorkonto |
| Kontakter synkroniseres ikke | Manglende e-mailfelt | Freshdesk-kontakter kræver en e-mailadresse |
| Sager vises ikke | Forkert domæne | Verificér, at din Freshdesk-domæne-URL er korrekt |
| Søgning returnerer tomt | Query-syntaksfejl | Brug Freshdesk-søgequery-syntaks med dobbelte anførselstegn |
429 Too Many Requests | Ratebegrænsning overskredet | Implementér ratebegrænsning baseret på planniveau |
| Brugerdefinerede felter mangler | Felt ikke aktiveret | Sørg for, at brugerdefinerede felter er aktiveret i Freshdesk-admin |
Best practices
- Brug webhooks til realtidssynkronisering - Konfigurér Freshdesk Automations til at udløse webhooks ved sagshændelser
- Synkronisér CSAT-scores - Spor kundetilfredshedsratings som Brevo-attributter til segmentering
- Knyt sagsstatus til lister - Flyt automatisk kontakter mellem Brevo-lister baseret på sagsstatus
- Spor supportmetrikker - Synkronisér sagsantal, gennemsnitlig svartid og løsningsrate per kontakt
- Brug Search API sparsomt - Search API’et har strengere ratebegrænsninger; cache resultater når muligt
- Paginér store eksporter - Brug paginering med
page- ogper_page-parametre til indledende synkronisering
Sikkerhed
- API-nøgle-autentifikation - Simpel HTTP Basic Auth med API-nøgle
- Kun HTTPS - Al API-kommunikation kræver TLS-kryptering
- IP-whitelisting - Tilgængelig på Estate- og Forest-planer
- Rollebaseret adgang - API-nøglerettigheder knyttet til agentrolle
- SOC 2 Type II - Freshdesk er SOC 2 Type II-certificeret
- GDPR-overholdelse - Understøtter anmodninger om dataeksport og -sletning