生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

n8nでPDF帳票を自動生成!HTMLテンプレートから請求書を作成するフロー

毎月の請求書作成、思った以上に時間がかかっていませんか。

顧客ごとに内容を修正し、PDFに変換して、メールで送信…。

単純な作業の繰り返しですが、ミスが許されないため気を使いますよね。

もし、この一連の作業をボタン一つで、あるいは完全に自動で完了できるとしたら、どれだけ楽になるでしょうか。

この記事では、話題のiPaaS(業務自動化ツール)である「n8n」を使って、HTMLテンプレートからオリジナルのPDF請求書を自動生成する方法を、具体的な手順に沿って詳しく解説します。

手作業による時間と手間を削減し、ヒューマンエラーを防ぎ、より付加価値の高い業務に集中するための第一歩を、この記事から始めましょう。

n8nが請求書作成の自動化に最適な理由

「そもそもn8nって何?」と感じる方もいるかもしれません。

n8nは、様々なアプリケーションやサービスを連携させ、一連の業務プロセスを自動化するためのツールです。プログラミングの専門知識がなくても、ノードと呼ばれる機能ブロックを線で繋いでいくだけで、直感的に「ワークフロー」と呼ばれる自動化の仕組みを構築できます。

n8nの基本的な概念や他の業務への応用例について詳しく知りたい方は、n8nの全体像を網羅的に解説した「【完全ガイド】n8nとは?話題の業務自動化ツールを徹底解説!導入メリットと始め方」もぜひご覧ください。

では、なぜn8nが請求書作成のような帳票業務の自動化に特に向いているのでしょうか。主な理由は3つあります。

1. 圧倒的なカスタマイズ性と柔軟性

n8nの最大の強みは、その高いカスタマイズ性にあります。特にHTMLを直接扱える点は、帳票作成において絶大なメリットをもたらします。多くの自動化ツールでは、用意されたテンプレートの範囲でしか帳票を作成できません。しかし、n8nなら自社で作成した完全オリジナルのHTMLテンプレートをベースにPDFを生成できます。会社のロゴを入れたり、レイアウトを細かく調整したり、独自の項目を追加したりと、思い通りのデザインの請求書を作成可能です。

2. 豊富な連携サービス

請求書業務は、単にPDFを作るだけで終わりではありません。元となるデータはGoogleスプレッドシートやデータベースにあり、作成後はメールで送信したり、クラウドストレージに保存したりする必要があります。n8nは、Google Workspace、Microsoft 365、各種データベース、クラウドストレージ、コミュニケーションツール(Slack, Chatwork)など、数百種類ものサービスと標準で連携できます。これにより、「データ取得→PDF生成→保存→通知」といった一連の流れを、全てn8n上で完結させることができるのです。

3. 優れたコストパフォーマンス

高機能な自動化ツールは、月額数万円以上のコストがかかることも珍しくありません。その点、n8nは非常に良心的な価格設定で知られています。クラウド版には、小規模な利用であれば無料で始められるプランが用意されています(2025年12月時点)。また、自社のサーバーにインストールして利用するセルフホスト版であれば、さらに大規模なワークフローも低コストで運用可能です。スモールスタートで試してみて、効果を実感しながら本格導入へとステップアップできる点は、特に中小企業や個人事業主にとって大きな魅力と言えるでしょう。

PDF請求書自動生成ワークフローの全体像と準備

具体的な作成手順に入る前に、まずは今回構築するワークフローの全体像と、事前に準備しておくものを確認しましょう。

自動化フローの全体像

今回は、以下のような流れで請求書PDFを自動生成するワークフローを作成します。

  1. トリガー: ワークフローを開始する起点です。手動実行、または毎月決まった日に自動実行します。
  2. データ取得: Googleスプレッドシートに記載された請求情報(顧客名、金額、発行日など)を読み込みます。
  3. HTML生成: 取得したデータを、あらかじめ用意したHTMLテンプレートに埋め込み、請求書用のHTMLを動的に生成します。
  4. PDF変換: 生成されたHTMLをPDF形式に変換します。
  5. 保存・通知(発展): 変換したPDFを指定のクラウドストレージ(例: Google Drive)に保存し、Slackやメールで完了を通知します。

この流れをn8nのワークフローに落とし込むことで、定型的な請求書発行業務を完全に自動化します。

事前に準備するもの

ワークフロー構築をスムーズに進めるために、以下のものを準備しておきましょう。

  • n8nアカウント: まだアカウントをお持ちでない方は、公式サイトからサインアップしてください。無料プランでも十分に今回の内容を試すことができます。
    n8n公式サイトでアカウントを作成する
  • 請求書データ(Googleスプレッドシート): 請求先の情報や金額がまとまったGoogleスプレッドシートを用意します。「会社名」「担当者名」「請求金額」「支払期日」などの列を作成しておきましょう。
  • 請求書のHTMLテンプレート: 請求書のひな形となるHTMLファイルを作成します。デザインに凝る必要はありませんが、CSSで基本的なレイアウトを整えておくと見栄えが良くなります。後ほど簡単なサンプルコードも紹介します。

準備が整ったら、いよいよn8nでワークフローを構築していきましょう。

実践!n8nで請求書PDFを生成するワークフロー構築手順

ここからは、n8nの画面をイメージしながら、実際にワークフローを組み立てる手順をステップバイステップで解説します。

ステップ1: トリガーノードを設置する

すべてのワークフローはトリガーから始まります。今回は、手動で好きな時に実行できるよう、[Manual Trigger] ノードを使用します。ワークフローの「+」ボタンから「Manual Trigger」を検索して設置しましょう。もし、毎月1日に自動実行したい場合は、[Cron] ノードを設置し、`0 9 1 * *` のように設定します(毎月1日の午前9時に実行)。

ステップ2: Googleスプレッドシートからデータを取得する

次に、請求データを取得します。ノード検索で「Google Sheets」と入力し、ノードを追加します。

  1. 認証: 初めて使用する場合は、Googleアカウントとの連携認証が必要です。画面の指示に従って認証を完了させてください。
  2. Resource & Operation: [Resource] に「Row」、[Operation] に「Get」を選択します。
  3. Sheet ID & Range: 請求データが記載されているスプレッドシートのIDと、データを取得したい範囲(例: `Sheet1!A2:E10`)を指定します。

これで、スプレッドシートの指定範囲のデータがn8nに読み込まれます。

ステップ3: CodeノードでHTMLを動的に生成する

ここが今回のワークフローの核となる部分です。取得したデータをHTMLテンプレートに埋め込みます。

  1. HTMLテンプレートの準備: まず、以下のようなシンプルな請求書のHTMLテンプレートを用意します。`{{顧客名}}` や `{{請求金額}}` のように、後でデータを埋め込む箇所を分かりやすい目印に置き換えておきます。
    
    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <style>
      body { font-family: sans-serif; }
      .invoice-box { max-width: 800px; margin: auto; padding: 30px; border: 1px solid #eee; }
      .title { text-align: center; font-size: 24px; margin-bottom: 20px; }
    </style>
    </head>
    <body>
    <div class="invoice-box">
      <h1 class="title">ご請求書</h1>
      <p>{{顧客名}} 御中</p>
      <p>請求金額: ¥{{請求金額}}</p>
      <p>支払期日: {{支払期日}}</p>
    </div>
    </body>
    </html>
    
  2. Codeノードの設置: 「Code」ノードを追加します。このノードはJavaScriptを記述して、より複雑なデータ処理を行うためのものです。
  3. JavaScriptの記述: Codeノードの [Mode] を「Run Once for All Items」に設定し、以下の要領でJavaScriptを記述します。これは、前のノード(Google Sheets)から受け取った各データ(各行)に対してループ処理を行い、HTMLを生成するコードです。
    
    const items = $items("Google Sheets"); // Google Sheetsノードからデータを取得
    const generatedHtmls = [];
    
    for (const item of items) {
      let html = `<!DOCTYPE html>...(ここに先ほどのHTMLテンプレートを貼り付ける)...</html>`;
    
      // データをHTMLに埋め込む
      html = html.replace('{{顧客名}}', item.json.companyName); // 列名に合わせて変更
      html = html.replace('{{請求金額}}', item.json.amount);
      html = html.replace('{{支払期日}}', item.json.dueDate);
    
      // 処理したデータを次のノードに渡す
      generatedHtmls.push({
        json: {
          htmlContent: html,
          fileName: `請求書_${item.json.companyName}.pdf` // PDFのファイル名もここで生成
        }
      });
    }
    
    return generatedHtmls;
    

    独自の視点: このようにCodeノードを使うことで、単なるデータ置換だけでなく、請求金額に消費税をかけたり、複数の項目を合算したりといった計算処理も同時に行えます。これにより、データソースがシンプルなままでも、柔軟に帳票を生成できるのがn8nの強みです。

ステップ4: PDFを生成する

最後に、生成したHTMLをPDFに変換します。コミュニティノードである[HTML to PDF] ノード(`n8n-nodes-html-to-pdf`)を使用するのが便利です。

  1. ノードのインストール: [Settings] > [Community Nodes] から「`n8n-nodes-html-to-pdf`」を検索し、インストールします。
  2. ノードの設置と設定: ワークフローに [HTML to PDF] ノードを追加します。
    • HTML: 入力欄の右側にある歯車アイコンから [Add Expression] を選択し、`{{ $json.htmlContent }}` と入力します。これにより、前のCodeノードで生成したHTMLが渡されます。

これで、ワークフローを実行すると、スプレッドシートの各行に対応したPDFが生成されます。生成されたデータはn8n内部でバイナリデータとして保持されます。

発展編:PDF生成後のタスクも自動化して業務を完結させる

PDFを生成するだけで終わらせないのが、n8nを使った自動化の醍醐味です。請求書発行に付随する後続タスクもワークフローに組み込んでしまいましょう。

1. Google DriveにPDFを自動保存する

生成したPDFは、証憑として保管しておく必要があります。[Google Drive] ノードを使えば、これも自動です。

  1. ノードの設定: [Google Drive] ノードを追加し、認証を済ませます。[Resource] に「File」、[Operation] に「Upload」を選択します。
  2. 設定項目:
    • Binary Property: `data` と入力します。これは、前の [HTML to PDF] ノードが生成したPDFデータを指します。
    • File Name: Codeノードで生成したファイル名 `{{ $json.fileName }}` をExpressionで指定します。
    • Parent Folder ID: 保存先のGoogle DriveフォルダIDを指定します。

これで、毎月自動で生成された請求書が、顧客ごとに命名されて特定のフォルダに整理・保存されていきます。

2. Slackやメールで完了通知を送る

タスクが正しく完了したことを確認するために、通知機能を設定しましょう。[Slack] ノードや [Gmail] ノードが便利です。

  1. ノードの設定: ワークフローの最後に [Slack] ノードを追加し、認証します。
  2. メッセージの作成: Message欄に「請求書の発行が完了しました。ファイル名: `{{ $json.fileName }}`」のように、前のノードの情報を埋め込むことで、どの請求書が処理されたかを明確に通知できます。

もしエラーが発生した場合に通知を送る設定も可能です。これにより、万が一自動化プロセスが失敗しても、迅速に気づき対応することができます。

まとめ:定型業務を卒業し、創造的な時間を取り戻そう

この記事では、n8nを使ってHTMLテンプレートからPDF請求書を自動生成する具体的な方法を解説しました。

手順をまとめると以下の通りです。

  • Googleスプレッドシートなどのデータソースから請求情報を取得する。
  • CodeノードでHTMLテンプレートに動的にデータを埋め込む。
  • HTML to PDFノードでPDFに変換する。
  • Google Driveへの保存やSlackへの通知といった後続タ femmesも自動化する。

毎月数時間を費やしていた請求書業務が、一度このワークフローを構築してしまえば、数分、あるいはゼロにまで削減されます。これは単なる時間短縮ではありません。面倒な定型業務から解放されることで生まれる精神的な余裕と、ビジネスの成長戦略を考えるような創造的な時間は、何物にも代えがたい価値を持つはずです。

まずは、今回ご紹介した簡単なフローからで構いません。ぜひn8nを実際に触ってみて、自動化の第一歩を踏み出してみてください。n8nには、あなたのビジネスを加速させる無限の可能性が眠っています。

n8nの導入やさらに高度な使い方について知りたい方は、基本から応用までを網羅した「【完全ガイド】n8nとは?話題の業務自動化ツールを徹底解説!導入メリットと始め方」がきっとあなたの助けになるでしょう。

今すぐ業務効率化を始める
n8n公式サイトで無料アカウントを作成する