SimplePDFでAIエージェントを使ってPDFフォームを事前入力する方法

Profile picture of Benjamin André-Micolon
事前入力APIサービスがPDFの申請フォーム(氏名、メール、生年月日、性別、署名)に入力し、その後承認される様子

AIエージェントは、顧客のメール、データベースの行、過去の提出内容を読み取り、フォームに何を入れるべきかを判断できます。エージェントがしてはいけないのは、フォームを独断で提出することです。 事前入力APIを使うと、エージェントが完全に入力済みのPDFを用意し、それを人に渡してレビュー・修正・提出してもらえます。エージェントは面倒な作業を担い、重要な判断には人が関わり続けます。

これにより、完了率を高く保ち(受信者は空白のフォームではなく、すでに完成した文書を開きます)、提出される内容については人が責任を持ち続けられます

このガイドではAIエージェントについて説明していますが、事前入力APIは単なるHTTP(REST)APIです。 HTTPリクエストを送信できるシステムであれば、AIエージェント、バックエンドのジョブ、ワークフロー自動化、CRM連携のいずれであっても利用できます。読みやすいリファレンスについてはAPIドキュメントを、ツールへのインポートやクライアント生成にはOpenAPI仕様をご覧ください。どちらもすべてのエンドポイントとフィールドを記載しています。

仕組み

事前入力とは、フィールド値のまとまりであり、SimplePDFには一切保存されずお客様自身のストレージ(S3、Azure Blob Storage、またはSharePoint)に保存されます。APIで事前入力を作成し、値を直接お客様のストレージにアップロードして、リンクを共有します。受信者がそのリンクを開くと、エディターがお客様のストレージから値を読み込み、入力済みの文書をレビュー用に表示します。

Prefill data flow
Field values go to your storage, never to SimplePDF
    Your agent              SimplePDF              Your storage          Your recipient
   ┌────────────┐         ┌────────────┐        ┌─────────────────┐    ┌────────────┐
   │   .----.   │         │            │        │                 │    │  ( ^_^ )   │
   │  [ o  o ]  │         │  SimplePDF │        │  Your storage   │    │   /| |\    │
   │  [  __  ]  │         │     API    │        │ S3/Azure/ShareP │    │    | |     │
   │   '-||-'   │         │            │        │                 │    │   _/ \_    │
   │  a robot   │         │            │        │                 │    │  a human   │
   └──────┬─────┘         └──────┬─────┘        └────────┬────────┘    └──────┬─────┘
          │                      │                       │                    │
          │  1. POST /prefills   │                       │                    │
          │ ───────────────────> │                       │                    │
          │   upload + embed_url │                       │                    │
          │ <─────────────────── │                       │                    │
          │                      │                       │                    │
          │  2. upload the prefill blob (field values never reach SimplePDF)  │
          │ ───────────────────────────────────────────> │                    │
          │                      │                       │                    │
          │                      │   3. opens embed_url; editor loads values  │
          │                      │                       │ <──────────────────│
          │                      │                       │                    │
          │                      │  4. reviews, edits if needed, then submits │

   ───────────>  API call (identifiers + links only, no field values)
   ───────────────────────────────────────────>  Direct upload / download (bypasses SimplePDF)

値は直接お客様のストレージに書き込まれるため、フィールド値がSimplePDFに届くことは一切ありません。APIが扱うのは識別子とリンクのみです。

始める前に

このガイドを進めるには、次のものが必要です。

  • APIキー。アカウント設定の連携セクションで作成できます。事前入力APIにはAPIアクセスを含むプランが必要です:ProまたはPremium
  • お客様自身のストレージの設定(S3、Azure Blob Storage、またはSharePoint)。独自のS3バケットを使うAzure Blob StorageScaleway Object Storage、またはSharePointをご覧ください。
  • ダッシュボードでフィールドが設定された文書。

以下の例ではcurlを使用します。$COMPANYを会社の識別子に、$API_KEYをAPIキーに置き換えてください。

ステップ1: 事前入力できるフィールドを一覧表示する

どのフィールドが存在し、何を受け付けるかを文書に問い合わせます。各フィールドには、事前入力で参照する安定したidがありtype、(制約のあるフィールドの場合)許可されるoptionsもあります。

Get the field schema
GET /documents/{document_id}/fields
curl https://$COMPANY.simplepdf.com/api/v1/documents/$DOCUMENT_ID/fields \
  -H "Authorization: Bearer $API_KEY"

# Response
{
  "data": [
    { "id": "f_abc1455", "name": "first_name", "type": "text", "options": null },
    { "id": "f_9k2m7d3q", "name": "plan", "type": "checkbox", "options": ["checked", "xchecked", "unchecked"] },
    { "id": "f_5t8w0r6z", "name": "logo", "type": "picture", "options": null }
  ]
}

フィールドのname、そしてrequiredかどうか、default_valueを持つか、read_onlyかどうかは、ダッシュボードから設定します。文書のフィールドを設定するをご覧ください。読み取り専用のフィールドは設定された値を保持し、事前入力で送信した内容を無視します。

ステップ2: 事前入力を作成する

事前入力を作成すると、2つのものが返されます。値をどこへどのように送信すればよいかを正確に示すuploadオブジェクトと、受信者が開くembed_urlです。

Create a prefill
POST /documents/{document_id}/prefills
curl -X POST https://$COMPANY.simplepdf.com/api/v1/documents/$DOCUMENT_ID/prefills \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "context": { "agent": "intake-bot", "user_id": "u_123" } }'

# Response
{
  "id": "05666d45-96d0-42ce-b24b-f1f1af228f57",
  "upload": { "type": "presigned_put", "url": "https://your-storage/...", "method": "PUT", "headers": { "Content-Type": "application/json" } },
  "embed_url": "https://$COMPANY.simplepdf.com/documents/$DOCUMENT_ID?prefill=05666d45-..."
}

任意のcontextは相関のためのメタデータです(たとえば、どのエージェントが事前入力を作成したか)。提出とともに渡されるため、お客様自身の記録に紐付けられます。機密データは含めないでください。 フィールド値そのものはブロブに入れ、ここには入れません。

ステップ3: 事前入力の値をストレージにアップロードする

前のステップで得たuploadオブジェクトを使って、{ "fields": [{ "id", "value" }] }という形のJSONブロブを送信します。idはステップ1で得たもので、各valueはテキストフィールドとチェックボックスフィールドの場合は文字列、署名フィールドと画像フィールドの場合はbase64のdata URLです。

Upload the prefill blob
Send it with the upload method and url
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": [
      { "id": "f_abc1455", "value": "Bob" },
      { "id": "f_9k2m7d3q", "value": "checked" },
      { "id": "f_5t8w0r6z", "value": "data:image/png;base64,iVBORw0KGgo..." }
    ]
  }'

値に関する注意点:

  • フィールドにoptionsが一覧されている場合GET /fields内)、値はそれらのオプションのいずれかでなければなりません。これはチェックボックス、ドロップダウン、ラジオボタンに該当します。
  • それ以外の場合、値は単純な文字列(テキストフィールド)か、data:image/png;base64,...のようなbase64のdata URL(署名フィールドと画像フィールド)です。署名は、約3:1のアスペクト比(たとえば1200x400)の透過PNGとして最も見栄えがよくなります。
  • 未知のidは無視され、文書が読み取り専用として指定したフィールドは既存の値を保持します。

upload.typepresigned_post(S3のフォームアップロード)の場合は、PUTのボディの代わりに、一覧されたfieldsをマルチパートフォームデータとして送信します。graph_upload_session(SharePoint)の場合は、さらにContent-LengthContent-Rangeをブロブのバイト長に設定します。

ステップ4: レビュー用にリンクを送る

レビューして提出すべき人にembed_urlを共有します。その人はすでに入力済みの文書を開き、必要な修正を行って提出します。単独で開くことも、自分のアプリに埋め込むこともできます。

提出時に通知を受け取るには、Webhookを設定してください。提出イベントには、ステップ2で設定したcontextが含まれます。

事前入力を整理しておく

事前入力は削除するまで保持されるため、リンクを再共有したり監査したりできます。不要になったら削除してください。

Delete a prefill
DELETE /documents/{document_id}/prefills/{prefill_id}
curl -X DELETE https://$COMPANY.simplepdf.com/api/v1/documents/$DOCUMENT_ID/prefills/$PREFILL_ID \
  -H "Authorization: Bearer $API_KEY"

事前入力の作成と削除は、監査ログに記録されます。

これで完了です! エージェントがPDFを事前入力できるようになり、人がレビューして提出することで、人が関与し続けられます。

ご不明な点があれば、お気軽にsupport@simplepdf.comまでお問い合わせください

あなたが興味を持つかもしれない