Connecteur Freshdesk
Connectez Freshdesk à Brevo via Tajo pour unifier les données de support et de marketing. Synchronisez les tickets de support client, les profils de contacts et les scores de satisfaction pour alimenter des communications ciblées basées sur les interactions de support.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Freshdesk |
| Catégorie | Support |
| Complexité de configuration | Facile |
| Intégration officielle | Non |
| Données synchronisées | Tickets, Contacts, Agents, Entreprises |
| Compétences disponibles | 6 |
Fonctionnalités
- Synchronisation des contacts - Synchronisation bidirectionnelle des contacts Freshdesk vers les listes de contacts Brevo
- Suivi des événements de tickets - Transfert des événements de création, mise à jour et résolution de tickets vers Brevo
- Synchronisation CSAT - Synchronisation des scores de satisfaction client en tant qu’attributs de contact Brevo
- Synchronisation des entreprises - Mappage des entreprises Freshdesk vers la segmentation de contacts Brevo
- Données d’agents - Suivi des attributions d’agents pour l’automatisation des workflows internes
- Champs personnalisés - Mappage des champs personnalisés de tickets et contacts Freshdesk vers les attributs Brevo
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Un compte Freshdesk avec accès admin
- Votre clé API Freshdesk (trouvée dans les Profile Settings)
- Votre domaine Freshdesk (ex.
yourcompany.freshdesk.com) - Un compte Brevo avec accès API
- Un compte Tajo avec identifiants API
Authentification
Authentification par clé API
Freshdesk utilise l’authentification par clé API via HTTP Basic Auth. La clé API est utilisée comme nom d’utilisateur avec n’importe quelle chaîne (typiquement X) comme mot de passe.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsOu en utilisant l’encodage Base64 dans l’en-tête Authorization :
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Trouver votre clé API
- Connectez-vous à votre compte Freshdesk
- Cliquez sur votre photo de profil en haut à droite
- Allez dans Profile Settings
- Votre clé API est affichée sur le côté droit
Configuration
Configuration de base
connectors: freshdesk: enabled: true domain: "yourcompany.freshdesk.com" api_key: "your-freshdesk-api-key"
# Options de synchronisation des données sync: contacts: true tickets: true companies: true satisfaction_ratings: true
# Assignation de listes Brevo lists: all_support_contacts: 30 open_tickets: 31 resolved_tickets: 32Mappage des champs de contact
Mappez les champs de contact Freshdesk aux attributs Brevo :
contact_mapping: email: email name: FULLNAME phone: SMS company_id: COMPANY job_title: JOB_TITLE twitter_id: TWITTER language: LANGUAGE time_zone: TIMEZONE
# Métriques de support total_tickets: TICKET_COUNT open_tickets: OPEN_TICKETS avg_csat: CSAT_SCORE last_ticket_date: LAST_SUPPORT_DATE
# Champs personnalisés custom_fields.account_type: ACCOUNT_TYPE custom_fields.subscription_tier: PLANMappage des événements de tickets
Mappez les événements de tickets Freshdesk aux déclencheurs d’automatisation 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"Endpoints API
| Méthode | Endpoint | Description |
|---|---|---|
GET | /api/v2/tickets | Lister tous les tickets |
POST | /api/v2/tickets | Créer un ticket |
GET | /api/v2/tickets/{id} | Obtenir un ticket spécifique |
PUT | /api/v2/tickets/{id} | Mettre à jour un ticket |
DELETE | /api/v2/tickets/{id} | Supprimer un ticket |
GET | /api/v2/contacts | Lister tous les contacts |
POST | /api/v2/contacts | Créer un contact |
PUT | /api/v2/contacts/{id} | Mettre à jour un contact |
GET | /api/v2/companies | Lister toutes les entreprises |
GET | /api/v2/agents | Lister tous les agents |
GET | /api/v2/surveys/satisfaction_ratings | Lister les évaluations CSAT |
GET | /api/v2/search/tickets?query= | Rechercher des tickets |
Exemples de code
Initialiser le connecteur Freshdesk
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connecter le compte Freshdeskawait tajo.connectors.connect('freshdesk', { domain: 'yourcompany.freshdesk.com', apiKey: process.env.FRESHDESK_API_KEY});Synchroniser les contacts vers Brevo
// Récupérer les contacts Freshdesk et les synchroniser vers 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();// Chaque 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"// }Suivre les événements de tickets
// Configurer un webhook Freshdesk pour transférer les événements de tickets// Configurez dans Freshdesk Admin > Automations > Webhook
// Gestionnaire de webhookapp.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');});Rechercher des tickets par client
// Rechercher tous les tickets d'un client spécifiqueconst 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();Limites de taux
| Plan | Limite | Détails |
|---|---|---|
| Sprout | 50 requêtes/min | Plan gratuit |
| Blossom | 200 requêtes/min | Plan Starter |
| Garden | 400 requêtes/min | Plan Growth |
| Estate | 700 requêtes/min | Plan Pro |
| Forest | 1 000 requêtes/min | Plan Enterprise |
Limites supplémentaires :
| Ressource | Limite |
|---|---|
| Endpoints de liste | 30 pages par requête |
| Par page | 100 enregistrements max |
| API Search | 2 requêtes/sec |
| Opérations en masse | 10 enregistrements/requête |
En-têtes de limite de taux
Freshdesk retourne les informations de limite de taux dans les en-têtes de réponse. Surveillez X-RateLimit-Remaining et implémentez un backoff à l’approche des limites.
Dépannage
| Problème | Cause | Solution |
|---|---|---|
401 Unauthorized | Clé API invalide | Vérifiez la clé API dans les Profile Settings Freshdesk |
403 Forbidden | Permissions insuffisantes | Assurez-vous que la clé API appartient à un compte admin |
| Contacts non synchronisés | Champ email manquant | Les contacts Freshdesk nécessitent une adresse email |
| Tickets non visibles | Mauvais domaine | Vérifiez que l’URL de votre domaine Freshdesk est correcte |
| Recherche retourne vide | Erreur de syntaxe de requête | Utilisez la syntaxe de requête Freshdesk avec des guillemets doubles |
429 Too Many Requests | Limite de taux dépassée | Implémentez une limitation de taux selon le niveau du plan |
| Champs personnalisés manquants | Champ non activé | Assurez-vous que les champs personnalisés sont activés dans l’admin Freshdesk |
Bonnes pratiques
- Utilisez les webhooks pour la synchronisation en temps réel - Configurez les Automations Freshdesk pour déclencher des webhooks sur les événements de tickets
- Synchronisez les scores CSAT - Suivez les évaluations de satisfaction client en tant qu’attributs Brevo pour la segmentation
- Mappez le statut des tickets aux listes - Déplacez automatiquement les contacts entre les listes Brevo selon le statut du ticket
- Suivez les métriques de support - Synchronisez le nombre de tickets, le temps de réponse moyen et le taux de résolution par contact
- Utilisez l’API Search avec parcimonie - L’API Search a des limites de taux plus strictes ; mettez en cache les résultats quand possible
- Paginez les exports volumineux - Utilisez la pagination avec les paramètres
pageetper_pagepour la synchronisation initiale
Sécurité
- Authentification par clé API - HTTP Basic Auth simple avec clé API
- HTTPS uniquement - Toutes les communications API nécessitent un chiffrement TLS
- Liste blanche d’IP - Disponible sur les plans Estate et Forest
- Accès basé sur les rôles - Permissions de clé API liées au rôle de l’agent
- SOC 2 Type II - Freshdesk est certifié SOC 2 Type II
- Conformité RGPD - Prend en charge les demandes d’export et de suppression de données