Zendeskのヘルプセンター機能を使って作成した記事を、生成AIに読み込ませたり、記事を一覧化したりしたいとき、毎度Pythonのスクリプトを動かすのが面倒だったので、Chrome拡張機能を作りました。
Zendesk公式では、Help Center API のほかに 3rd party 製のアプリを利用することが案内されていますが1、自分が欲しい形式でワンクリック出力できなさそうなので、オリジナルで作成してみました。
想定読者
- Zendeskでヘルプセンターを構築していて、記事を一括出力したい人
このChrome拡張の機能
- ヘルプセンターのページを開いた状態で、実行することで記事を一括出力できる
- 出力形式は以下の2つを選べる
- CSV(1ファイル)
- Markdown(ロケールごとに1ファイル)
- ログイン状態に応じた取得対象の自動切り替え
- 未ログイン:公開記事のみ
- ログイン済み:自分の権限で閲覧できる記事
- 多言語の Help Center では、全ロケールを取得
- CSV形式選択時は、記事のHTMLに加えて、HTMLをMarkdownに変換した列も追加
使い方
1. Zendeskで作成したヘルプセンターを開く
例:https://support.zendesk.com/hc/ja
2. 拡張のポップアップを開く
- Chrome拡張機能のアイコンをクリック
- Format で CSV または Markdown を選択
- Export articles をクリック
3. ファイルが自動的にダウンロードされます
-
CSV
- 1ファイルに全記事を出力
- 本文は HTML(body) と Markdown(body_markdown) の両方を含めます
-
Markdown
- ロケールごとに1ファイル
- 各記事は
# title+ 本文(Markdown) - 記事の区切りは
---
CSVファイルの例
技術概要
取得に使っている API
- ロケール一覧:
/api/v2/help_center/locales.json
- 記事一覧(ロケールごと):
/api/v2/help_center/{locale}/articles.json
認証まわり
-
fetch(..., { credentials: "include" })でログイン済み Cookie を使い、「閲覧できる範囲の記事」 だけを取得
こだわりのポイント
1. CSV を “Excel で開いても壊れにくく”
- UTF-8 の BOM 付きでダウンロード(文字化けしにくくする)
- カンマ/改行/
"が入っても列がズレないように、値を"で囲って"は""に置き換え
2. HTML 本文と Markdown 本文の両方を出す
- Zendesk の API は本文を HTML で返すので、そのまま
bodyに保持 - さらに Turndown で Markdown 化した
body_markdownも生成
3. 進捗の可視化
- ポップアップ内の取得したページ数を随時更新することで、機能が問題なく動いているかどうかをユーザーが不安に思わないように
感想
これまでスクリプトの使い回しでもそれなりに面倒だった作業が、ワンクリックでできるようになったので大満足しています。


