Freshdesk конектор
Свържи Freshdesk с Brevo през Tajo, за да унифицираш support и маркетингови данни. Синхронизирай клиентски support тикети, контактни профили и CSAT скорове, за да захраниш таргетирани комуникации на базата на support взаимодействия.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Freshdesk |
| Категория | Поддръжка |
| Сложност на настройка | Лесна |
| Официална интеграция | Не |
| Синхронизирани данни | Тикети, контакти, агенти, компании |
| Налични скилове | 6 |
Функции
- Синхронизация на контакти – Двупосочна синхронизация на Freshdesk контакти към списъци с контакти в Brevo
- Проследяване на събития от тикети – Препращай събития за създаване, обновяване и решаване на тикети към Brevo
- Синхронизация на CSAT – Синхронизирай оценките за клиентска удовлетвореност като атрибути на контактите в Brevo
- Синхронизация на компании – Мапвай Freshdesk компании към сегментация на контактите в Brevo
- Данни за агенти – Проследявай присвояванията на агенти за вътрешна автоматизация на работни потоци
- Персонализирани полета – Мапвай персонализирани полета на тикети и контакти от Freshdesk към атрибути в Brevo
Предварителни условия
Преди да започнеш, увери се, че имаш:
- Freshdesk акаунт с администраторски достъп
- Твоя Freshdesk API ключ (намира се в Profile Settings)
- Твоя Freshdesk домейн (напр.
yourcompany.freshdesk.com) - Акаунт в Brevo с API достъп
- Акаунт в Tajo с API credentials
Автентикация
Автентикация с API ключ
Freshdesk използва автентикация с API ключ чрез HTTP Basic Auth. API ключът се използва като username с произволен низ (обикновено X) като парола.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsИли с използване на Base64 encoding в хедъра Authorization:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"Намиране на твоя API ключ
- Влез в своя Freshdesk акаунт
- Щракни върху профилната си снимка в горния десен ъгъл
- Отиди в Profile Settings
- Твоят API ключ се показва от дясната страна
Конфигурация
Основна настройка
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Мапване на полета на контакти
Мапвай Freshdesk полета на контакти към атрибути в 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: PLANМапване на събития от тикети
Мапвай Freshdesk събития от тикети към Brevo automation тригери:
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 крайни точки
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /api/v2/tickets | Списък с всички тикети |
POST | /api/v2/tickets | Създаване на тикет |
GET | /api/v2/tickets/{id} | Получаване на конкретен тикет |
PUT | /api/v2/tickets/{id} | Обновяване на тикет |
DELETE | /api/v2/tickets/{id} | Изтриване на тикет |
GET | /api/v2/contacts | Списък с всички контакти |
POST | /api/v2/contacts | Създаване на контакт |
PUT | /api/v2/contacts/{id} | Обновяване на контакт |
GET | /api/v2/companies | Списък с всички компании |
GET | /api/v2/agents | Списък с всички агенти |
GET | /api/v2/surveys/satisfaction_ratings | Списък с CSAT оценки |
GET | /api/v2/search/tickets?query= | Търсене на тикети |
Примери с код
Инициализация на 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});Синхронизация на контакти към 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"// }Проследяване на събития от тикети
// 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');});Търсене на тикети по клиент
// 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();Ограничения на заявките
| План | Лимит | Детайли |
|---|---|---|
| Sprout | 50 заявки/мин | Free план |
| Blossom | 200 заявки/мин | Starter план |
| Garden | 400 заявки/мин | Growth план |
| Estate | 700 заявки/мин | Pro план |
| Forest | 1 000 заявки/мин | Enterprise план |
Допълнителни лимити:
| Ресурс | Лимит |
|---|---|
| List крайни точки | 30 страници на заявка |
| На страница | 100 записа макс |
| Search API | 2 заявки/сек |
| Пакетни операции | 10 записа/заявка |
Хедъри за rate limit
Freshdesk връща информация за rate limit в хедърите на отговора. Мониторирай X-RateLimit-Remaining и внедри backoff при приближаване на лимитите.
Отстраняване на проблеми
| Проблем | Причина | Решение |
|---|---|---|
401 Unauthorized | Невалиден API ключ | Провери API ключа в Freshdesk Profile Settings |
403 Forbidden | Недостатъчни разрешения | Увери се, че API ключът принадлежи на admin акаунт |
| Контактите не се синхронизират | Липсва email поле | Freshdesk контактите изискват имейл адрес |
| Тикетите не се появяват | Грешен домейн | Провери дали Freshdesk URL-ът на домейна е правилен |
| Search връща празно | Синтактична грешка в заявката | Използвай Freshdesk search query синтаксиса с двойни кавички |
429 Too Many Requests | Превишен rate limit | Внедри rate limiting на базата на ниво на план |
| Липсващи персонализирани полета | Полето не е активирано | Увери се, че персонализираните полета са активирани в Freshdesk admin |
Добри практики
- Използвай уебхуци за синхронизация в реално време – Конфигурирай Freshdesk Automations да задействат уебхуци при събития от тикети
- Синхронизирай CSAT скорове – Проследявай клиентските оценки за удовлетвореност като атрибути в Brevo за сегментация
- Мапвай ticket status към списъци – Автоматично премествай контактите между Brevo списъци на базата на ticket статус
- Проследявай support метрики – Синхронизирай брой тикети, средно време за отговор и rate на решаване на контакт
- Използвай search API пестеливо – Search API има по-строги rate limits; кеширай резултатите, когато е възможно
- Пагинирай големи експорти – Използвай пагинация с параметри
pageиper_pageза първоначална синхронизация
Сигурност
- Автентикация с API ключ – Прост HTTP Basic Auth с API ключ
- Само HTTPS – Цялата API комуникация изисква TLS криптиране
- IP whitelisting – Достъпно на Estate и Forest планове
- Достъп на базата на роли – Разрешенията на API ключа са обвързани с ролята на агента
- SOC 2 Type II – Freshdesk е SOC 2 Type II сертифициран
- GDPR съвместимост – Поддържа заявки за експорт и изтриване на данни