Freshdesk-koppling
Anslut Freshdesk till Brevo via Tajo för att förena support- och marknadsföringsdata. Synka kundsupportärenden, kontaktprofiler och nöjdhetspoäng för att driva riktad kommunikation baserad på supportinteraktioner.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Freshdesk |
| Kategori | Support |
| Installationskomplexitet | Enkel |
| Officiell integration | Nej |
| Data som synkas | Ärenden, kontakter, agenter, företag |
| Tillgängliga skills | 6 |
Funktioner
- Kontaktsynkronisering - Dubbelriktad synk av Freshdesk-kontakter till Brevo-kontaktlistor
- Spårning av ärendehändelser - Vidarebefordra händelser för ärendeskapande, uppdatering och lösning till Brevo
- CSAT-synkronisering - Synka kundnöjdhetspoäng som Brevo-kontaktattribut
- Företagssynkronisering - Mappa Freshdesk-företag till Brevos kontaktsegmentering
- Agentdata - Spåra agenttilldelningar för internt arbetsflödesautomation
- Anpassade fält - Mappa Freshdesks anpassade ärende- och kontaktfält till Brevo-attribut
Förutsättningar
Innan du börjar, se till att du har:
- Ett Freshdesk-konto med adminåtkomst
- Din Freshdesk API-nyckel (finns i profilinställningar)
- Din Freshdesk-domän (t.ex.
yourcompany.freshdesk.com) - Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med API-uppgifter
Autentisering
API-nyckelautentisering
Freshdesk använder API-nyckelautentisering via HTTP Basic Auth. API-nyckeln används som användarnamn med valfri sträng (vanligtvis X) som lösenord.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsEller med Base64-kodning i Authorization-headern:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Hitta din API-nyckel
- Logga in på ditt Freshdesk-konto
- Klicka på din profilbild i övre högra hörnet
- Gå till Profile Settings
- Din API-nyckel visas på höger sida
Konfiguration
Grundinställning
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: 32Kontaktfältmappning
Mappa Freshdesks kontaktfält till Brevo-attribut:
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: PLANMappning av ärendehändelser
Mappa Freshdesks ärendehändelser till Brevos automationsutlösare:
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
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /api/v2/tickets | Lista alla ärenden |
POST | /api/v2/tickets | Skapa ett ärende |
GET | /api/v2/tickets/{id} | Hämta ett specifikt ärende |
PUT | /api/v2/tickets/{id} | Uppdatera ett ärende |
DELETE | /api/v2/tickets/{id} | Radera ett ärende |
GET | /api/v2/contacts | Lista alla kontakter |
POST | /api/v2/contacts | Skapa en kontakt |
PUT | /api/v2/contacts/{id} | Uppdatera en kontakt |
GET | /api/v2/companies | Lista alla företag |
GET | /api/v2/agents | Lista alla agenter |
GET | /api/v2/surveys/satisfaction_ratings | Lista CSAT-betyg |
GET | /api/v2/search/tickets?query= | Sök ärenden |
Kodexempel
Initiera Freshdesk-koppling
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});Synka kontakter till 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"// }Spåra ärendehä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ök ärenden per kund
// 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();Hastighetsbegränsningar
| Plan | Gräns | Detaljer |
|---|---|---|
| Sprout | 50 förfrågningar/min | Gratisplan |
| Blossom | 200 förfrågningar/min | Starter-plan |
| Garden | 400 förfrågningar/min | Growth-plan |
| Estate | 700 förfrågningar/min | Pro-plan |
| Forest | 1 000 förfrågningar/min | Enterprise-plan |
Ytterligare gränser:
| Resurs | Gräns |
|---|---|
| List-endpoints | 30 sidor per fråga |
| Per sida | Max 100 poster |
| Search API | 2 förfrågningar/sek |
| Bulk-operationer | 10 poster/förfrågan |
Headrar för hastighetsbegränsning
Freshdesk returnerar information om hastighetsbegränsning i svar-headrar. Övervaka X-RateLimit-Remaining och implementera backoff när du närmar dig gränser.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
401 Unauthorized | Ogiltig API-nyckel | Verifiera API-nyckel i Freshdesk profilinställningar |
403 Forbidden | Otillräckliga behörigheter | Säkerställ att API-nyckel tillhör ett adminkonto |
| Kontakter synkas inte | Saknat e-postfält | Freshdesk-kontakter kräver en e-postadress |
| Ärenden visas inte | Fel domän | Verifiera att din Freshdesk-domän-URL är korrekt |
| Sökning returnerar tom | Syntaxfel i fråga | Använd Freshdesks sökfrågesyntax med dubbla citattecken |
429 Too Many Requests | Hastighetsbegränsning överskriden | Implementera hastighetsbegränsning baserat på plan-nivå |
| Anpassade fält saknas | Fält ej aktiverat | Säkerställ att anpassade fält är aktiverade i Freshdesk admin |
Bästa praxis
- Använd webhooks för realtidssynk - Konfigurera Freshdesk Automations att utlösa webhooks på ärendehändelser
- Synka CSAT-poäng - Spåra kundnöjdhetsbetyg som Brevo-attribut för segmentering
- Mappa ärendestatus till listor - Flytta automatiskt kontakter mellan Brevo-listor baserat på ärendestatus
- Spåra supportmått - Synka antal ärenden, genomsnittlig svarstid och lösningsfrekvens per kontakt
- Använd search API sparsamt - Search API har striktare hastighetsbegränsningar; cacha resultat när möjligt
- Sidindela stora exporter - Använd sidindelning med
pageochper_page-parametrar för initial synk
Säkerhet
- API-nyckelautentisering - Enkel HTTP Basic Auth med API-nyckel
- Endast HTTPS - All API-kommunikation kräver TLS-kryptering
- IP-allowlisting - Tillgängligt på Estate- och Forest-planer
- Rollbaserad åtkomst - API-nyckelbehörigheter knutna till agentroll
- SOC 2 Type II - Freshdesk är SOC 2 Type II-certifierad
- GDPR-efterlevnad - Stöder dataexport- och raderingsrequester