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

AIエージェントは、顧客のメール、データベースの行、過去の提出内容を読み取り、フォームに何を入れるべきかを判断できます。エージェントがしてはいけないのは、フォームを独断で提出することです。 事前入力APIを使うと、エージェントが完全に入力済みのPDFを用意し、それを人に渡してレビュー・修正・提出してもらえます。エージェントは面倒な作業を担い、重要な判断には人が関わり続けます。
これにより、完了率を高く保ち(受信者は空白のフォームではなく、すでに完成した文書を開きます)、提出される内容については人が責任を持ち続けられます。
このガイドではAIエージェントについて説明していますが、事前入力APIは単なるHTTP(REST)APIです。 HTTPリクエストを送信できるシステムであれば、AIエージェント、バックエンドのジョブ、ワークフロー自動化、CRM連携のいずれであっても利用できます。読みやすいリファレンスについてはAPIドキュメントを、ツールへのインポートやクライアント生成にはOpenAPI仕様をご覧ください。どちらもすべてのエンドポイントとフィールドを記載しています。
仕組み
事前入力とは、フィールド値のまとまりであり、SimplePDFには一切保存されず、お客様自身のストレージ(S3、Azure Blob Storage、またはSharePoint)に保存されます。APIで事前入力を作成し、値を直接お客様のストレージにアップロードして、リンクを共有します。受信者がそのリンクを開くと、エディターがお客様のストレージから値を読み込み、入力済みの文書をレビュー用に表示します。
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 Storage、Scaleway Object Storage、またはSharePointをご覧ください。
- ダッシュボードでフィールドが設定された文書。
以下の例ではcurlを使用します。$COMPANYを会社の識別子に、$API_KEYをAPIキーに置き換えてください。
ステップ1: 事前入力できるフィールドを一覧表示する
どのフィールドが存在し、何を受け付けるかを文書に問い合わせます。各フィールドには、事前入力で参照する安定したidがあり、type、(制約のあるフィールドの場合)許可されるoptionsもあります。
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です。
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です。
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.typeがpresigned_post(S3のフォームアップロード)の場合は、PUTのボディの代わりに、一覧されたfieldsをマルチパートフォームデータとして送信します。graph_upload_session(SharePoint)の場合は、さらにContent-LengthとContent-Rangeをブロブのバイト長に設定します。
ステップ4: レビュー用にリンクを送る
レビューして提出すべき人にembed_urlを共有します。その人はすでに入力済みの文書を開き、必要な修正を行って提出します。単独で開くことも、自分のアプリに埋め込むこともできます。
提出時に通知を受け取るには、Webhookを設定してください。提出イベントには、ステップ2で設定したcontextが含まれます。
事前入力を整理しておく
事前入力は削除するまで保持されるため、リンクを再共有したり監査したりできます。不要になったら削除してください。
curl -X DELETE https://$COMPANY.simplepdf.com/api/v1/documents/$DOCUMENT_ID/prefills/$PREFILL_ID \
-H "Authorization: Bearer $API_KEY"事前入力の作成と削除は、監査ログに記録されます。
これで完了です! エージェントがPDFを事前入力できるようになり、人がレビューして提出することで、人が関与し続けられます。
ご不明な点があれば、お気軽にsupport@simplepdf.comまでお問い合わせください
あなたが興味を持つかもしれない
- PDFフォームに必須フィールドを追加する
- エディターのカスタマイズとブランド追加方法
- 送信確認のカスタマイズ方法
- 編集済みPDFの送信内容をSupabaseに保存する方法
- PDFフォームの送信に対するメール通知の取得方法
- タグでドキュメントを整理する
- PDF送信用のストレージとしてSharePointを接続する
- SharePointにPDFエディターを埋め込む
- PDFフォームの送信に自分のS3バケットを設定する方法
- PDFフォーム送信のために独自のAzure Blob Storageを設定する
- 新しいPDFフォームの送信通知を取得するためのWebhooksの設定方法
- Bubbleのワークフローを使用してPDFの送信内容をBubbleデータベースに保存する方法
- PDFフォームの処理を自動化するためにSimplePDFをActivepiecesに接続する方法
- IDPワークフローでAIを活用するためのRobocorp統合の使用方法
- Next.jsアプリに埋め込みPDFエディターを追加する方法
- ExcalidrawでPDFを表示・編集する方法
- SimplePDFの監査ログでチームの活動を監視する
- SimplePDF Copilotをセルフホストする方法