Freshdesk-connector

Verbind Freshdesk met Brevo via Tajo om support- en marketingdata te verenigen. Synchroniseer klantsupporttickets, contactprofielen en satisfactionscores om gerichte communicatie aan te sturen op basis van supportinteracties.

Overzicht

EigenschapWaarde
PlatformFreshdesk
CategorieSupport
SetupcomplexiteitEenvoudig
Officiële integratieNee
Gesynchroniseerde dataTickets, Contacten, Agents, Bedrijven
Beschikbare skills6

Functies

  • Contactsynchronisatie - Bidirectionele sync van Freshdesk-contacten naar Brevo-contactlijsten
  • Ticket-event-tracking - Stuur events voor ticket-aanmaak, -wijziging en -afhandeling door naar Brevo
  • CSAT-sync - Synchroniseer klanttevredenheidsscores als Brevo-contactattributen
  • Bedrijfssync - Koppel Freshdesk-bedrijven aan Brevo-contactsegmentatie
  • Agentdata - Track agenttoewijzingen voor interne workflowautomatisering
  • Custom velden - Koppel Freshdesk-customticket- en contactvelden aan Brevo-attributen

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Freshdesk-account met admin-toegang
  2. Je Freshdesk API Key (te vinden in Profile Settings)
  3. Je Freshdesk-domein (bijv. yourcompany.freshdesk.com)
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met API-inloggegevens

Authenticatie

API-sleutel-authenticatie

Freshdesk gebruikt API-sleutelauthenticatie via HTTP Basic Auth. De API-sleutel wordt gebruikt als gebruikersnaam met een willekeurige string (meestal X) als wachtwoord.

Terminal window
curl -u "YOUR_API_KEY:X" \
https://yourcompany.freshdesk.com/api/v2/tickets

Of via Base64-encoding in de Authorization-header:

Terminal window
curl https://yourcompany.freshdesk.com/api/v2/tickets \
-H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \
-H "Content-Type: application/json"

Je API-sleutel vinden

  1. Log in op je Freshdesk-account
  2. Klik rechtsboven op je profielfoto
  3. Ga naar Profile Settings
  4. Je API Key staat aan de rechterkant

Configuratie

Basisopzet

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: 32

Contactveldmapping

Koppel Freshdesk-contactvelden aan Brevo-attributen:

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: PLAN

Ticket-event-mapping

Koppel Freshdesk-ticket-events aan Brevo-automation-triggers:

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

MethodeEndpointBeschrijving
GET/api/v2/ticketsAlle tickets opvragen
POST/api/v2/ticketsTicket aanmaken
GET/api/v2/tickets/{id}Specifieke ticket ophalen
PUT/api/v2/tickets/{id}Ticket bijwerken
DELETE/api/v2/tickets/{id}Ticket verwijderen
GET/api/v2/contactsAlle contacten opvragen
POST/api/v2/contactsContact aanmaken
PUT/api/v2/contacts/{id}Contact bijwerken
GET/api/v2/companiesAlle bedrijven opvragen
GET/api/v2/agentsAlle agents opvragen
GET/api/v2/surveys/satisfaction_ratingsCSAT-ratings opvragen
GET/api/v2/search/tickets?query=Tickets zoeken

Codevoorbeelden

Freshdesk-connector initialiseren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Freshdesk account
await tajo.connectors.connect('freshdesk', {
domain: 'yourcompany.freshdesk.com',
apiKey: process.env.FRESHDESK_API_KEY
});

Contacten naar Brevo synchroniseren

// Fetch Freshdesk contacts and sync to Brevo
const 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"
// }

Ticket-events tracken

// Set up Freshdesk webhook to forward ticket events
// Configure in Freshdesk Admin > Automations > Webhook
// Webhook handler
app.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');
});

Tickets per klant zoeken

// Search for all tickets from a specific customer
const query = encodeURIComponent('"email:[email protected]"');
const 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();

Ratelimits

PlanLimietDetails
Sprout50 requests/minFree-plan
Blossom200 requests/minStarter-plan
Garden400 requests/minGrowth-plan
Estate700 requests/minPro-plan
Forest1.000 requests/minEnterprise-plan

Aanvullende limieten:

ResourceLimiet
List-endpoints30 pagina’s per query
Per pagina100 records max
Search API2 requests/sec
Bulk-operaties10 records/request

Ratelimit-headers

Freshdesk geeft ratelimit-informatie terug in response-headers. Monitor X-RateLimit-Remaining en implementeer backoff wanneer je limieten nadert.

Probleemoplossing

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige API-sleutelVerifieer API-sleutel in Freshdesk Profile Settings
403 ForbiddenOnvoldoende rechtenZorg dat de API-sleutel bij een adminaccount hoort
Contacten synchroniseren nietOntbrekend e-mailveldFreshdesk-contacten vereisen een e-mailadres
Tickets verschijnen nietVerkeerd domeinVerifieer je Freshdesk-domein-URL
Search geeft leeg resultaatQuery-syntaxfoutGebruik Freshdesk-zoeksyntax met dubbele aanhalingstekens
429 Too Many RequestsRatelimit overschredenImplementeer rate-limiting op basis van jouw plan
Custom velden ontbrekenVeld niet ingeschakeldZorg dat custom velden zijn ingeschakeld in de Freshdesk-admin

Best practices

  1. Gebruik webhooks voor realtime-sync - Configureer Freshdesk-Automations om webhooks te triggeren bij ticket-events
  2. Synchroniseer CSAT-scores - Volg klanttevredenheid als Brevo-attributen voor segmentatie
  3. Koppel ticketstatus aan lijsten - Verplaats contacten automatisch tussen Brevo-lijsten op basis van ticketstatus
  4. Volg supportmetrics - Synchroniseer aantal tickets, gemiddelde responstijd en oplospercentage per contact
  5. Gebruik de search API spaarzaam - De search API heeft strengere limieten; cache resultaten waar mogelijk
  6. Pagineer grote exports - Gebruik paginatie met page- en per_page-parameters voor de initiële sync

Beveiliging

  • API-sleutel-authenticatie - Eenvoudige HTTP Basic Auth met API-sleutel
  • Alleen HTTPS - Alle API-communicatie vereist TLS-encryptie
  • IP-whitelisting - Beschikbaar op Estate- en Forest-plannen
  • Rolgebaseerde toegang - API-sleutelrechten gekoppeld aan de agentrol
  • SOC 2 Type II - Freshdesk is SOC 2 Type II-gecertificeerd
  • AVG-compliance - Ondersteunt verzoeken tot data-export en -verwijdering

Gerelateerde resources

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.