---
title: "Freshdesk コネクター"
description: "Tajo 経由で Freshdesk のサポートチケット、コンタクト、エージェントデータを Brevo と同期するための完全統合ガイド。"
url: https://tajo.io/jp/docs/connectors/support/freshdesk/
markdown: https://tajo.io/jp/docs/connectors/support/freshdesk.md
lang: ja-JP
robots: noindex
---

先行利用を申し込む

お名前と会社のメールアドレスを入力してください。Tajoへのアクセス申請を確認するためのリンクをメールでお送りします。

# Freshdesk コネクター

コネクターのステータス: 予定 まだ構築されていません。Tajo は現在このコネクターを実行していません。

| 送信元フィールド | 送信先フィールド | サンプル値 |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Freshdesk を Tajo 経由で Brevo に接続し、サポートとマーケティングのデータを統合します。顧客サポートチケット、コンタクトプロファイル、満足度スコアを同期して、サポートでのやり取りに基づくターゲットコミュニケーションを実現できます。

## 概要

| 項目 | 値 |
| --- | --- |
| **プラットフォーム** | Freshdesk |
| **カテゴリー** | サポート |
| **セットアップ難易度** | 簡単 |
| **公式統合** | なし |
| **同期データ** | チケット、コンタクト、エージェント、カンパニー |
| **利用可能なスキル** | 6 |

## 機能

- **コンタクト同期** - Freshdesk コンタクトを Brevo コンタクトリストに双方向同期
- **チケットイベント追跡** - チケットの作成、更新、解決イベントを Brevo へ転送
- **CSAT 同期** - 顧客満足度スコアを Brevo のコンタクト属性として同期
- **カンパニー同期** - Freshdesk カンパニーを Brevo のコンタクトセグメンテーションにマッピング
- **エージェントデータ** - 内部ワークフロー自動化のためにエージェント割り当てを追跡
- **カスタムフィールド** - Freshdesk のカスタムチケット・コンタクトフィールドを Brevo 属性にマッピング

## 前提条件

開始する前に、以下をご用意ください。

1. 管理者アクセス権付きの Freshdesk アカウント
2. Freshdesk API キー (プロファイル設定で確認可能)
3. Freshdesk ドメイン (例: `yourcompany.freshdesk.com`)
4. API アクセス付きの Brevo アカウント
5. API 認証情報を持つ Tajo アカウント

## 認証

### API キー認証

Freshdesk は HTTP Basic 認証で API キー認証を行います。API キーをユーザー名として使用し、パスワードには任意の文字列 (通常は `X`) を設定します。

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

または Authorization ヘッダーで Base64 エンコードを使用します。

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

### API キーの確認方法

1. Freshdesk アカウントにログイン
2. 右上のプロファイル画像をクリック
3. **プロファイル設定**へ移動
4. 右側に API キーが表示されます

## 設定

### 基本セットアップ

```yaml
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 属性にマッピングします。

```yaml
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 オートメーショントリガーにマッピングします。

```yaml
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 コネクターの初期化

```javascript
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
});
```

### コンタクトを Brevo に同期

```javascript
// 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": "jane@example.com",
//   "phone": "+15551234567",
//   "company_id": 678,
//   "job_title": "Product Manager",
//   "created_at": "2024-01-15T10:30:00Z"
// }
```

### チケットイベントを追跡

```javascript
// 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');
});
```

### 顧客別のチケット検索

```javascript
// Search for all tickets from a specific customer
const query = encodeURIComponent('"email:jane@example.com"');
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();
```

## レート制限

| プラン | 制限 | 詳細 |
| --- | --- | --- |
| **Sprout** | 50 リクエスト/分 | 無料プラン |
| **Blossom** | 200 リクエスト/分 | スタータープラン |
| **Garden** | 400 リクエスト/分 | グロースプラン |
| **Estate** | 700 リクエスト/分 | プロプラン |
| **Forest** | 1,000 リクエスト/分 | エンタープライズプラン |

その他の制限:

| リソース | 制限 |
| --- | --- |
| **リストエンドポイント** | 1 クエリあたり 30 ページ |
| **1 ページあたり** | 最大 100 レコード |
| **Search API** | 2 リクエスト/秒 |
| **バルク操作** | 1 リクエストあたり 10 レコード |

レート制限ヘッダー

Freshdesk はレスポンスヘッダーにレート制限情報を返します。`X-RateLimit-Remaining` を監視し、上限に近づいた際はバックオフを実装してください。

## トラブルシューティング

| 問題 | 原因 | 解決策 |
| --- | --- | --- |
| `401 Unauthorized` | API キーが無効 | Freshdesk プロファイル設定で API キーを確認 |
| `403 Forbidden` | 権限不足 | API キーが管理者アカウントに属していることを確認 |
| コンタクトが同期されない | メールフィールド欠落 | Freshdesk コンタクトにはメールアドレスが必須 |
| チケットが表示されない | ドメインが誤り | Freshdesk のドメイン URL が正しいことを確認 |
| 検索結果が空 | クエリ構文エラー | Freshdesk の検索クエリ構文でダブルクォートを使用 |
| `429 Too Many Requests` | レート制限超過 | プラン階層に合わせたレート制限を実装 |
| カスタムフィールドが欠落 | フィールドが有効化されていない | Freshdesk 管理画面でカスタムフィールドを有効化 |

## ベストプラクティス

1. **リアルタイム同期には Webhook を使用** - Freshdesk オートメーションを設定してチケットイベント発生時に Webhook をトリガー
2. **CSAT スコアを同期** - セグメンテーション用に顧客満足度評価を Brevo 属性として追跡
3. **チケットステータスをリストにマッピング** - チケットステータスに応じてコンタクトを Brevo リスト間で自動移動
4. **サポートメトリクスを追跡** - コンタクトごとのチケット数、平均応答時間、解決率を同期
5. **Search API の使用は控えめに** - Search API は厳しいレート制限があるため、可能な限り結果をキャッシュ
6. **大規模エクスポートはページング** - 初期同期では `page` と `per_page` パラメータでページネーションを使用

## セキュリティ

- **API キー認証** - API キーによるシンプルな HTTP Basic 認証
- **HTTPS 限定** - すべての API 通信で TLS 暗号化が必須
- **IP ホワイトリスト** - Estate および Forest プランで利用可能
- **ロールベースアクセス** - API キーの権限はエージェントロールに紐づく
- **SOC 2 Type II** - Freshdesk は SOC 2 Type II 認証取得済み
- **GDPR 準拠** - データのエクスポートおよび削除リクエストをサポート

## 関連リソース

- [Brevo コネクター](https://tajo.io/jp/docs/connectors/marketing/brevo)
- [顧客同期スキル](https://tajo.io/jp/docs/skills/data-sync/customer-sync)
- [Shopify コネクター](https://tajo.io/jp/docs/connectors/ecommerce/shopify)
- [Brevo Contacts API](https://tajo.io/jp/docs/contact-management)
