Conector de Freshdesk
Conecta Freshdesk con Brevo a través de Tajo para unificar los datos de soporte y marketing. Sincroniza tickets de soporte al cliente, perfiles de contacto y puntuaciones de satisfacción para impulsar comunicaciones segmentadas basadas en las interacciones de soporte.
Resumen
| Propiedad | Valor |
|---|---|
| Plataforma | Freshdesk |
| Categoría | Soporte |
| Complejidad de configuración | Fácil |
| Integración oficial | No |
| Datos sincronizados | Tickets, Contactos, Agentes, Empresas |
| Skills disponibles | 6 |
Funcionalidades
- Sincronización de contactos - Sincronización bidireccional de los contactos de Freshdesk con las listas de contactos de Brevo
- Seguimiento de eventos de tickets - Reenvía los eventos de creación, actualización y resolución de tickets a Brevo
- Sincronización de CSAT - Sincroniza las puntuaciones de satisfacción del cliente como atributos de contacto en Brevo
- Sincronización de empresas - Asocia las empresas de Freshdesk con la segmentación de contactos en Brevo
- Datos de agentes - Registra las asignaciones de agentes para la automatización de flujos internos
- Campos personalizados - Asocia campos personalizados de tickets y contactos de Freshdesk con atributos de Brevo
Requisitos previos
Antes de empezar, asegúrate de tener:
- Una cuenta de Freshdesk con acceso de administrador
- Tu clave API de Freshdesk (disponible en Profile Settings)
- Tu dominio de Freshdesk (por ejemplo,
yourcompany.freshdesk.com) - Una cuenta de Brevo con acceso a la API
- Una cuenta de Tajo con credenciales de API
Autenticación
Autenticación con clave API
Freshdesk usa autenticación mediante clave API a través de HTTP Basic Auth. La clave API se usa como nombre de usuario con cualquier cadena (normalmente X) como contraseña.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsO usando codificación Base64 en la cabecera Authorization:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Encontrar tu clave API
- Inicia sesión en tu cuenta de Freshdesk
- Haz clic en tu foto de perfil en la esquina superior derecha
- Ve a Profile Settings
- Tu clave API se muestra en el lado derecho
Configuración
Configuración básica
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: 32Asignación de campos de contacto
Asocia los campos de contacto de Freshdesk con atributos de 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: PLANAsignación de eventos de tickets
Asocia los eventos de tickets de Freshdesk con disparadores de automatización en 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 de la API
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/v2/tickets | Listar todos los tickets |
POST | /api/v2/tickets | Crear un ticket |
GET | /api/v2/tickets/{id} | Obtener un ticket concreto |
PUT | /api/v2/tickets/{id} | Actualizar un ticket |
DELETE | /api/v2/tickets/{id} | Eliminar un ticket |
GET | /api/v2/contacts | Listar todos los contactos |
POST | /api/v2/contacts | Crear un contacto |
PUT | /api/v2/contacts/{id} | Actualizar un contacto |
GET | /api/v2/companies | Listar todas las empresas |
GET | /api/v2/agents | Listar todos los agentes |
GET | /api/v2/surveys/satisfaction_ratings | Listar valoraciones CSAT |
GET | /api/v2/search/tickets?query= | Buscar tickets |
Ejemplos de código
Inicializar el conector de 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});Sincronizar contactos con 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"// }Registrar eventos de tickets
// 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');});Buscar tickets por cliente
// 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();Límites de velocidad
| Plan | Límite | Detalles |
|---|---|---|
| Sprout | 50 peticiones/min | Plan gratuito |
| Blossom | 200 peticiones/min | Plan Starter |
| Garden | 400 peticiones/min | Plan Growth |
| Estate | 700 peticiones/min | Plan Pro |
| Forest | 1.000 peticiones/min | Plan Enterprise |
Límites adicionales:
| Recurso | Límite |
|---|---|
| Endpoints de listado | 30 páginas por consulta |
| Por página | 100 registros máx. |
| API de búsqueda | 2 peticiones/seg |
| Operaciones en lote | 10 registros/petición |
Cabeceras de límite de velocidad
Freshdesk devuelve información del límite de velocidad en las cabeceras de respuesta. Monitoriza X-RateLimit-Remaining e implementa backoff cuando te acerques a los límites.
Resolución de problemas
| Problema | Causa | Solución |
|---|---|---|
401 Unauthorized | Clave API no válida | Verifica la clave API en Profile Settings de Freshdesk |
403 Forbidden | Permisos insuficientes | Asegúrate de que la clave API pertenece a una cuenta de administrador |
| Contactos que no se sincronizan | Campo de email ausente | Los contactos de Freshdesk requieren una dirección de email |
| Tickets que no aparecen | Dominio incorrecto | Verifica que la URL del dominio de Freshdesk es correcta |
| La búsqueda devuelve vacío | Error de sintaxis en la consulta | Usa la sintaxis de búsqueda de Freshdesk con comillas dobles |
429 Too Many Requests | Límite de velocidad superado | Implementa limitación de velocidad según el nivel del plan |
| Campos personalizados ausentes | Campo no habilitado | Asegúrate de que los campos personalizados están habilitados en el admin de Freshdesk |
Buenas prácticas
- Usa webhooks para sincronización en tiempo real - Configura Freshdesk Automations para activar webhooks en los eventos de tickets
- Sincroniza puntuaciones CSAT - Registra las valoraciones de satisfacción del cliente como atributos de Brevo para segmentación
- Asocia el estado de tickets a listas - Mueve automáticamente contactos entre listas de Brevo según el estado del ticket
- Registra métricas de soporte - Sincroniza el número de tickets, el tiempo medio de respuesta y la tasa de resolución por contacto
- Usa la API de búsqueda con moderación - La API de búsqueda tiene límites de velocidad más estrictos; cachea los resultados cuando sea posible
- Pagina exportaciones grandes - Usa la paginación con los parámetros
pageyper_pagepara la sincronización inicial
Seguridad
- Autenticación con clave API - HTTP Basic Auth sencillo con clave API
- Solo HTTPS - Toda la comunicación con la API requiere cifrado TLS
- Lista blanca de IP - Disponible en los planes Estate y Forest
- Acceso basado en roles - Los permisos de la clave API están ligados al rol del agente
- SOC 2 Type II - Freshdesk está certificado SOC 2 Type II
- Cumplimiento del RGPD - Admite solicitudes de exportación y eliminación de datos