Коннектор Freshdesk

Подключите Freshdesk к Brevo через Tajo для объединения данных службы поддержки и маркетинга. Синхронизируйте тикеты поддержки, профили контактов и оценки удовлетворённости для таргетированных коммуникаций на основе обращений в поддержку.

Обзор

СвойствоЗначение
ПлатформаFreshdesk
КатегорияSupport
Сложность настройкиПростая
Официальная интеграцияНет
Синхронизируемые данныеТикеты, контакты, агенты, компании
Доступных скиллов6

Возможности

  • Синхронизация контактов, двунаправленная синхронизация контактов Freshdesk со списками контактов Brevo
  • Отслеживание событий тикетов, пересылка событий создания, обновления и закрытия тикетов в Brevo
  • Синхронизация CSAT, синхронизация оценок удовлетворённости клиентов как атрибутов контактов Brevo
  • Синхронизация компаний, маппинг компаний Freshdesk для сегментации контактов Brevo
  • Данные агентов, трекинг назначений агентов для внутренней автоматизации рабочих процессов
  • Пользовательские поля, маппинг пользовательских полей тикетов и контактов Freshdesk в атрибуты Brevo

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Аккаунт Freshdesk с правами администратора
  2. API-ключ Freshdesk (в Profile Settings)
  3. Домен Freshdesk (например, yourcompany.freshdesk.com)
  4. Аккаунт Brevo с доступом к API
  5. Аккаунт Tajo с API-учётными данными

Аутентификация

Аутентификация по API Key

Freshdesk использует аутентификацию по API-ключу через HTTP Basic Auth. API-ключ используется как имя пользователя с любой строкой (обычно X) в качестве пароля.

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

Или с использованием кодировки Base64 в заголовке Authorization:

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

Как найти API Key

  1. Войдите в аккаунт Freshdesk
  2. Нажмите на аватар профиля в правом верхнем углу
  3. Перейдите в Profile Settings
  4. Ваш API Key отображается в правой части страницы

Конфигурация

Базовая настройка

connectors:
freshdesk:
enabled: true
domain: "yourcompany.freshdesk.com"
api_key: "your-freshdesk-api-key"
# Параметры синхронизации данных
sync:
contacts: true
tickets: true
companies: true
satisfaction_ratings: true
# Назначение листов Brevo
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
# Метрики поддержки
total_tickets: TICKET_COUNT
open_tickets: OPEN_TICKETS
avg_csat: CSAT_SCORE
last_ticket_date: LAST_SUPPORT_DATE
# Пользовательские поля
custom_fields.account_type: ACCOUNT_TYPE
custom_fields.subscription_tier: PLAN

Маппинг событий тикетов

Маппинг событий тикетов Freshdesk на триггеры автоматизации 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"

Эндпоинты 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
});
// Подключение аккаунта Freshdesk
await tajo.connectors.connect('freshdesk', {
domain: 'yourcompany.freshdesk.com',
apiKey: process.env.FRESHDESK_API_KEY
});

Синхронизация контактов в Brevo

// Получение контактов Freshdesk и синхронизация с 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();
// Каждый контакт:
// {
// "id": 12345,
// "name": "Jane Kim",
// "email": "[email protected]",
// "phone": "+15551234567",
// "company_id": 678,
// "job_title": "Product Manager",
// "created_at": "2024-01-15T10:30:00Z"
// }

Трекинг событий тикетов

// Настройка вебхука Freshdesk для пересылки событий тикетов
// Настройте в Freshdesk Admin > Automations > Webhook
// Обработчик вебхука
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');
});

Поиск тикетов по клиенту

// Поиск всех тикетов конкретного клиента
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();

Ограничения скорости

ПланЛимитДетали
Sprout50 запросов/минБесплатный план
Blossom200 запросов/минСтартовый план
Garden400 запросов/минБазовый план
Estate700 запросов/минПрофессиональный план
Forest1 000 запросов/минКорпоративный план

Дополнительные ограничения:

РесурсЛимит
Список эндпоинтов30 страниц на запрос
На страницуМаксимум 100 записей
Search API2 запроса/сек
Пакетные операции10 записей/запрос

Заголовки ограничений скорости

Freshdesk возвращает информацию об ограничениях скорости в заголовках ответа. Следите за X-RateLimit-Remaining и реализуйте задержку при приближении к лимитам.

Устранение неполадок

ПроблемаПричинаРешение
401 UnauthorizedНедействительный API-ключПроверьте API-ключ в Freshdesk Profile Settings
403 ForbiddenНедостаточно разрешенийУбедитесь, что API-ключ принадлежит аккаунту администратора
Контакты не синхронизируютсяОтсутствует поле emailКонтакты Freshdesk требуют email-адрес
Тикеты не появляютсяНеверный доменПроверьте правильность URL домена Freshdesk
Поиск возвращает пустой результатОшибка синтаксиса запросаИспользуйте синтаксис поисковых запросов Freshdesk с двойными кавычками
429 Too Many RequestsПревышен лимит скоростиРеализуйте ограничение скорости в соответствии с уровнем плана
Отсутствуют пользовательские поляПоле не включеноУбедитесь, что пользовательские поля включены в администраторской панели Freshdesk

Лучшие практики

  1. Используйте вебхуки для синхронизации в реальном времени, настройте Freshdesk Automations для отправки вебхуков при событиях тикетов
  2. Синхронизируйте CSAT-оценки, отслеживайте оценки удовлетворённости как атрибуты Brevo для сегментации
  3. Маппируйте статусы тикетов в списки, автоматически перемещайте контакты между списками Brevo на основе статуса тикета
  4. Отслеживайте метрики поддержки, синхронизируйте количество тикетов, среднее время ответа и скорость закрытия на контакт
  5. Используйте Search API экономно, Search API имеет более строгие лимиты; кешируйте результаты при необходимости
  6. Пагинируйте крупные экспорты, используйте пагинацию с параметрами page и per_page для начальной синхронизации

Безопасность

  • Аутентификация по API Key, HTTP Basic Auth с API-ключом
  • Только HTTPS, все API-коммуникации требуют TLS-шифрования
  • IP-разрешение, доступно на планах Estate и Forest
  • Доступ на основе ролей, разрешения API-ключа привязаны к роли агента
  • SOC 2 Type II, Freshdesk сертифицирован по SOC 2 Type II
  • Соответствие GDPR, поддержка экспорта и удаления данных

Связанные ресурсы

Subscribe to updates

developer-docs

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

auto-detect
AI-ассистент

Привет! Спрашивайте меня о документации.