## 1. Product Overview **Product Name:** SimplePDF **Tagline:** Simple PDF editing, right in your browser **Core Value Proposition:** For individuals, SimplePDF offers a completely free, no-signup PDF editor in the browser. For companies, it integrates a powerful PDF SDK into websites or apps with one line of code. **Target User:** - Individuals, Developers and business professionals that work with PDFs and require editing, annotating and signing. **Key Benefits And Features:** For individuals: - The editor interface is available in Dutch, English, French, German, Italian, Japanese, Portuguese, and Spanish - Strong emphasis on privacy: the documents and data filled in stay on the device and are never sent to a server - Works offline: the free editor (and any tenant that does not collect submissions) downloads its PDF engine, its interface copy, and its Latin font faces up front, so a user can disconnect from the internet and still open, fill, sign, and download a PDF; after a session's first offline spell, reconnecting also fetches the remaining non-Latin faces (Arabic, Devanagari, Tamil) and the HEIC photo decoder. Mandarin text, encrypted PDFs, OCR and redaction still need a connection the first time they are used. A Wi-Fi indicator appears in the editor sidebar when the connection drops, green when offline editing is ready and red when it is not, and explains the state when clicked - HIPAA compliant (editing is fully in-browser: documents never reach SimplePDF servers) - Add text, checkboxes, signatures, pictures on PDFs - Add comb fields (one character per box, common on French/CERFA forms like dates, SSN, IBAN, postal codes) - White out (redact) existing content - Merge, add, remove and rotate PDF pages - Add an image (JPG, PNG, HEIC) as a PDF page: it lands on its own A4 page (orientation follows the image) where you can move, resize, and rotate it, entirely in the browser (adding the image does not upload it; HEIC is decoded locally) - Automatic detection of pre-existing form fields (AcroFields) using browser-based AI - Copy and duplicate fields - Print the edited PDF straight from the editor (generated in the browser, opened in the print dialog) - Extract the document's text as Markdown (browser-based, with OCR fallback for scanned pages): copy it to the clipboard or download it as a .md file For businesses: - All individual features, plus: - Easily integrate a PDF editor in one's website: visitors can edit and fill PDFs without leaving the website - Webhook integration: documents submitted via SimplePDF trigger webhooks for easy integration with the customer's backend systems - Email notifications: customers can be notified of document submissions - Bring your own storage: customers can choose to use their own S3-compatible storage (AWS S3, Scaleway Object Storage, OVHcloud, Outscale, MinIO), Azure Blob Storage, or SharePoint - Customization: customers can hide tools, add their own branding (logo and loading) as well as hide the sidebar entirely for white-labelling - Mark fields as required, specify default values and make fields read only — for both SimplePDF-added fields and the PDF's own existing form fields (which can also be renamed) - Viewer mode: read-only mode hiding 'New' and 'Download' buttons - Role-based Access (RBAC): role-based access control for team members - REST API access for server-side automation (Premium plan). - Programmatic control of the embedded editor, available on all plans (certain capabilities are plan-gated). - Prefill API: an AI agent (or any HTTP client) pre-fills a PDF for a person to review and submit (human-in-the-loop, the agent never submits on its own); the field values are written directly to your own storage and never reach SimplePDF (requires API access). Supported Formats and Limitations: - Supports all standard PDF files (up to 35MB recommended). - Image inputs that can be added as a PDF page: JPG/JPEG, PNG, and HEIC (added as a page client-side). - Right-to-left languages (e.g., Arabic, Hebrew) are not currently supported. - Password-protected PDFs are supported: enter the password to unlock, edit, then choose to keep or remove the protection before saving. **Competitive Edge:** - Unlike many PDF editors, SimplePDF requires no signup for individual use and processes documents locally for maximum privacy. - Compared to traditional SDKs, our one-line integration is faster and more developer-friendly. - Fully free for individuals with no feature limits, unlike freemium tools with paywalls. - A Preview app equivalent for non-Mac users: view and annotate PDFs in-browser on any platform. **Integrations & Platforms:** - [Web](https://simplePDF.com) - [Chrome extension](https://chromewebstore.google.com/detail/simplepdf-edit-sign-and-f/fgikademdabjcmnlgmgbifipooibbepi) - [Bubble plugin](https://bubble.io/plugin/pdf-editor-and-filler-1673591701449x899138091362287600) - [Wordpress plugin](https://wordpress.org/plugins/simplepdf-embed/) - [Web SDK](https://github.com/SimplePDF/simplepdf-embed/tree/main/web) - [React Component](https://github.com/SimplePDF/simplepdf-embed/blob/main/react/README.md) ## 2. Products ### Embed SDK - Add a PDF Editor to Your Website Embed SimplePDF directly into any website or app with one line of code. End users fill, sign, and submit PDFs without leaving the site. - ~5KB gzipped, MIT licensed - Integration methods: React component, vanilla JS script tag, iframe, WordPress plugin, Bubble.io plugin - Iframe bridge: control the editor programmatically — navigate pages, select tools, detect fields, extract the document content as Markdown (including filled form values, checkbox states and signature markers), fill, and submit — and listen to editor events as the user works. Drive it from your own app or an AI agent, on top of any integration method. - Viewer mode available for read-only PDF display - White-label mode (Pro plan) with fully programmatic control - Automatic form field detection on any PDF using browser-based AI GitHub: https://github.com/SimplePDF/simplepdf-embed React: https://www.npmjs.com/package/@simplepdf/react-embed-pdf Web: https://www.npmjs.com/package/@simplepdf/web-embed-pdf ### Portal - Collect Filled PDFs With One Link Sign up and get a unique Portal URL. Share it with anyone. Recipients load a PDF, fill it, sign it, and submit it straight to your dashboard. No accounts needed for submitters. - Unique Portal URL per account (e.g. acme.simplepdf.com on Pro plan) - Compatible with all integrations: React component, iframe, WordPress plugin, Bubble.io plugin - Automatic form field detection on any PDF, including flat PDFs, using browser-based AI - Real-time dashboard with submissions, tagging, and search - Download a single submission's structured field data, or export all of a document's submissions at once, as CSV or Excel from the dashboard (assembled client-side in a background worker) - Customizable submission confirmation page - Submitters can download a copy of their filled PDF - Share via email, website embed, direct URL, or print URL: https://simplepdf.com/portal ### PDF-to-Web-Forms - From PDF to Online Form in Seconds Upload any PDF, turn it into a web form, share the link, and collect submissions. No coding required. - Drag-and-drop PDF upload with automatic field detection - Manual field additions in seconds - Unique URL per form for sharing via email, website, or app - Real-time submission collection in dashboard URL: https://simplepdf.com/pdf-to-web-forms ### SimplePDF Copilot - AI PDF Editor You Can Chat With SimplePDF Copilot is a chat-controlled PDF editor. Users ask Copilot to fill fields, add or detect missing fields, sign documents, rotate, delete or move pages, extract text with OCR, or find a specific clause. Every action runs inside the SimplePDF editor and is visible to the user, who keeps the final say. - Capabilities: fill and sign forms, add/remove/detect fields, clean up pages (rotate, delete, move), extract PDF content as Markdown with OCR fallback, find clauses and answers, use company context via RAG/MCP tools - Form Copilot mode: step-by-step form filling where Copilot reads the form, asks for missing answers, fills fields, flags uncertain sections, and leaves final approval to the user - Browser-first: PDF editing, field placement, signing, and page operations run in the browser. For AI requests, Copilot sends the document context needed for the request through the configured AI route to the configured AI provider - Voice input (speech-to-text): users can dictate into the chat composer; the recording becomes an editable transcript the user reviews before sending. Audio leaves the browser only when the user confirms a recording: the hosted demo transcribes via the SimplePDF server and OpenAI (no audio retained), or a BYOK speech-to-text provider (OpenAI or any OpenAI-compatible endpoint) receives the clip directly from the browser, never touching SimplePDF servers. PDF bytes stay in the browser either way - AI providers wired in: Anthropic, OpenAI, DeepSeek, Google Gemini, and Mistral. BYOK (browser-direct provider keys) and local OpenAI-compatible endpoints (Ollama, LM Studio) are supported out of the box - Storage: with BYOS, documents and submissions can be saved to customer storage. Without BYOS, documents and submissions can be stored in SimplePDF storage. SimplePDF stores operational metadata for documents, submissions, dashboards, billing, and configuration - Open source and forkable: the SimplePDF Copilot app is a MIT-licensed reference implementation built on TanStack Start + Vercel AI SDK, deployable to DigitalOcean. The SimplePDF editor it embeds remains a hosted service; running Copilot on a custom domain requires a Pro plan that includes white-labeling and programmatic editor control Live demo: https://copilot.simplepdf.com Source: https://github.com/SimplePDF/simplepdf-embed/tree/main/copilot Landing: https://simplepdf.com/copilot ### Prefill API - Pre-fill PDFs for human-in-the-loop review, with data that never leaves your environment The Prefill API lets any system that can call an HTTP API prepare a fully filled-in PDF and hand it to a person to review, correct, and submit. It is purpose-built for AI agents: an agent reads a source (a customer email, a database row, a prior submission), works out what belongs in the form, and stages a pre-filled document — but it never submits on its own. A human stays in the loop for the decision that matters and is accountable for what gets submitted. This is a uniquely safe way to put AI into document workflows: the agent does the tedious data entry, the person only reviews and confirms, and because the recipient opens a document that is already filled in (not a blank form) completion rates stay high. The data-residency guarantee is what makes this distinctive: **the field values never reach SimplePDF**. The agent writes the prefill data directly to the customer's own storage (S3, Azure Blob Storage, or SharePoint); the SimplePDF API only ever handles identifiers and links. When the recipient opens the link, the editor reads the values straight from the customer's storage. Sensitive data (PII, PHI) stays entirely inside the customer's environment, which is what makes the pattern viable for HIPAA, GDPR, and data-residency requirements — an AI agent can pre-fill regulated documents without that data ever transiting a third party. How it works: call `GET /documents/{id}/fields` for the field schema, `POST /documents/{id}/prefills` to create a prefill, PUT the values blob (`{ "fields": [{ "id", "value" }] }`) directly to your own storage, then share the returned `embed_url`. The recipient reviews and submits. Any HTTP client works — an AI agent, a backend job, or a workflow automation. Requires a plan with API access and your own storage configured. Guide: https://simplepdf.com/help/how-to/prefill-pdf-forms-with-ai-agents API reference (OpenAPI spec): https://simplepdf.com/api/json ### Submission data export - Structured form data out, with the same data-residency guarantee The output counterpart to the Prefill API. When a person submits a document, SimplePDF exports the answers as a machine-readable JSON blob, so you never have to parse the filled PDF to read what was entered. The blob covers every field the recipient filled, whether it is a field built into the PDF (a native AcroForm field) or a field added on top of the document in SimplePDF, each entry carrying its `id`, its curated `name`, and the submitted `value`. Because the fields on a document are stable and you control how each one is named, mapping submission data to your own system is a one-time setup that then runs unchanged for every future submission. The same data-residency guarantee applies: **the field values never reach SimplePDF**. The blob is assembled in the browser and written directly to the customer's own storage (S3, Azure Blob Storage, or SharePoint; SimplePDF storage for non-BYOS tenants); the webhook and API only ever carry a short-lived link to it, never the values. One deliberate, opt-in exception: **submission names**. An owner can mark one field as the submission name, and that single field's value is then stored on SimplePDF servers (even for BYOS tenants) so it can label the submission in the dashboard, the notification email, and the downloaded filename, and is exposed as `name` on the REST submission endpoints. It is off by default and owner-configured; for regulated data, name submissions from a non-sensitive field. Every other field value still follows the no-values-to-server guarantee above. For a person rather than a system, the same structured data can be downloaded from the dashboard as a CSV or Excel file — one submission at a time, or every submission for a document at once. The file is built in the browser from the blob (signature and image fields become a placeholder, not raw data), so the field values do not transit the SimplePDF application server to produce the download. When a submission is named, its name rides along as a column. The blob shape is `{ "fields": [{ "id", "name", "value" }] }` and remains a valid Prefill API input (the prefill reader keys by `id` + `value` and ignores `name`), so a submission round-trips cleanly: its data feeds straight back as a prefill, and it maps field-by-field into a labeled schema such as a FHIR QuestionnaireResponse. `name` is the same curated name `GET /documents/{id}/fields` reports (null for an unnamed overlay field); call `/fields` when you also need each field's type or page. How it works: the `submission.created` webhook payload carries a short-lived `field_data_url` next to the filled-PDF `url`; or call `GET /documents/{id}/submissions/{id}` for a freshly minted `field_data_url` once the webhook link has expired. `field_data_url` is `null` for submissions captured before the feature shipped. The webhook needs the Basic plan; the read API needs a plan with API access. Guide: https://simplepdf.com/help/how-to/configure-webhooks-pdf-form-submissions ## 3. Use Cases - **Individuals**: Signing rental agreements, completing tax forms, or annotating research PDFs. - **Healthcare**: SimplePDF processes healthcare PDFs entirely in the browser, without uploading PHI to external servers. Used by healthcare platforms and EHR vendors to embed document workflows directly into their products. Completed documents are written from the browser straight into customer-controlled storage (S3-compatible including AWS S3 and Scaleway, Azure Blob Storage, or SharePoint); a webhook notifies your backend. For French and European healthcare teams, SimplePDF works with Scaleway Object Storage and other HDS-certified providers, keeping finalized patient documents in an EU bucket you control and reducing dependency on US-hosted storage. See https://simplepdf.com/use-cases/healthcare and https://simplepdf.com/storage/scaleway - **Insurance**: Policyholders upload and sign claim forms, submissions routed to dashboard or customer-controlled storage. - **Legal**: Clients return signed agreements and supporting documents without printing, scanning, or faxing. - **HR and Onboarding**: New hires complete employment forms before their first day. - **Businesses**: Embedding PDF editors in client portals for contract edits, or automating onboarding with form submissions. - **Developers**: Adding PDF editing to e-commerce sites for custom invoices, or creating interactive educational tools with annotated PDFs. ## 4. Security, Privacy, and HIPAA Compliance [SimplePDF Privacy Policy](https://simplepdf.com/privacy-policy) Privacy is one of the key distinctive features of SimplePDF: - There is no third-party cookie tracking - The document that users load and fill does not get sent to the server. For business users, the upload mechanism works so that the PDF is not seen by the server, only secure one-time upload and download links are used. - SimplePDF supports HIPAA-compliant workflows in the free editor (fully in-browser: PHI never reaches SimplePDF) and on Pro plans and above, where bring-your-own-storage delivers the strongest HIPAA posture: documents land directly in customer-controlled storage and SimplePDF only ever handles metadata. The Basic plan stores submissions on SimplePDF-managed storage, so HIPAA workflows should use the free editor or Pro and above - All plans, and the free editor, are GDPR compliant **HIPAA Compliance Architecture:** SimplePDF achieves HIPAA compliance through the following architectural decisions: 1. **Client-side processing**: PDF documents are processed entirely in the browser. The PDF content never leaves the user's device during editing. 2. **No server-side document storage in the free editor**: the document is never sent to a server: the PDF is loaded and processed locally in the browser. With bring-your-own-storage configured (Pro and above), completed documents go straight from the browser to customer-controlled storage and SimplePDF only handles metadata. Without BYOS (the Basic plan, or a BYOS-eligible plan left unconfigured), submitted documents are stored in SimplePDF-managed storage. **Exception — Copilot voice input**: client-side processing applies to PDF editing. The optional voice-dictation feature in SimplePDF Copilot is different: when a user explicitly records audio, that clip leaves the browser on one of two disclosed routes. On the demo route, the audio is uploaded to SimplePDF's server and forwarded to OpenAI for transcription, then discarded (no audio retained, no transcript text logged by SimplePDF). On the BYOK route, the audio is sent directly from the browser to the user's chosen provider (OpenAI or a custom endpoint) and never reaches SimplePDF — SimplePDF makes no retention claim for user-selected providers. Voice is opt-in, disclosed before recording, and not part of the on-device PDF editing path. 3. **Secure transmission for business tier**: When business users submit documents: - Documents are encrypted in transit using TLS 1.2+ - One-time signed URLs are used for uploads/downloads - Documents can be stored in customer's own S3-compatible storage, Azure Blob Storage, or SharePoint (BYOS) 4. **Data minimization**: SimplePDF collects only essential metadata (submission timestamps, field names) and does not access document content on the server. 5. **Access controls**: Business accounts support multiple admin users with role-based access to submissions. Sign-in is password-free: a one-time code sent by email, or Google authentication — SimplePDF stores no passwords either way, and keeps no Google tokens. **For healthcare applications**: To maintain HIPAA compliance, configure SimplePDF with: - Bring Your Own Storage to keep PHI in your controlled environment - Webhook notifications to your HIPAA-compliant backend for processing - Keep a BYOS-eligible plan active with BYOS configured, so completed documents never land on SimplePDF-hosted storage ## 5. Pricing SimplePDF is completely free for individuals, no signup required and no limits. For businesses, SimplePDF offers 3 plans. Every plan starts with a free 7-day trial. **Basic**: $99/month ($990/year) for businesses getting started Replaces tools like Adobe, PDFFiller, and manual workflows Includes up to 2,500 documents and submissions per month, combined (under 4¢ per document at full plan volume) _Includes:_ - Unlimited number of end users and documents - Dashboard (5 seats) - Email notifications - Webhook notifications - Embed SimplePDF into your app - Advanced form field management (required fields, default values, read-only) A note on HIPAA: Basic submissions are stored on SimplePDF-managed storage, so for HIPAA workflows use the free in-browser editor or Pro and above, where bring-your-own-storage keeps documents in your controlled environment end to end. **Pro:** $349/month ($3,490/year) for businesses embedding PDF workflows into their product or internal tools, with customization, white-label branding, and customer-controlled storage (BYOS) Replaces tools like DocuSign, Anvil, and manual workflows Includes up to 20,000 documents and submissions per month, combined (under 2¢ per document at full plan volume) _Everything in the Basic plan plus:_ - Dashboard (25 seats) - Branded PDF editor (with white-labelling) - Bring your own storage: S3-compatible storage and Azure Blob Storage (the third option, SharePoint, is Premium) - HIPAA compliant: bring your own storage keeps PHI entirely in your controlled environment (SimplePDF only handles metadata) - Role-based Access (RBAC) **Premium:** $899/month ($8,990/year) for businesses that need API access, custom storage, priority support, and hands-on support Replaces tools like Apryse, Nutrient, and Foxit Includes up to 75,000 documents and submissions per month, combined (under 2¢ per document at full plan volume). Custom Scale and Enterprise contracts cover up to 2 million per month and beyond _Everything in the Pro plan plus:_ - Dashboard (250 seats) - API access - Bring your own storage: SharePoint - Audit logs: every dashboard sign-in, configuration change, document edit, submission (create + delete + download + bulk export), member change, webhook update, storage configuration change, and API key lifecycle event is recorded with the actor (member, API key, external party, or system), timestamp, IP address, user agent, and structured details where relevant (a before / after diff for changes, a count for exports). Filterable by date / actor / action, exportable as CSV, retained for 365 days. Premium-plan only. - Priority support (24-hour response) **Quota model:** Documents and submissions count together toward the monthly cap. A document is any file added to storage; a submission is a completed and saved version of a form. Opening the same document multiple times only counts once. The quota resets at the start of each billing period; data retention does not affect the bill. We notify customers at 80% and 100%. Submissions in production are never blocked. Bring Your Own Storage (S3, Azure Blob Storage, SharePoint) does not change how the quota is measured: SimplePDF counts operations as they happen, never queries or audits customer bucket contents. Annual billing saves roughly 2 months versus monthly. **Price per document:** SimplePDF bills a flat monthly price, never per document. At full plan volume that works out to under 4¢ per document or submission on Basic, under 2¢ on Pro, and under 2¢ on Premium. For comparison, per-document APIs typically charge $0.10 or more per filled PDF and e-signature tools $1 or more per envelope. ## 6. Help Center Find step-by-step guides, FAQs, and integration tutorials to get the most out of SimplePDF: **Articles:** Frequently Asked Questions: - [Is the PDF editor free to use?](https://simplepdf.com/help/faq/is-pdf-editor-free-to-use): The editor is free, without signup - [Is SimplePDF HIPAA compliant?](https://simplepdf.com/help/faq/is-simplepdf-hipaa-compliant) - [What is SimplePDF Copilot?](https://simplepdf.com/help/faq/what-is-simplepdf-copilot) - [What's included in the SimplePDF Basic plan?](https://simplepdf.com/help/faq/whats-included-in-basic): The Basic plan: turn PDFs into fillable forms, share or embed them, and collect submissions via dashboard, email, or webhook - [What's included in the SimplePDF Pro plan?](https://simplepdf.com/help/faq/whats-included-in-pro): The Pro plan: embed the editor with one line of code, white-label from the dashboard, lock signed documents, drive everything programmatically, and bring your own storage - [What's included in the SimplePDF Premium plan?](https://simplepdf.com/help/faq/whats-included-in-premium): The Premium plan: REST API, audit logs, SharePoint storage, and 250 seats for regulated workflows at scale - [How to edit a PDF](https://simplepdf.com/help/faq/how-to-edit-pdf) - [How to merge PDF files](https://simplepdf.com/help/faq/how-to-merge-pdf) - [How to delete pages](https://simplepdf.com/help/faq/how-to-delete-pages) - [How to rotate pages](https://simplepdf.com/help/faq/how-to-rotate-pages) - [How to add text](https://simplepdf.com/help/faq/how-to-add-text-to-pdf) - [How to add checkboxes](https://simplepdf.com/help/faq/how-to-add-checkbox-to-pdf) - [How to add signatures](https://simplepdf.com/help/faq/how-to-add-signature-to-pdf) - [How to add pictures](https://simplepdf.com/help/faq/how-to-add-picture-to-pdf) - [How to white out text](https://simplepdf.com/help/faq/how-to-add-background) - [How to copy fields](https://simplepdf.com/help/faq/how-to-copy-fields) - [A PDF editor, a PDF annotator or a PDF filler?](https://simplepdf.com/help/faq/is-simplepdf-a-pdf-editor-pdf-annotator-or-pdf-filler) - [How SimplePDF can help your business](https://simplepdf.com/help/faq/how-can-simplepdf-help-your-business) - [Turn an image (JPG, PNG, HEIC) into a PDF](https://simplepdf.com/help/faq/convert-image-to-pdf) How To: - [Turn any PDF into a fillable form and collect the answers](https://simplepdf.com/help/how-to/convert-pdf-to-fillable-form): upload a PDF, let the browser-based AI detect and name the fields (even on flat or scanned PDFs), share or embed the link, and collect every submission as CSV/Excel, on a webhook, or from the API - [Convert a PDF to Markdown for AI](https://simplepdf.com/help/how-to/convert-pdf-to-markdown-for-ai): extract any PDF as clean Markdown (headings, lists, tables) to feed LLMs with fewer tokens and clearer structure, entirely client-side — the document is not uploaded - [Customize the editor and add your own branding](https://simplepdf.com/help/how-to/customize-the-pdf-editor-and-add-branding) - [Customize the submission confirmation](https://simplepdf.com/help/how-to/customize-the-submission-confirmation) - [Save edited PDF submissions to Supabase](https://simplepdf.com/help/how-to/save-edited-pdf-form-submissions-to-supabase) - [Get email notifications on PDF form submissions](https://simplepdf.com/help/how-to/get-email-notifications-for-pdf-form-submissions) - [Configure your own S3 bucket for PDF form submissions](https://simplepdf.com/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions) - [Configure your own Azure Blob Storage for PDF form submissions](https://simplepdf.com/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage) - [Configure Webhooks to get notified of new PDF form submissions](https://simplepdf.com/help/how-to/configure-webhooks-pdf-form-submissions) - [Save the PDF submissions to your Bubble Database using Bubble workflows](https://simplepdf.com/help/how-to/save-submissions-in-your-bubble-database-using-bubble-workflows) - [Connect SimplePDF with Activepieces to automate your PDF forms processing](https://simplepdf.com/help/how-to/connect-simplepdf-with-activepieces-to-automate-your-pdf-forms-processing) - [Use the Robocorp integration to leverage AI in your IDP workflow](https://simplepdf.com/help/how-to/use-the-robocorp-integration-to-leverage-ai-in-your-intelligent-document-processing-workflow) - [Add the embed PDF editor to a Next.js App](https://simplepdf.com/help/how-to/add-simple-pdf-editor-to-react-next-app) - [View and edit PDF in Excalidraw](https://simplepdf.com/help/how-to/edit-pdf-with-excalidraw) - [Add required fields on PDF forms](https://simplepdf.com/help/how-to/add-required-fields-on-pdf-forms) - [How to self-host SimplePDF Copilot](https://simplepdf.com/help/how-to/self-host-simplepdf-copilot) - [Monitor team activity with SimplePDF audit logs](https://simplepdf.com/help/how-to/monitor-team-activity-with-audit-logs) ## 7. For Developers **SimplePDF provides a set of SDKs to integrate the editor with a single line of code in one's website.** The Embed SDK is ~5KB gzipped and MIT licensed. It wraps an iframe that lazy-loads SimplePDF on demand, so users download nothing until they interact. The Github repository that contains examples and SDKs (including the Chrome extension code) can be found here: [SimplePDF embed on Github](https://github.com/SimplePDF/simplepdf-embed) Integrating SimplePDF with one's website does not require any account: the embedded editor is free to use (collecting submissions follows the plan quotas in the Pricing section). The following features require an account on the named plan: - [Webhooks integration](https://simplepdf.com/help/how-to/configure-webhooks-pdf-form-submissions) (Basic plan and above) - Bring your own storage: [S3-compatible](https://simplepdf.com/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions) including AWS S3 and [Scaleway Object Storage](https://simplepdf.com/storage/scaleway) or [Azure Blob Storage](https://simplepdf.com/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage) (Pro plan and above), [SharePoint](https://simplepdf.com/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions) (Premium plan) - [Custom branding](https://simplepdf.com/help/how-to/customize-the-pdf-editor-and-add-branding): logo, loading, hiding fields and headless mode (Pro plan and above) - Programmatic control of the editor via the [Iframe API](https://github.com/SimplePDF/simplepdf-embed/blob/main/documentation/IFRAME.md) and [React EmbedPDF component](https://github.com/SimplePDF/simplepdf-embed/tree/main/react), including agentic LLM tool-calling with the Vercel AI SDK and TanStack AI (available on all plans; certain capabilities are plan-gated) - [REST API](https://simplepdf.com/api) ([OpenAPI spec](https://simplepdf.com/api/json)) for programmatic operations (Premium plan) **Integration Methods:** - [Iframe bridge](https://github.com/SimplePDF/simplepdf-embed/tree/main/embed): `@simplepdf/embed` — control the editor programmatically and listen to editor events - [React Component](https://www.npmjs.com/package/@simplepdf/react-embed-pdf): `@simplepdf/react-embed-pdf` - [Agentic / LLM tool-calling](https://github.com/SimplePDF/simplepdf-embed/tree/main/embed): drive the editor from an LLM via the `/ai-sdk` (Vercel AI SDK) and `/tanstack-ai` (TanStack AI) adapters in `@simplepdf/embed` and `@simplepdf/react-embed-pdf`: one SDK-agnostic tool registry, executed client-side against the live editor - [Vanilla JS Script Tag](https://www.npmjs.com/package/@simplepdf/web-embed-pdf): `@simplepdf/web-embed-pdf` - [Plain Iframe](https://github.com/SimplePDF/simplepdf-embed/blob/main/documentation/IFRAME.md) - [WordPress Plugin](https://wordpress.org/plugins/simplepdf-embed/) - [Bubble.io Plugin](https://bubble.io/plugin/pdf-editor-and-filler-1673591701449x899138091362287600) **Integration Examples:** - [Iframe example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-iframe) - [Script example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-script-tag) - [Supabase example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-supabase) - [Webhooks example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/webhooks) - [Remix example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-remix) - [Next.JS example](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-next-js) ## 8. Socials **The social media websites where SimplePDF has a presence:** - [Discord Community](https://discord.gg/n6M8jb5GEP) - [Facebook](https://facebook.com/simplepdfcom) - [Github](https://github.com/SimplePDF/simplepdf-embed) - [LinkedIn](https://ee.linkedin.com/company/simplepdf) - [Reddit Community](https://reddit.com/r/simplepdf/) - [X (Twitter)](https://x.com/simple_pdf) - [YouTube](https://www.youtube.com/@simplePDFcom) --- # How to turn an image into a PDF with SimplePDF A photo of a signed form, a scanned receipt, or a screenshot is often the only copy you have, but most tools expect a PDF. SimplePDF turns a JPG, PNG, or HEIC image into a PDF page right in your browser, so every image lands on a clean page you can keep editing. ## Turn an image into a PDF page 1. Open the [SimplePDF editor](/editor). 2. Select your image from your device (or drag it onto the editor). JPG, PNG, and HEIC are all supported. 3. The image is placed and centered on a fresh blank page, which takes portrait or landscape to match the shape of your image. 4. Download the document - your image is now a PDF, ready to use wherever you need it. Add another image before you download and it lands on its own page, so a stack of photos or scans becomes one multi-page PDF. ## Adjust the image and the page The image sits on the page as a picture you can edit directly, and the page follows along: - **Move and resize** the image anywhere on the page. It keeps its proportions while you resize. - **Rotate** the image 90 degrees, or rotate the whole page, when a photo comes in sideways. - **Copy** the picture to place it more than once. - **Replace** it with another image by selecting the picture and choosing a new file. You can also keep editing the page like any other: fill in fields, sign it, or add notes on top of the image. ## Add more images or pages Build the document up one image at a time, or drop an image into a PDF you are already working on: 1. Load or create your PDF in the [editor](/editor). 2. Select the **+** button to add a page and choose your image. 3. Each image is appended as its own page, fitted and centered, ready to edit. When you are done, save the document and you have a single PDF holding every image, each on its own page. ## Add fields on top of an image A photo of a form is not much use until you can fill it in. Once you have turned it into a PDF with the steps above, open that PDF back in the [editor](/editor) and add fields on top of it like any other document. Add text, checkboxes, or a signature where the form needs them, then download the filled copy. It is the quickest way to complete a paper form you only have as a photo, no printing required. ## Your image stays on your device This runs entirely in your browser - the image is turned into a PDF page on your device, not sent to a server to do it. The finished PDF stays with you until you choose to download or submit it. HEIC photos are decoded locally too, so an iPhone photo works the same way as a JPG or PNG. **That's it! Your images are now a PDF you can edit, sign, and download - all without leaving your browser.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How can SimplePDF help your business Turning paper forms into online forms can be expensive, but the SimplePDF editor makes it easy to turn PDF forms into online forms in seconds AND getting notified every time there is a new submission from your customers or partners. Automating and processing your paperwork and data can be this easy! ## SimplePDF makes it easy to turn paper forms (PDF) into online forms How does the SimplePDF editor work? The approach is very simple - the PDF form does not change (it still looks the same), yet it is enhanced with online form capabilities: you get the best of both worlds. This way your customers can easily fill out your PDF forms straight from your website and you get to process and automate the data they have given you. ### It does not require any technical knowledge Turning a PDF form into a online form only takes a few minutes, saving you a lot of time. If your PDF form was already interactive, it in fact takes only seconds. If your PDF form is not yet interactive, you only need to position the fields wherever they need to be positioned. A name is required? Just put a text field where the name needs to be filled-in. A picture is needed? Use the picture field. A signature? The signature field. You get it: there's a ready-made field for every part of your PDF form. ### SimplePDF online forms are PDF forms with super powers Because SimplePDF editor does not change the look and feel of your PDF form, your customers will not be confused. It will be the same PDF form as before, except that they will now use a computer or phone to fill it in and all this can be done without leaving your website. ## Save everyone's time Before SimplePDF editor the usual flow for filling in a PDF form looked like this: - **1.** Customers download the PDF form from your website - **2.** They look for a way to fill the form, which can be costly both money and time wise - meaning you probably lose some clients during this step. - **3.** They look for a way to send the filled-in form back to you (usually via email) which creates more work for you. **Now by using SimplePDF editor, there is just one step:** - **1.** By adding the [PDF editor to your website](/embed), your clients can fill the PDF form fast and easy without leaving your website. The filled-in PDF form is then automatically sent to you and you get notified about it (via email and / or the other integrations) **That's it! SimplePDF turns your existing PDF forms into online forms your customers can fill from anywhere.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to white out text on a PDF with SimplePDF Sometimes you need to cover existing text on a PDF before adding your own content on top. SimplePDF lets you add a white background to any field, effectively whiting out whatever is underneath. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the field of your choice: all fields support adding a background 4. Click anywhere on the document to add the field 5. Click on the change background icon as visible on the picture below 6. The field now has a white background as visible on the picture 7. Make additional changes if needed 8. Click the Download button This is useful when you need to correct pre-filled information, replace outdated text, or blank out a section before adding new content. Combine it with a text field to effectively replace existing text on any PDF. **That's it! The text has been covered and your document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add checkboxes to PDFs with SimplePDF Checkboxes are essential for agreements, checklists, consent forms, and any document where you need to mark a selection. SimplePDF lets you add them to any PDF in just a few clicks. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the checkbox tool 4. Click anywhere on the document to add the checkbox field 5. Click on the checkbox once or twice to get two different variations 6. Click the Download button SimplePDF offers two checkbox styles: a checkmark and a cross. Click the checkbox once to toggle to a checkmark, and click again to switch to a cross. This gives you flexibility depending on whether you are marking items as complete, confirming agreement, or indicating a selection on a form. You can place as many checkboxes as you need across the document, making it easy to fill out multi-item checklists or forms with several yes/no questions. **That's it! Your checkboxes have been added and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add pictures to PDFs with SimplePDF Need to add a photo, company logo, or stamp to a PDF? SimplePDF lets you insert and position images on any page of your document directly from your browser. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the picture tool 4. Click anywhere on the document to add the picture field 5. Click on the field to open up the picture picker and select the picture to add 6. Click the Download button After inserting a picture, you can drag it to reposition it and resize it to fit the available space. This makes it easy to place ID photos in application forms, add company logos to official documents, or insert stamps and seals exactly where they need to go. You can add multiple pictures to the same document and place them on different pages, which is useful for documents that require both a photo and a signature or multiple attachments. **That's it! Your pictures have been added and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add signatures to PDFs with SimplePDF Signing a PDF should not require printing, scanning, or installing desktop software. With SimplePDF you can draw or type your signature directly on any PDF from your browser. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the signature tool 4. Click anywhere on the document to add the signature 5. Draw your signature: note that you can click the undo and redo buttons until your signature looks perfect! 6. Click the Download button SimplePDF supports both drawn and typed signatures. Drawing works with a mouse on desktop or touch input on mobile devices, giving you a natural signing experience. If you prefer a cleaner look, you can type your name instead. Once placed, you can drag the signature field to reposition it on the page. This is especially useful when signing contracts, NDAs, consent forms, or any document that requires your signature in a specific location. **That's it! Your signed PDF is ready and saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add text to PDFs with SimplePDF Whether you need to fill in a form, annotate a document, or add notes to a PDF, SimplePDF lets you place text anywhere on the page directly from your browser. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the text tool 4. Click anywhere on the document to add the text field 5. Fill in the value by typing in 6. Click the Download button Once placed, you can drag the text field to reposition it precisely where you need it. You can also resize the field to fit longer content or adjust its placement relative to existing text on the page. If you need to add text in multiple locations, simply repeat steps 4-5 for each new text field. This is especially useful when filling out PDF forms that are not yet interactive or when annotating contracts and reports. **That's it! Your text has been added and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to cancel your SimplePDF subscription You can cancel your subscription yourself, at any time, without contacting support. The fastest way is to [open your billing settings](/account/settings?view=billing) directly, or step by step: 1. Log in to your SimplePDF dashboard 2. Open **Account** in the sidebar 3. In the **Billing** section, click **Manage** 4. Click **Cancel subscription**, tell us why you're leaving - it genuinely helps us improve - and confirm Your plan stays fully active until the end of the period you already paid for, and you are not charged again after that. ## Cancelling during your free trial Every paid plan starts with a 7-day free trial, and cancelling during the trial means you are never charged. We also email you a reminder one day before the trial ends, so a forgotten trial never turns into a surprise charge. ## What happens after you cancel Your account, documents, and submissions stay in place - you move back to the [Free plan](/pricing) at the end of the billing period. If you upgrade again later, you pick up right where you left off. ## A "SimplePDF" charge you don't recognize? Fraudulent merchants have been misusing the SimplePDF name on bank and card statements. Legitimate SimplePDF charges only ever come from a subscription started in your own account dashboard, and always match the amounts listed on our [pricing page](/pricing). **We never charge $1.95.** Editing and downloading a PDF on simplepdf.com is free and never asks for a card. If the charge on your statement is $1.95, it is not from us: $1.95 is the 14-day trial price of PDFSimpli, an unrelated product with a similar name, and that trial converts into a recurring subscription unless cancelled. If you see a charge you don't recognize - or the amount doesn't match your plan: 1. Ask your bank for the actual merchant behind the charge - the name on a statement doesn't always match the company that placed it 2. Dispute the charges you didn't authorize and ask your bank to block future ones 3. Reach out to [support@simplepdf.com](mailto:support@simplepdf.com) and we'll help you get to the bottom of it **That's it! Your subscription is cancelled and you won't be charged again.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to copy fields with SimplePDF When you need the same field in multiple places on a document, copying saves time over creating each one from scratch. SimplePDF lets you duplicate any field type and paste it anywhere, including on other pages. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. Select the field of your choice: all fields can be copied 4. Click anywhere on the document to add the field 5. Click on the copy icon as visible on the picture below: the field is now highlighted 6. You can now copy the field anywhere on the document (including other pages) by clicking again 7. Make additional changes if needed 8. Click the Download button This works with all field types: text, checkboxes, signatures, and pictures. It is especially handy when building forms that repeat the same field layout across multiple pages. **That's it! Your fields have been copied and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to delete pages with SimplePDF PDFs often contain pages you do not need: blank pages, duplicate cover sheets, or sections that are irrelevant to your use case. SimplePDF lets you remove them in seconds. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. On the left side of the screen, click on the ✕ button located on the left of the page you want to delete 4. Click the Download button You can delete multiple pages in one session before downloading. This is handy when preparing documents for submission - for example, removing instruction pages from a form packet, stripping blank pages from a scanned document, or trimming a report down to only the sections you need to share. **That's it! The unwanted pages have been removed and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to edit PDFs with SimplePDF SimplePDF is a browser-based PDF editor that lets you modify any PDF document without installing software. Here is how to get started: 1. Navigate to the PDF editor over [here](/editor) and select a PDF 2. Select a field and click to position it on the document 3. Fill in the field details and click download SimplePDF gives you a full set of editing tools: - **[Text](/help/faq/how-to-add-text-to-pdf)**: add text anywhere on the document to fill forms, annotate, or add notes - **[Checkboxes](/help/faq/how-to-add-checkbox-to-pdf)**: mark selections with checkmarks or crosses - **[Signatures](/help/faq/how-to-add-signature-to-pdf)**: draw or type your signature directly on the PDF - **[Pictures](/help/faq/how-to-add-picture-to-pdf)**: insert photos, logos, or stamps - **[Backgrounds](/help/faq/how-to-add-background)**: white out existing text before adding your own - **[Merge](/help/faq/how-to-merge-pdf)**: combine multiple PDFs into a single document - **[Delete pages](/help/faq/how-to-delete-pages)**: remove unwanted pages - **[Rotate pages](/help/faq/how-to-rotate-pages)**: fix page orientation All processing happens in your browser - your documents never leave your device. Forms are not equally accessible to everyone: filling one out in a language you don't fully master, or when reading and writing are a struggle, can turn a simple document into a hurdle. [SimplePDF Copilot, the AI PDF editor](/copilot), guides you through it: describe what you need in the language you are comfortable with, and the AI finds the right fields, fills them in, and lets you review every change. **That's it! Select the tools you need, make your edits, and download the result.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to merge PDF files with SimplePDF Merging PDF files with SimplePDF takes only a couple of seconds: 1. Navigate to the PDF editor over [here](/editor) 2. Open the document either from your device 3. On the left side of the screen, click the big + button located after your document pages 4. Select a new document from your device 5. The pages of the selected document are automatically added 6. Optional: re-order the pages as you see fit 7. Click the Download button **That's it! Your PDFs have been merged into a single document and saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to rotate pages with SimplePDF Scanned documents and exported PDFs sometimes end up with pages in the wrong orientation. SimplePDF lets you rotate individual pages to fix this in one click. 1. Navigate to the PDF editor over [here](/editor) 2. Open the document from your device 3. On the left side of the screen, click on the button located on the left of the page you want to rotate 4. Click the Download button Each click rotates the page 90 degrees clockwise. This is especially useful when working with scanned documents where some pages came through sideways, or when you need to switch a page between portrait and landscape orientation. You can rotate as many pages as needed before downloading the final document. **That's it! Your pages have been rotated and the document is saved to your device.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # Is the SimplePDF editor free to use? ## Yes! [The PDF editor](/editor) is free to use for individuals and organisations without **any limits**. You do not need to create an account to use the PDF editor. There are no ads on SimplePDF nor any tracking. You can read more about it in our [Privacy Policy](/privacy-policy) ## How can SimplePDF be free? We strongly believe that basic PDF editing should be free for individuals: most people don't edit PDFs for fun, they _need_ to edit PDF for school or their everyday paperwork. To ensure that the PDF editor remains free for individuals, we offer a powerful set of paid features for organizations that use PDFs in their daily workflow. This covers the costs of maintaining and expanding the SimplePDF editor. Organization-specific features, like [converting any PDF into an online form](/portal) or [embedding a PDF editor on your website](/embed), are available with our [paid plans](/pricing). --- # Why We Built SimplePDF - The Origin Story **A bit of everything: filler, annotator, and editor.** ## How it started Four years ago, after countless frustrating hours searching for a way to fill out forms online (seriously, who hasn't Googled that?), I decided to take a good look at what was available. And it didn't exactly look good. **Most of the supposedly free tools** came with unpleasant surprises: - The **"by the way, it's not free" case**: you spend 30 minutes filling a document, and just as you click download, a "enter your credit card" popup ruins your day. - The **"do you like my watermark" case**: your carefully filled document now proudly boasts a watermark right in the middle of the screen. - The **"it's free but it doesn't work" case**: you want to fill your document, but the tool is so broken that it's practically useless. - The **"it was never free in the first place"** case: some websites let you edit for a small fee, but surprise! After 15 days, you're hit with a $50 charge. Sure, everyone needs to earn a living, and building software isn't cheap. **But what didn't sit right was the blatant misrepresentation of something as "free" when it wasn't**. That's just misleading and dishonest. ## Preview from Apple, my savior But then **I stumbled upon Preview from Apple, one of the best pieces of Software in my opinion** that does a wonderful job for most of the basic PDF operations. It does not _edit_ existing text, but it allows to rotate, merge, add text, pictures, signatures... **Why one of the best?** Because it's packed with features but you only discover them as you start using the software. And it's just _simple_, it's not bloated with features that only one person, every full moon, will be using (yes, some PDF editors have "emoji stamps" as a feature). **So naturally, once I had discovered Preview, I started using it.** And the more I used it, the more the simplicity grew on me. I took a second look to see what was _out there_, and Preview was still the _simplest_ and _best_ in my mind _simple_ PDF filler. **Then it hit me: I'm fortunate to have a Mac**, but what about those without one? **What about Windows users**, or **Linux users?** (_I know that there are plenty of tools on Windows and Linux, but none that are as simple as Preview_) That was my cue: let's build something as "Preview-like" as possible: no bells and whistles, just focus on delivering the features that 90% of users will need. The 10% remaining usually have very specific needs: - civil engineers and architects need to measure things in PDFs (I've heard that Bluebeam is great for that) - lawyers need to redact information or number each pages for easy reference (bates numbering) - etc... And I specifically did not want to cover these 10% remaining: SimplePDF was meant for the majority, with straightforward needs. ## Building SimplePDF: filler, annotator, editor **In that order!** I aimed to tackle the most significant pain point with PDFs: filling them. So, **I began by building a straightforward [form filler](/)...** Until I realized that most companies (and even countries) use non-fillable PDFs - mere prints or scans of a paper form, often created using Photoshop or equivalents (shoutout to Photopea, an excellent free alternative). **Enter the annotation part**: the ability to add text, pictures, signatures. With this, SimplePDF evolved into an [annotation tool](/). Then came cases where I needed to submit identification documents and bills, usually expected as attachments. That's when the idea of a "merge" feature struck me as something many would find useful. **And just like that, SimplePDF became the [all-in-one tool](/) it is today.** **I hope this all makes sense! If you have any questions, feel free to reach out!** --- # Is SimplePDF HIPAA compliant? **Yes.** Healthcare organizations handle sensitive patient data every day, from intake forms to prior authorizations. When choosing a PDF editor, HIPAA compliance matters. ## Processing: always in the browser SimplePDF processes all PDFs directly in your browser, on every plan. No document content is sent to SimplePDF servers during editing. ## Storage: depends on your plan Without Bring Your Own Storage, completed files are stored in SimplePDF storage. With [Bring Your Own Storage (BYOS)](/pricing), completed documents are uploaded directly from the browser to your own storage using presigned URLs. Nothing is stored by SimplePDF. BYOS supports [S3](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), and [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions). It is available starting from the [Pro plan](/pricing). ## Submission names and PHI Naming submissions is the one exception to browser-only processing. When you set a field as the submission name, that field's value is stored on SimplePDF servers, even with BYOS, and is included in the notification email when email notifications are on. For sensitive workflows, pick a non-PHI field as the name (an internal reference, a case number) or leave submissions unnamed. ## BAA A Business Associate Agreement is available upon request. Contact us to discuss your compliance requirements. ## Built for healthcare workflows SimplePDF is used by healthcare organizations for common workflows like patient intake forms, referral forms, prior authorizations, and insurance claims. You can [embed the editor](/embed) directly into your EHR or patient portal. Learn more on our [healthcare use case page](/use-cases/healthcare). **That's it! SimplePDF processes documents in the browser, and with BYOS, completed files go straight to your own storage.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # What is SimplePDF Copilot? **SimplePDF Copilot is an AI assistant for editing, filling, and reviewing PDFs.** You chat with a PDF and ask Copilot to fill form fields, find clauses, navigate pages, extract text, and prepare the document for download or submission. **Copilot does the busywork. You review every change and keep the final say.** ## Try the AI PDF editor demo The fastest way to understand SimplePDF Copilot is to try it on a real PDF form. [Try the SimplePDF Copilot demo →](https://copilot.simplepdf.com/?form=w4&lang=en) ## How SimplePDF Copilot works
  1. Ask Copilot to fill the PDF form

    Copilot writes into the fields in real time, while you watch.

  2. Review every value

    Click any field to correct it. Copilot leaves fields that need a person, like signatures and attestations, for you to handle.

  3. Approve the final document

    Nothing is submitted until you approve it.

## Two risks with AI form filling Many AI form fillers create two practical risks. **The first is silent automation**: a wrong field can break something downstream if no one reviews it. A miskeyed digit on a tax form. A flipped checkbox on a medical intake. A clause accepted without anyone reading it. **The second is data flow**: the document, the AI traffic, and the completed file may all run through the vendor's cloud and the vendor's AI. For healthcare, legal, financial, and government workflows, that can be a non-starter. **SimplePDF Copilot is designed around review and controlled data flow.** ## The human stays in the loop Copilot proposes values, highlights clauses worth a second look, and hands off fields that should not be auto-filled, like signatures and attestations. You review, correct, and approve the document. You also decide whether Copilot is allowed to submit the final document at all. Copilot can remove much of the repetitive work, but **the human approves the document**. ## How data flows This matters most for regulated workflows. - **The document is edited in the browser.** During editing, the PDF is processed client-side instead of being uploaded to SimplePDF servers. - **Bring your own AI.** Plug Copilot into the AI route you control. With a cloud provider like Anthropic, OpenAI, Google Gemini, or Mistral, the chat traffic and the document context the model needs flow through that provider under your account. With a local model running on the user's machine, such as Ollama, LM Studio, or any OpenAI-compatible local endpoint, AI traffic can stay on the device. - **Voice input is opt-in.** Dictating into the chat is the one feature that sends audio out of the browser, and only when you confirm a recording. On the hosted demo, the clip is sent to the SimplePDF server, which forwards it to OpenAI for transcription and keeps no audio. With your own speech-to-text provider configured, the clip goes directly from the browser to that provider, without touching SimplePDF. The PDF itself stays in the browser either way. - **Bring your own storage.** Completed documents can go directly from the browser to your [S3 bucket](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), or [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions). - **Self-host the Copilot app.** Copilot is a [MIT-licensed reference implementation](https://github.com/SimplePDF/simplepdf-embed/tree/main/copilot). You can deploy the chat app in your own infrastructure and wire it to your AI provider, your tools, and your storage. The SimplePDF editor itself remains a hosted service. Running Copilot on your own domain requires a [Pro plan](/pricing) that includes white-labeling and programmatic editor control. For healthcare, this also makes SimplePDF Copilot easy to fit into a [HIPAA-aligned workflow](/help/faq/is-simplepdf-hipaa-compliant). ## What you can use SimplePDF Copilot for - **Jargon-heavy forms.** Copilot explains fields and terminology before you fill them. Example: "What is a withholding allowance?" - **Contract review and signing.** Copilot can read the document, flag clauses worth a second look, and help you review fees, deadlines, renewals, and liability language before signature. - **AI-driven form completion with a human reviewer.** Give Copilot structured data, such as a CSV or internal records, and let it pre-fill the document while a reviewer checks the result. - **Conversational form completion.** Treat the form as a conversation instead of clicking through a multi-page document field by field. - **Dictate instead of typing.** Record your request with the microphone in the chat. Copilot transcribes the recording and places the editable text in the chat so you can review it before sending. - **Internal knowledge integration.** Connect MCP servers or RAG pipelines so Copilot can use your company data to help fill documents. - **Local AI for sensitive workflows.** Plug Copilot into a model running on the user's device so AI traffic can stay local. ## Run Copilot yourself The Copilot app is MIT-licensed and lives in the public [simplepdf-embed](https://github.com/SimplePDF/simplepdf-embed/tree/main/copilot) repository. See [how to self-host SimplePDF Copilot](/help/how-to/self-host-simplepdf-copilot) for the full walkthrough, or use the [fork-and-go agent skill](https://github.com/SimplePDF/simplepdf-embed/blob/main/copilot/skills/fork-and-go/SKILL.md) to guide an AI coding assistant through forking the repo and tailoring it to your stack. ## What SimplePDF Copilot does not do Copilot speeds up PDF form work, but it does not replace human review. - **It does not replace professional advice.** For legal, medical, tax, or compliance documents, you or a qualified reviewer should read the proposed changes before signing or submitting. - **It does not silently submit forms.** You decide whether Copilot is allowed to submit the final document. - **It does not make OCR or field detection perfect.** Review detected fields and extracted text, especially on scanned, rotated, handwritten, or low-quality PDFs. - **It does not make cloud AI local.** If your configured AI route is a cloud provider, that provider receives the chat traffic and document context needed by the model. Local models can keep AI traffic on the device. - **It does not certify compliance by itself.** HIPAA-aligned and compliance-aligned workflows still require the right storage configuration, access controls, agreements, policies, and internal review. ## Pricing The hosted Copilot experience relies on programmatic field control and white-labeling, both available on the [Pro plan](/pricing) and above. The MIT-licensed Copilot app is free to self-host, but the SimplePDF editor it embeds remains a hosted service and requires a Pro plan to run on your own domain. **That's it! SimplePDF Copilot lets AI handle the repetitive work while you stay in control of the document, the data flow, and the final submission.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # What's included in the SimplePDF Basic plan? **The Basic plan turns SimplePDF into a workflow product.** Take any PDF, configure the fields you need filled, share or embed the form anywhere, and watch submissions land in your dashboard, your inbox, or your own systems. Editing PDFs in the browser is and stays [free](/help/faq/is-pdf-editor-free-to-use). The Basic plan is for teams who need to collect what people fill in, route it where it belongs, and manage it at scale. ## Build forms people can actually complete, fast Upload any PDF from your device. **SimplePDF automatically detects dozens of form fields in seconds, including on scanned documents,** and lets you drop new ones anywhere on the page: text, checkbox, signature, date, dropdown. Each field can be configured for the way the form is meant to be used: - **Required**: the form cannot be submitted until it is filled. Useful for IDs, signature blocks, and attestations. - **Default value**: pre-fill the field for whoever opens the document. Useful for the date, a project reference, or any value the recipient should see filled in already. - **Read-only**: the field renders as part of the document and cannot be changed. Useful when you have already signed the contract on your end and only need the counterparty's signature. See the full guide on [required, default, and read-only fields](/help/how-to/add-required-fields-on-pdf-forms). ## Share a link or embed the form on your site Once the form is ready, share it the way that fits the workflow: - **Direct link**: copy a URL and send it by email, SMS, or any messaging tool. Recipients open it in the browser. No login needed. - **Embed on your app or website**: drop the editor inside your own product or marketing site so the document is filled without leaving your domain. For embedding, SimplePDF ships with first-party integrations for the most common stacks: - [React component](/integrations/react) - WordPress plugin - Bubble plugin - Chrome extension - Vanilla JS / script tag - Iframe Browse them all on the [integrations page](/integrations). ## Prevent the editor from being accessed from untrusted websites When you embed SimplePDF in your app, you control which origins can communicate with the editor. Your dashboard automatically detects every origin that has loaded your editor, and you decide which ones to whitelist. **Once you whitelist any origin, every non-whitelisted origin is blocked from sending commands or receiving events from the editor.** For teams running SimplePDF inside a customer-facing product or an internal tool, this prevents anyone else from copying your embed snippet onto a third-party site and driving the editor under your account. ## Every submission lands in your dashboard The moment someone fills a form, the submission appears in your SimplePDF dashboard. Open it to see the values, download the filled PDF, or hand it to a teammate. The Basic plan removes the visible-submissions cap from the free tier. You keep every submission, no matter how many forms you process. Name your submissions so you can tell them apart at a glance. In the editor, turn on "Use as submission name" for one field and every submission takes that field's value as its name, or rename any submission yourself from its details panel. The name shows in the dashboard list, the notification email, and the downloaded filename. See [how to configure form fields](/help/how-to/add-required-fields-on-pdf-forms). ## Email notifications when forms come back Don't sit on the dashboard waiting for submissions. Pick the recipients, get the filled document in their inbox the moment a form is submitted. Useful for solo operators and small teams who want the document where their conversations already happen. See the [email notifications setup guide](/help/how-to/get-email-notifications-for-pdf-form-submissions). ## Webhook notifications for your own systems Fire an HTTPS request to any URL with the submission payload the moment a form is submitted. Plug it into N8N, Make, Zapier, or your own backend to trigger downstream automation: create a CRM record, push to a database, send a Slack message, kick off a contract. See the [webhook setup guide](/help/how-to/configure-webhooks-pdf-form-submissions). ## Organize hundreds of documents with tags Tags keep large document libraries searchable. Tag a document with a project, a client, a department, a year, then filter by tag to see only what you need. The Basic plan includes 50 tags, which covers most teams managing hundreds of documents across departments. ## Up to 5 admins share the workspace Bring up to 5 admins into the same workspace. Everyone sees the same documents, the same submissions, and the same tags. Useful when more than one person needs to handle the form library or follow up on submissions. ## Up to 2,500 documents and submissions per month The Basic plan includes a monthly quota of 2,500 documents and submissions combined. A document is any file added to storage; a submission is a completed form coming back to you. Opening the same document multiple times only counts once, so a single intake form filled by ten users counts as eleven units (one document plus ten submissions). At full plan volume the $99/month price works out to under 4¢ per document. Per-document APIs typically charge $0.10 or more per filled PDF, and e-signature tools $1 or more per envelope - SimplePDF bills a flat monthly price, never per document. The quota resets at the start of each billing period. If usage approaches the cap, we notify you at 80% and 100%. Submissions in production are never blocked. See the [pricing FAQ](/pricing) for the full quota mechanics. For higher volumes, [Pro](/help/faq/whats-included-in-pro) covers up to 20,000 per month (under 2¢ per document) and [Premium](/help/faq/whats-included-in-premium) up to 75,000 (under 2¢ per document). ## Start your trial Ready to turn your PDFs into a real workflow? [Start your 7-day free trial →](/pricing) **That's it! With the Basic plan, every PDF you create becomes a working form: fillable, shareable, embeddable, and connected to the systems your team already uses.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # What's included in the SimplePDF Premium plan? **The Premium plan is for companies operating at scale in heavily regulated environments.** Programmatic control over the full document lifecycle, audit trails for compliance, SharePoint storage, and 250 seats. Premium adds the integration depth and observability that regulated teams need to ship SimplePDF inside larger organizations. Premium also includes everything from the [Pro plan](/help/faq/whats-included-in-pro): - [One-line embed integration](/help/faq/whats-included-in-pro#embed-editor) - [Dashboard editor customization (logo, colors, hide tools)](/help/faq/whats-included-in-pro#white-label) - [Form flattening for permanent signed documents](/help/faq/whats-included-in-pro#form-flattening) - [Timestamped signatures](/help/faq/whats-included-in-pro#timestamped-signatures) - [Custom submission confirmation](/help/faq/whats-included-in-pro#submission-confirmation) - [Programmatic control with automatic field detection](/help/faq/whats-included-in-pro#programmatic-control) - [SimplePDF Copilot, the AI form filler](/help/faq/whats-included-in-pro#form-copilot) - [Bring Your Own Storage (S3 and Azure Blob Storage)](/help/faq/whats-included-in-pro#byos) - [Role-based access control](/help/faq/whats-included-in-pro#rbac) ## REST API for documents and submissions Premium opens up the full [SimplePDF REST API](/api), letting you manage documents and submissions programmatically from any backend. ## Audit logs for compliance Every dashboard sign-in, every configuration change, every team membership update, and every document modification is recorded with the actor, the timestamp, and the action. The audit log gives you a defensible trail for HIPAA, GDPR, and internal compliance reviews. See the [audit log guide](/help/how-to/monitor-team-activity-with-audit-logs) for the full event taxonomy, the CSV export format, the filters, and the retention window. For regulated industries where access to documents and submissions has to be traceable to a person and a moment in time. ## Bring Your Own Storage, including SharePoint Premium adds SharePoint as a [Bring Your Own Storage](/help/faq/whats-included-in-pro#byos) option on top of the S3-compatible and Azure Blob Storage already available on Pro: - [S3-compatible storage](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions): AWS S3, Cloudflare R2, Backblaze B2, Wasabi, MinIO - [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage) - [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage) - [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions) With SharePoint, documents and submissions land directly in your Microsoft 365 SharePoint document libraries, where the rest of your organization's files already live. For Microsoft-shop teams, this puts SimplePDF documents inside the same access controls, retention policies, and DLP rules that govern the rest of your tenant. See the [SharePoint storage setup guide](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions). Combine BYOS with the upload-only mode to limit SimplePDF's permissions to writing files, and with the API's PII prefill flow to keep regulated data out of SimplePDF entirely. ## Priority support Direct line to the team, faster turnaround on issues, and dedicated help with rollout, integration, and compliance review. For deployments where downtime or a delayed answer carries real cost. ## Up to 250 seats share the workspace Premium raises the workspace cap from 25 to 250 seats. Roll SimplePDF out across the whole organization without bumping into a license count. ## 5,000 tags for enterprise libraries 10x what the Pro plan offers. Enough to organize document libraries of hundreds of thousands of documents across customers, products, regions, and time periods. ## Up to 75,000 documents and submissions per month Premium raises the monthly quota from [20,000 on Pro](/help/faq/whats-included-in-pro#monthly-quota) to 75,000. Documents and submissions count together: opening the same document multiple times only counts once, so a single intake form filled by ten users counts as eleven units (one document plus ten submissions). At full plan volume the $899/month price works out to under 2¢ per document - a fraction of what per-envelope or per-API-call tools charge for the same volume. The quota resets at the start of each billing period. If usage approaches the cap, we notify you at 80% and 100%. Submissions in production are never blocked. See the [pricing FAQ](/pricing) for the full mechanics. For volumes above 75,000 per month, custom Scale and Enterprise contracts cover up to 2 million per month and beyond. [Talk to us](/contact?help=schedule_a_demo) for scoping. ## Everything in Pro, included Premium is cumulative. Embedded editor, white-label customization, form flattening, timestamped signatures, programmatic control, SimplePDF Copilot, role-based access control, and the rest of the [Pro plan](/help/faq/whats-included-in-pro) stay in scope. ## Talk to us Premium deployments usually start with a conversation about your environment, your compliance requirements, and the integration shape that fits your stack. [Schedule a demo →](/contact?help=schedule_a_demo) or [start your 7-day free trial](/pricing) if you want to explore the editor first. **That's it! With Premium, SimplePDF fits inside the storage, audit, and integration boundaries that regulated teams operate in.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # What's included in the SimplePDF Pro plan? **The Pro plan is for organizations that want SimplePDF to feel like part of their own product.** Embed the editor in your app, configure it to match your brand and your workflow, lock down what your users can do, and drive everything programmatically when you want to go further. Pro unlocks the white-labeling, automation, and AI features that production deployments need. Pro also includes everything from the [Basic plan](/help/faq/whats-included-in-basic): - [Fillable forms with required, default, and read-only fields](/help/faq/whats-included-in-basic#form-fields) - [Direct-link sharing or one-line embed integrations](/help/faq/whats-included-in-basic#embed) - [Submissions dashboard](/help/faq/whats-included-in-basic#submissions) - [Email notifications when forms come back](/help/faq/whats-included-in-basic#email-notifications) - [Webhook notifications for your own systems](/help/faq/whats-included-in-basic#webhooks) - [Tags to organize the document library](/help/faq/whats-included-in-basic#tags) - [Multiple admins in one workspace](/help/faq/whats-included-in-basic#admin-console) ## Embed the editor with one line of code Drop the editor inside your React app, your customer portal, or your marketing site. The whole flow lives inside your domain, your design, your navigation. No redirects, no popup, no second login. The same one-line story holds for vanilla JS, iframe, WordPress, Bubble, and Wix. See the full [integrations page](/integrations). ## Tweak the editor from your dashboard, not your codebase Pro turns the editor into a white-label component you reshape in a few clicks. No config files, no redeploy, no engineering ticket for each change. - **Hide tools you don't need.** If your users only sign and add text, hide the picture, checkbox, page-rotation, and merge tools. Your users see one clean surface focused on what they actually have to do. - **Add your own logo.** Replace the SimplePDF logo with yours. Position it top or bottom of the sidebar. - **Match your brand colors and loading animation.** The editor blends into your app instead of looking like an embedded third-party tool. See the full [editor customization guide](/help/how-to/customize-the-pdf-editor-and-add-branding). ## Lock signed documents with form flattening When form flattening is enabled, the values your users enter become permanent the moment the document is submitted. The fields are baked into the PDF, the document can no longer be edited, the values can no longer be changed. Critical for contracts, signed agreements, and any document that has to stand up to legal or compliance review later. ## Timestamped signatures Every signature can carry the moment it was placed: a `Signed on 2026-05-01 14:32:18 UTC` line stamped directly under the signature on the submitted document. No external timestamping service to integrate, no separate audit trail to maintain. For contracts, attestations, and regulated workflows where proof of when matters as much as proof of who. ## Tailor the submission confirmation When the user submits the document, the confirmation screen they see is yours to customize. Rewrite the copy to match your brand voice, add a call to action that redirects them to the next step in your flow (a thank-you page, a payment screen, the next form), or remove the confirmation entirely and render your own UI using the events the editor sends to your app. See the [submission confirmation guide](/help/how-to/customize-the-submission-confirmation). ## Drive the editor from your own code For deeper integrations, hide the SimplePDF interface entirely and run the editor with your own buttons, your own widgets, your own flow. Programmatic control gives you everything an end user can do, plus a few things they cannot. - **Open a document, navigate pages, select tools, submit**: all from a function call instead of a click. - **Listen for editor events**: know when the document is loaded, when a field is filled, when the user submits, and react in your own UI. - **Prefill fields from your data.** Pull from your CRM, your database, your last form, and write directly into the editor. - **Automatic field detection.** Upload a flat PDF and SimplePDF detects where the fields belong, no manual placement step. See the iframe API reference for the full event and command surface. ## SimplePDF Copilot, the AI form filler Pro unlocks [SimplePDF Copilot](/copilot), the AI assistant that fills, reviews, and helps your users complete PDFs by chatting with the document. Plug Copilot into the AI provider you control (Anthropic, OpenAI, Google, Mistral, or a local model) and run it on your own domain. See [what SimplePDF Copilot is](/help/faq/what-is-simplepdf-copilot) for the full breakdown. ## Bring your own storage Companies with strict data residency or storage policy requirements choose SimplePDF Bring Your Own Storage. Once configured, every document and every submission is uploaded directly from the user's browser to your own storage bucket instead of SimplePDF's. The files never land on SimplePDF servers. - [S3-compatible storage](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions): AWS S3, Cloudflare R2, Backblaze B2, Wasabi, MinIO - [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage) - [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage) - [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions) ([Premium](/help/faq/whats-included-in-premium#sharepoint)) For regulated industries, internal compliance policies, and any workflow where the document must stay inside your perimeter. For companies with even stricter rules, the dashboard exposes an **upload-only** mode: SimplePDF gains permission to write the documents and submissions to your storage but never to read them back. This narrows the trust boundary further but disables features that depend on SimplePDF reading the file later, such as sharing a stored document by link. ## Up to 25 seats share the workspace Pro raises the workspace cap from 5 to 25 seats. Bring product, support, ops, and engineering into the same SimplePDF account, all working off the same documents and submissions. ## Role-based access control Decide who in the workspace can do what. Pro splits the workspace into two roles: - **Admins** can manage billing, configure the editor, change branding, manage integrations, and invite or remove other team members. - **Members** can manage documents and view submissions, but cannot touch billing or editor configuration. Use this to keep day-to-day operators focused on documents and submissions while keeping account-level controls in the hands of the people responsible for the bill and the configuration. ## 500 tags for large document libraries 10x what the Basic plan offers. 500 tags is enough to organize tens of thousands of documents across products, customers, regions, and time periods. ## Up to 20,000 documents and submissions per month Pro raises the monthly quota from [2,500 on Basic](/help/faq/whats-included-in-basic#monthly-quota) to 20,000. Documents and submissions count together: opening the same document multiple times only counts once, so a single intake form filled by ten users counts as eleven units (one document plus ten submissions). At full plan volume the $349/month price works out to under 2¢ per document - a fraction of what per-envelope or per-API-call tools charge for the same volume. The quota resets at the start of each billing period. If usage approaches the cap, we notify you at 80% and 100%. Submissions in production are never blocked. See the [pricing FAQ](/pricing) for the full mechanics. For higher volumes, [Premium](/help/faq/whats-included-in-premium) covers up to 75,000 per month, and custom plans handle anything above. ## Everything in Basic, included Pro is cumulative. Forms, share-or-embed, dashboard submissions, email and webhook notifications, and the rest of the [Basic plan](/help/faq/whats-included-in-basic) stay in scope. ## Start your trial Ready to make SimplePDF feel like part of your product? [Start your 7-day free trial →](/pricing) or [schedule a demo](/contact?help=schedule_a_demo) to see how SimplePDF fits into your stack. **That's it! With Pro, the SimplePDF editor lives inside your app, looks like your app, and works the way your team needs it to.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add required fields to PDF forms with SimplePDF Incomplete submissions mean chasing people for the one field they skipped. SimplePDF lets you mark fields as required so a form cannot be submitted until they are filled, set default values to pre-fill known information, and lock fields read-only so they stay on the document without being changed. ## Configuring document fields in SimplePDF ### Required fields Open the `Documents` section and pick the document to edit, or create a new one. ![The SimplePDF Documents dashboard, where you open or create a document](https://cdn.simplepdf.com/simple-pdf/assets/help/required-fields/creating-or-updating-pdf-forms-in-simpledf.png) 1. Select the field you want to require. 2. Toggle `Required` on in the fields panel. 3. Click `Save`. ![Marking a PDF form field as required in the SimplePDF editor's fields panel](https://cdn.simplepdf.com/simple-pdf/assets/help/required-fields/configuring-required-fields-in-simplepdf.png) **The field is now required** and people have to fill it in before they can submit. _An example of a required field blocking submission:_ ![A required field blocking a PDF form submission until it is filled](https://cdn.simplepdf.com/simple-pdf/assets/help/required-fields/submitting-a-pdf-form-with-required-fields-in-simplepdf.png) ### Fields with default values Give a field a default value: select it, toggle `Default value`, and enter the value. When someone opens the form, that field is already filled in. #### Read only fields A field with a default value can also be marked `Read only`: its value appears as part of the document itself, indistinguishable from the rest of the content, and no one can edit it. Useful for information that should be shown but never changed. ![Setting a default value and marking a PDF form field read-only in the SimplePDF editor](https://cdn.simplepdf.com/simple-pdf/assets/help/required-fields/default-value-read-only-fields-simplepdf.png) ### Name your submissions from a field A dashboard full of submissions dated "12 Jun, 14:32" tells you nothing. Open the document's settings and, under `Submission name`, pick the field whose value should name each submission: any text, dropdown, or radio field works. A "Full name" field names each submission after the person who filled it; an invoice number names it after the invoice. ![Choosing which field names each submission in the SimplePDF document settings](https://cdn.simplepdf.com/simple-pdf/assets/help/required-fields/name-submission-from-field-simplepdf.png) The name shows up where you actually work: as the label in the submissions list, in the notification email, and as the downloaded file's name. It is a single choice per document, so naming stays predictable. You can also rename any individual submission from its details panel. Renaming can be used as a lightweight status tracker. When a submission feeds a downstream process, rename it as you work it: append `[processed]` once it is handled, and the list tells you at a glance what still needs attention. One thing to keep in mind: the chosen field's value is stored on SimplePDF servers, even with [Bring Your Own Storage](/pricing), and travels in the notification email. For sensitive data, name submissions from a non-confidential field (a reference number, a case ID) or leave them unnamed. **That's it! Your form fields are now configured with the right requirements for complete submissions.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to add the SimplePDF editor to your Next.js App [Next.js](https://nextjs.org/) has become a standard for developing React applications. So what better choice than Next.js to show you how to embed the SimplePDF editor into your own app. You can skip this tutorial and get straight to the code that is available in the [SimplePDF embed Github repository](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-next-js). ## Step 1: Setting up our project _If you already have a Next.js or React app running, you can go straight to the [Step 2: Adding SimplePDF Embed dependency to our project](#Adding-simplePDF-embed-dependency-to-our-project) or [Step 3: Adding the SimplePDF editor to our Next.js app](#Adding-the-simple-pdf-editor-to-our-next-js-app)_ **Let's start by using the Next.js CLI tool to interactively set up our project.** Run the following command in your terminal of choice and follow the steps. 1. Let's choose a name for our project: 2. At SimplePDF we really like Typescript, so we'll say "yes!" to the next step. _This is not a requirement, so no worries if you're not familiar with Typescript!_ 3. Let's also use [ESLint](https://eslint.org/) _Likewise, ESLint is not a requirement, so if you're not familiar with it, just say no_ 4. Time for our computer to do some work: fetching and installing the necessary dependencies _We're using yarn, so if you use npm for example, the message will be slightly different_ 5. Once successful, you should be greeted with this message: 6. Let's navigate to the folder 7. And start our project! 8. If everything went well, you should now see the following: Our server is up and running at the following URL: [http://localhost:3000](http://localhost:3000) **This is what you should see** _There might be some small differences depending on when you're following this tutorial_ ![Our project before adding SimplePDF embed](https://cdn.simplepdf.com/simple-pdf/assets/help/simple-pdf-embed-with-next-js-before) ## Step 2: Adding SimplePDF Embed dependency to our project _Prerequisite: a React (Next.js) app running locally - if you followed the previous step, you're all good!_ Confirming that we are at the right location: running the following command should list these files: **Let's start by adding [@simplepdf/react-embed-pdf](https://github.com/SimplePDF/simplepdf-embed/blob/main/react/README.md) to our project** 1. Install `@simplepdf/react-embed-pdf` Once installed, you should see the following message: _We're using yarn, so if you use npm for example, the message will be slightly different_ **Time to write some React code!** ## Step 3: Adding the SimplePDF editor to our Next.js app In this step we will learn how to add the SimplePDF editor component: **this component will allow us to open any PDFs from within our application.** **Let's start by opening the code of our app in our code editor of choice** - at SimplePDF we really like VScode 1. Let's clean up the room a bit by removing everything inside `main` and update the page title: _The code should now look like this:_
) } `} className={null} /> And our browser should display the following page: nothing! ![Adding the SimplePDF Editor starting point](https://cdn.simplepdf.com/simple-pdf/assets/help/simple-pdf-embed-with-next-js-clean-sheet) 2. Let's import the `EmbedPDF` component at the top of our file: 3. And add it to our code: _Note that you only need one child inside `EmbedPDF`. It can be any HTML element: `a`, `div`, `button`..._
Open SimplePDF!
`} className={null} /> The entire code should look as follows:
Open SimplePDF!
) }`} className={null} /> And our browser should display the following: a tiny "Open SimplePDF!" button! ## Step 4: What's next? SimplePDF Embed is really powerful and there's more for you to discover: - Open a specific document by specifying the URL of that document - Receive events whenever the document is loaded and the submission is sent - Add your own branding You can learn more about all of this in the [documentation on Github](https://github.com/SimplePDF/simplepdf-embed/blob/main/react/README.md). **We hope that you enjoyed this tutorial!** If you have any question or comment, feel free to let us know using the feedback button in bottom right side of your screen --- # How to configure your own Azure Blob Storage for PDF form submissions As an alternative to [AWS S3](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage), or [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions), you can use your Azure Blob Storage to store documents and filled documents. You may be interested in bringing your own storage (BYOS) for various reasons, such as such as **compliance** to specific rules in your country or industry or because you wish to retain full ownership over your data. ## How the upload works If you're interested in the overall upload mechanism and security-model, [head over here](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions#upload) where we cover this mechanism for the s3-compatible storage. The Azure Blob Storage works identically. The gist is that the upload mechanism happens on the client, with the server only exchanging upload and download links: this ensures that your documents do not ever transit via the SimplePDF servers. ## How to configure your own Azure Blob Storage _Configuring your own Azure Blob Storage is available with the [PRO plan](/pricing)_ ### In Azure In order to store documents on your Azure Blob Storage, we need to configure a container on your storage account to receive these documents. 1. Create (or choose) a `container` ![Azure Blob Storage containers view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-azure-blob-storage-containers.png) 2. Update the CORS configuration to allow both `GET` and `PUT` from `*` origins. _You can narrow it down to your own company portal if do not want to grant `*` origins: `https://your_identifier.simplepdf.com`_ ![Azure Blob Storage CORS view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-azure-blob-storage-cors.png) 3. Depending on your preferred way of authentication, you can either use **Access Keys** or **SAS authentication** > **Access Keys** authentication: retrieve the **Access Keys** for this container in the _Security + Networking > Access keys_ view of the storage account > ![Azure Blob Storage Access Credentials view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-azure-blob-storage-access-credentials.png) > **SAS Token** authentication: generate the **SAS** token to access the content of that container in the _Settings > Shared access tokens_ view of the container. > _We recommend you specify an expiration far in the future to avoid disruption of service. When the SAS token contains an expiry date, SimplePDF sends reminder emails 7 days and 1 day before it expires._ > Select the `read`, `write` and `delete` permissions as visible in the screenshot below. > ![Azure Blob Storage SAS Token view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-azure-blob-storage-sas-token.png) > If you wish to grant only `write` (and `delete`) access, untick the `read` permission. ### In SimplePDF 1. Log in to your account 2. Navigate to the account settings view: ![Azure Blob Storage configuration in the account view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-custom-s3-bucket-configuration) 3. Click `Update configuration` 4. Select the **Credentials type** and fill in the details: **Endpoint**: `https://.blob.core.windows.net` **Container**: name of your container **Account Name**: name of your account. This should match the account name value used in the endpoint above. You can find it in the Access Credentials view on Azure. **Credentials type: Access Keys** > **Account Key**: retrieved from the Access Key view on Azure as described in the step 3 of this article. **Credentials type: SAS Token** > **SAS Token**: retrieved from the Shared access tokens view on Azure as described in the step 3 of this article. > **Write permissions only**: tick this box if you do not wish SimplePDF to be able to read the documents on your account, coupled with only defining `write` (and `delete`) permissions on your Azure Storage account, as described in the step 3 of this article. 4. Select `Azure Blob Storage` as storage type and enter your Azure Blob Storage details: ![Azure Blob Storage configuration: configuration details](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-custom-azure-blob-storage-configuration-details-pdf-form.png) 5. Click `Update` **That's it! Your documents and submissions are now automatically stored in your own Azure Blob Storage container!** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to use your own Scaleway storage for documents in SimplePDF As an alternative to [AWS S3](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), or [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions), you can use your [Scaleway Object Storage](/storage/scaleway) bucket to store documents and submissions. Scaleway is a European cloud provider with data centers in Paris, Amsterdam, Warsaw, and Milan. Teams typically pick Scaleway for **EU data residency**, **GDPR compliance**, or because they already run infrastructure on Scaleway and want documents to stay in the same provider. ## What ends up in your Scaleway bucket Once Scaleway is connected, two things land in your bucket automatically: - **Source documents**: every PDF a user (or you) loads into the editor is uploaded directly to your bucket. SimplePDF holds no copy. - **Filled submissions**: when a user signs, edits, or submits a document, the resulting PDF is also written to your bucket. The upload happens client-side: the browser uploads straight to Scaleway using short-lived, pre-signed URLs. SimplePDF's servers only exchange those URLs, so your documents never transit through SimplePDF infrastructure. The flow is identical to the AWS S3 setup; if you want the full sequence diagram and security model, [head over here](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions#upload). ## How to configure your own Scaleway Object Storage _Configuring your own Scaleway Object Storage bucket is available with the [PRO plan](/pricing)_ ### In Scaleway In order to store documents on Scaleway Object Storage, you need a bucket and an API key with read/write/delete permissions on that bucket. 1. [Create (or choose) a bucket](https://www.scaleway.com/en/docs/object-storage/how-to/create-a-bucket/) in the region of your choice (`fr-par`, `nl-ams`, `pl-waw`, or `it-mil`). **Keep the bucket visibility set to Private (the default). Never flip it to public.** A public Scaleway bucket leaves every document and submission you store there fully exposed to anyone on the internet, including search engine crawlers. SimplePDF uploads via short-lived, authenticated, pre-signed URLs, so public access adds zero functionality and only opens the door to a data leak. ![Scaleway Object Storage create-a-bucket form with region picker](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-scaleway-buckets.png) 2. Open **IAM & API keys** from the user menu in the top-right corner of the Scaleway console. 3. Create a dedicated **IAM application** for SimplePDF. Going through an application (rather than your own user) is the secure default: it grants only what SimplePDF needs, survives team-member changes, and can be revoked without affecting anyone else. - Open the **Applications** tab and click **+ Create application**. - Name it `simplepdf-byos` (or anything you'll recognize). Leave the policy field empty for now (Scaleway labels it optional at this step, but an application without a policy has no permissions; we'll attach one in the next step). - Click **Create application**. 4. Create a **policy** that grants the application scoped Object Storage permissions: - Open the **Policies** tab and click **+ Create policy**. Name it `simplepdf-byos-policy` and add a description like `Grants SimplePDF BYOS access to the Object Storage bucket`. - Under **Principals**, select the `simplepdf-byos` application you just created. - The policy needs **two rules**, one for the bucket (project-scoped) and one for IAM (organization-scoped). **Rule #1 (bucket access)**: - **Scope**: **Access to resources** → pick the **Project** that owns your bucket. - **Permission sets** (under the **Storage** section): the choice depends on whether you want SimplePDF to be able to read your bucket or not: - **Default (read + write)**: tick **ObjectStorageFullAccess**. SimplePDF can list, read, upload, delete, and configure CORS on the bucket. - **Write-only** (recommended if you do not want SimplePDF to read your documents at any point, the strictest setup): tick **ObjectStorageObjectsWrite**, **ObjectStorageObjectsDelete**, and **ObjectStorageBucketsWrite**. SimplePDF can upload, delete, and configure CORS, but cannot list or read objects. Scaleway has no preset for this combination, so you tick the three permission sets individually. If you pick write-only, make sure to also tick **Write permissions only** in the SimplePDF storage configuration form below so SimplePDF never attempts a read operation. **Rule #2 (IAM read)**: - Click **+ Add a rule**. - **Scope**: **Access to Organization features**. - **Permission sets** (under the **Security & Identity** section): tick **IAMReadOnly**. This lets SimplePDF read your API key's expiration date so it can send reminder emails 7 days and 1 day before the key lapses. - Click **Create policy**. ![Scaleway IAM policy bound to the simplepdf-byos application with ObjectStorageFullAccess on a single Project](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-scaleway-policy.png) 5. Generate the API key: - Open the **API keys** tab and click **+ Generate API key**. - For the **bearer**, select the `simplepdf-byos` application you just created. - Add a description like `SimplePDF BYOS API key`. - When prompted "Will this API key be used for Object Storage?", choose **Yes** and select the Project that owns your bucket as the preferred Project. - Pick an expiration that fits your security policy. SimplePDF sends reminder emails 7 days and 1 day before the API key expires, so you can rotate it without service disruption. - **Copy the Access Key and Secret Key immediately** - the Secret Key won't be shown again. ![Scaleway Generate API key form with simplepdf-byos application as bearer and Object Storage preferred Project selected](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-scaleway-api-key.png) _CORS configuration is handled for you. Scaleway does not expose CORS in the console, but SimplePDF detects Scaleway endpoints and applies the required CORS rules to your bucket automatically when you save the storage configuration. The rules track the **Write permissions only** field configured below: GET, PUT, and DELETE are allowed when SimplePDF has read access, and GET is dropped when you set the bucket to write-only. No CLI or AWS SDK required._ _If your API key cannot configure CORS (typically because the policy is missing **ObjectStorageBucketsWrite**, which is included in both the default and the write-only permission grants described in step 4) or the bucket cannot be reached, SimplePDF will reject the save and surface the error so you can fix it before any submission is uploaded._ ### In SimplePDF 1. Log in to your account 2. Navigate to the account settings view ![SimplePDF account settings showing the Bring your own storage section](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-custom-scaleway-bucket-configuration.png) 3. Click `Update configuration` 4. Select **Scaleway** as the storage type and fill in your details: **Region**: pick your bucket's region: `fr-par` (Paris), `nl-ams` (Amsterdam), `pl-waw` (Warsaw), or `it-mil` (Milan). SimplePDF derives the Object Storage endpoint URL from this selection, so there is no separate endpoint field to fill in. **Bucket**: name of your Scaleway bucket **Access Key**: the Access Key from the API key you generated in step 5 **Secret Key**: the Secret Key from the API key you generated in step 5 **Write permissions only**: tick this box if you do not want SimplePDF to be able to read documents from your bucket. When ticked, the auto-applied CORS rules will allow only PUT and DELETE (no GET), matching what the editor needs to upload and remove files without reading them. ![SimplePDF storage configuration modal with Scaleway selected, fr-par region, bucket and keys filled in](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-custom-scaleway-configuration.png) 5. Click `Update` ### Permissions required on your Scaleway bucket The IAM policy you attach in step 4 determines what SimplePDF can do on your bucket. Pick the mode that matches what you want. Every policy you attach needs **two rules**: - **Project-scoped rule** (covers the bucket): pick the project that owns your bucket and tick one of the bucket permission set combinations below from the **Storage** section. - **Organization-scoped rule** (covers IAM read): set the scope to **Access to Organization features** and tick **IAMReadOnly** under the **Security & Identity** section. This is required for SimplePDF to read your API key's expiration date and send reminder emails before it lapses. #### Default (read + write) In the project-scoped rule, under **Storage**, tick **ObjectStorageFullAccess**. SimplePDF can list, read, upload, delete objects, and configure CORS on the bucket. #### Write-only In the project-scoped rule, under **Storage**, tick **ObjectStorageObjectsWrite**, **ObjectStorageObjectsDelete**, and **ObjectStorageBucketsWrite**. SimplePDF can upload, delete objects, and configure CORS, but cannot list or read objects. Scaleway has no preset for this combination, so you tick the three permission sets individually. #### Underlying S3 API actions For reference, the underlying S3 actions SimplePDF performs on the bucket are: - `s3:GetObject`: to display the documents and submissions in the interface and [when sending webhooks](/help/how-to/configure-webhooks-pdf-form-submissions) (default mode only) - `s3:PutObject`: to upload the documents and submissions - `s3:DeleteObject`: to delete the uploaded documents and submissions - `s3:PutBucketCORS`: granted once when SimplePDF auto-configures CORS on your bucket at save time **That's it! Your documents and submissions are now automatically stored in your own Scaleway Object Storage bucket!** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to configure webhooks to get notified of new PDF form submissions A powerful way to send the submissions to your application or connect SimplePDF with other services such as [Zapier](https://zapier.com) or [Activepieces](https://activepieces.com) is to use webhooks. ## Webhooks? Webhooks allow to connect applications with one another by sending data in real-time from one application to the other(s) whenever a given event happens. **In SimplePDF, every time a PDF is submitted** via your company portal, either using [form links](https://simplepdf.com/portal) or [embed in your website](https://simplepdf.com/embed), **an event is sent out containing the document name, a link to the filled PDF, and a link to the structured form data** among other things. The structured form data is the part most integrations care about: instead of parsing the filled PDF, you receive every answer as JSON, ready to store, route, or pipe into another system. See [Extracting the structured form data](#structured-data) below. From there, the sky is the limit and you can let your imagination run free. You could for example save that information in a Google sheet or integrate it with [Zapier](https://zapier.com) or [Activepieces](http://activepieces.com) and unlock even more possibilities! ## Configuring webhooks in SimplePDF _Configuring webhooks is available with the [BASIC plan](https://simplepdf.com/pricing). Webhook deliveries are unlimited and do not count toward your [monthly plan quota](/help/faq/whats-included-in-basic#monthly-quota); only documents and submissions do._ - Log in to your account - Navigate to the account settings view ![Configure webhooks in the account view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-configure-webhooks-account-view.png) - Click `Update configuration` - Enter the webhook URL of the service or application to which you want to send events ![Configure webhooks: configuration details](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-configure-webhooks-modal.png) - Optional: specify the headers to send as part of the webhook **That's it! An event will be sent everytime there's a new submission** ## Webhook events You will find below the events that are sent by SimplePDF to the webhook you configured. ## Extracting the structured form data `field_data_url` is a short-lived link to the submission's form data as JSON, so you never have to parse the filled PDF to read the answers. It captures every field, whether it is a field built into the PDF (a native form field, also called an AcroField) or a field your recipient filled that you added on top of the document in SimplePDF. Both appear in the same list, each carrying its `id`, its `name`, and the submitted `value`: Each `value` is plain text (a signature or picture rides as an inline image). Because every entry carries both the `id` and the `name`, you can map each answer to its field and feed it straight into a spreadsheet, a database, or a downstream form such as a FHIR questionnaire response. The very same JSON can be sent back to SimplePDF to pre-fill another document, so a submission round-trips cleanly. The fields on a document are stable, and you control how each one is named: [configure your fields once](/help/how-to/add-required-fields-on-pdf-forms) (rename them, mark them required, set defaults) and every future submission arrives with the same `id` and `name`. That turns mapping webhook data to your own system into a one-time setup that then runs unchanged for every submission. (`name` is `null` for a field you added on top but never named.) `field_data_url` expires after 15 minutes, like `url`. If you need it later, fetch a fresh one from the [API](/api) with `GET /documents/{document_id}/submissions/{submission_id}`. It is `null` for submissions captured before structured form data was available. ### About the context When you integrate SimplePDF in your website, you may want to tie additional information to submissions. For example, you may want to: - Know whether the submission was initiated from a development `environment` vs a `production` one. - Send additional details about _who_ submitted the form (such as a logged in user) that will make it easier for you to process the submission. Learn how to specify a `context` in the [documentation of SimplePDF embed](https://github.com/SimplePDF/simplepdf-embed/blob/main/documentation/IFRAME.md#specifying-a-context) ## Playground We like examples at SimplePDF, so what about a real-life example of how webhooks look like? 1. Modify the context below (_click to edit the content_) 2. Submit {e.preventDefault();const context = encodeURIComponent(btoa(document.querySelector('[contenteditable="true"]').textContent));const url = `${e.currentTarget.href}?context=${context}`;window.open(url, "_blank");}}>this form 3. The webhook sent by SimplePDF will appear over here _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to connect SharePoint as your storage for PDF submissions As an alternative to [AWS S3](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), or [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage), you can connect your SharePoint Online document library to store documents and submissions. You may be interested in bringing your own storage (BYOS) for various reasons, such as **compliance** to specific rules in your country or industry or because your team already uses SharePoint for document management. ## How the upload works The upload mechanism is identical across all storage providers. If you're interested in the details and security model, [head over here](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions#upload). The gist is that the upload happens on the client, with the server only exchanging upload and download links: your documents never transit via SimplePDF servers. ## Prerequisites Connecting SharePoint requires: - A SimplePDF [Premium plan](/pricing) - A Microsoft 365 tenant with SharePoint Online - An Entra ID (Azure AD) app registration with the right permissions ## Step 1: Register an app in Microsoft Entra ID 1. Go to [Azure Portal > App registrations](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) and click **New registration** 2. Fill in the registration form: - **Name**: `SimplePDF` (or any name you prefer) - **Supported account types**: _Accounts in this organizational directory only_ (single tenant) - **Redirect URI**: select **Web** and enter `https://simplepdf.com/api/integrations/sharepoint/callback` 3. Click **Register** ![Entra ID app registration form](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-entra-app-registration.png) ### Create a client secret 1. In your newly registered app, go to **Certificates & secrets** > **New client secret** 2. Set a description (e.g. `SimplePDF`) and choose an expiry. We recommend selecting the longest available expiry (24 months) to avoid disruption. **When the secret expires, the SharePoint connection will stop working** and you will need to create a new secret and re-authenticate in SimplePDF. 3. **Copy the secret value immediately** - it won't be shown again ![Entra ID client secret creation](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-entra-client-secret.png) ### Add API permissions 1. Go to **API permissions** > **Add a permission** > **Microsoft Graph** > **Delegated permissions** 2. Add the following permissions: - `Sites.Read.All` - lets SimplePDF list your SharePoint sites so you can pick one - `Files.ReadWrite.All` - lets SimplePDF upload and download documents in your selected library - `offline_access` - keeps the connection active without re-authenticating You do **not** need to grant admin consent. Each user consents individually during the OAuth flow. ![Entra ID API permissions](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-entra-api-permissions.png) ### Note your credentials From the app's **Overview** page, you'll need: - **Application (client) ID** - **Directory (tenant) ID** Along with the **Client Secret** you copied earlier. ## Step 2: Connect SharePoint in SimplePDF 1. Log in to your SimplePDF account 2. Navigate to account settings 3. In the **Bring your own storage** section, click **Configure** 4. Select **SharePoint** from the storage type dropdown 5. Enter your three credentials: **Tenant ID**, **Client ID**, and **Client Secret** 6. Click **Authenticate with Microsoft** 7. Sign in with a user from your Microsoft 365 tenant and grant consent ![SharePoint credentials in SimplePDF](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-configure-credentials.png) ## Step 3: Select a site and document library After authenticating, you'll be redirected back to SimplePDF: 1. Select your **SharePoint site** from the dropdown 2. Select the **document library** where submissions should be stored 3. Click **Update** ![SharePoint site and document library picker](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-site-drive-picker.png) SimplePDF runs a diagnostic test (upload + download) to verify the configuration. If both succeed, you're all set. ![SharePoint connected successfully](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-byos-sharepoint-connected.png) Submitted documents will be stored under the path `simple-pdf//` in your selected document library. ## Troubleshooting **Sites dropdown is empty**: SharePoint search indexing may not be active on freshly provisioned tenants. Wait a few minutes and try again. **Diagnostic test fails**: verify that the app has the correct API permissions (`Sites.Read.All`, `Files.ReadWrite.All`, `offline_access`) and that the user who consented has access to the selected site. **Uploads suddenly stopped working**: your client secret may have expired. In the Azure Portal, go to your app's **Certificates & secrets** page, create a new secret, then re-authenticate in SimplePDF by clicking **Configure** on the storage section. **"Inactive - upgrade to Premium" status**: SharePoint BYOS requires the Premium plan. S3 and Azure Blob Storage are available on the Pro plan. **That's it! Your documents and submissions are now stored directly in your SharePoint document library.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to connect SimplePDF with Activepieces to automate your PDF forms processing With email notifications in the [paid offering](/pricing) of SimplePDF, you can already get notified everytime your customers submit [PDF forms](/portal). But what if you want to **connect SimplePDF** to **GoogleSheets** or **Discord** or **Pipedrive** or **[insert your favorite app]**? You can do that thanks to the [powerful webhooks feature](/help/how-to/configure-webhooks-pdf-form-submissions) connected to [Activepieces](https://activepieces.com). ## Activepieces? [Activepieces](https://activepieces.com) is a rapidly growing open-source Zapier alternative that allows you to connect plenty of applications using a no-code approach. **Just like that, by connecting SimplePDF to Activepieces, you can unlock a world of possibilities.** ## An example with Google Sheets and Discord We like examples at SimplePDF, so for this tutorial, we'll be walking you through connecting SimplePDF with Activepieces to: 1. **Trigger a flow on Activepieces every time there's a new PDF submission** in your portal, either by using [form links](/portal) or [embedding SimplePDF in your website](/embed) 2. **Add a new row in a Google Sheet** containing some informations about the submission: the _document name_, the _time of the submission_ and of course, the _link to see the submission_ 3. **Send a message on a Discord channel** ### The final result No need to scroll to the bottom of the article to see how it looks 👀 👇 _[SimplePDF form](https://dundermifflin.simplepdf.com/form/d8d57ec7-f3e9-4fc9-8cc5-4a92c02d30d0), [Google Sheet](https://docs.google.com/spreadsheets/d/1-XMxucyO4Yxe0FoE79HfF66ZGHq42D6Qfii73Yug1Oc) and [Discord channel](https://discord.com/channels/1049358940481273856/1078953886905290792) visible in the video_ ## Step-by-step guide to set it up ### 1. Setting up the Activepieces flow 1. Log into your Activepieces account (or [create one](https://www.activepieces.com/plans)). 2. Create a new flow. 3. Create three steps in that order: - **Webhook trigger**: it will be receiving the incoming webhook notifications from SimplePDF - **Google Sheets**: a new row will be added for each new PDF submission - **Discord**: we will get a notification in Discord for each new PDF submission Your flow should looks as follows: ![Activepieces Flow](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-activepieces-flow.png) ### 2. Configuring the 1st step of the flow: Webhook trigger 1. Click on the **Webhook trigger** and copy the webhook URL ![Copying the webhook URL in Activepieces](https://cdn.simplepdf.com/simple-pdf/assets/help/activepieces-copy-webhook-url-pdf.png) 2. **Add the webhook URL to your webhook configuration in your account** ![Configure webhooks in the account view](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-configure-webhooks-account-view.png) _You can follow this guide: [configure Webhooks to get notified of new PDF form submissions](/help/how-to/configure-webhooks-pdf-form-submissions) for more details on how to configure Webhooks in SimplePDF._ ### 3. Configuring the 2nd step of the flow: Google Sheets 1. Create a Google sheet where you want the submissions to appear _We created [this Google Sheet](https://docs.google.com/spreadsheets/d/1-XMxucyO4Yxe0FoE79HfF66ZGHq42D6Qfii73Yug1Oc) for this example_ 2. Select the action `Insert Row`, connect to your Google Sheets account and select the **Sheet** you want to add the submissions to: ![Configuring Google Sheets to send SimplePDF PDF submissions](https://cdn.simplepdf.com/simple-pdf/assets/help/activepieces-simplepdf-googlesheets-configuration.png) 3. In the **Values** section of the **Google Sheet** piece, enter the following values: _One line per value_ _Use the `Data to insert` > `Webhook Trigger` button for the values starting with `$`_ If you followed our example, your **values** should look as follows: ![Configuring Google Sheets rows with the PDF form submission details](https://cdn.simplepdf.com/simple-pdf/assets/help/activepieces-simplepdf-googlesheets-configuration-details.png) ### 4. Configuring the 3rd step of the flow: Discord 1. Create a **webhook URL** for the Discord channel where you want to receive notifications _Follow [this guide](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) by Discord to set up webhooks for your preferred channel_ 2. Select the action `Send Message Webhook` 3. Paste the **webhook URL** that you retrieved in the first step ![Configuring Discord to get notified of SimplePDF PDF Submissions](https://cdn.simplepdf.com/simple-pdf/assets/help/activepieces-simplepdf-discord-configuration.png) 4. In the **Message** section of the **Discord** piece, enter the following: _Replace LINK_TO_YOUR_GOOGLE_SHEET with your own and use the `Data to insert` > `Webhook Trigger` button for the values starting with `$`_ ![Configuring the Discord notification with the PDF form submission details](https://cdn.simplepdf.com/simple-pdf/assets/help/activepieces-simplepdf-discord-configuration-details.png) ## Conclusion That's it! We now automatically get notified of any new SimplePDF submission on **Discord** and a new row with information about this submission is added in **Google Sheets**. ### Try it yourself 1. [Submit this form](https://dundermifflin.simplepdf.com/form/d8d57ec7-f3e9-4fc9-8cc5-4a92c02d30d0) belonging to DunderMifflin (neither the form nor the company are a real one, so you don't risk messing anything up!) 2. Join our [Discord](https://discord.com/channels/1049358940481273856/1078953886905290792) and see your submission appear 3. Have a look at the [Google Sheets](https://docs.google.com/spreadsheets/d/1-XMxucyO4Yxe0FoE79HfF66ZGHq42D6Qfii73Yug1Oc) that lists all submissions (including your own if you submitted it!) _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to convert a PDF into a fillable form and collect the answers You have a PDF that people need to fill in: a contract, a job application, an intake sheet. You want them to complete it online and you want their answers back as data you can sort and process, not a stack of flat PDFs. Only **three steps**: that's what it takes to turn any PDF into a form and collect answers. 1. [Turn any PDF into a form](#turn-your-pdf-into-a-form) 2. [Share the link](#share-the-link-to-collect-submissions) 3. [Collect the answers](#collect-the-structured-data) ## Turn your PDF into a form Start from the `Documents` section of your account: 1. Click `New Document` and pick a PDF from your device. 2. **SimplePDF reads the file and recognizes any fillable fields already built into it**, so they are ready to use right away. 3. Open the document to see the detected fields on the page. If your PDF already carries form fields, that is all it takes to make it fillable. ### Add or adjust fields You can add or adjust fields yourself: 1. Open the document and pick a field type from the toolbar: text, checkbox, signature, or image. 2. Click on the page to place the field, then drag to position and resize it. 3. Give each field a clear name. The name becomes the column header when you collect the data, so `Full name` reads better than a generic label. On a flat or scanned PDF, click `Detect fields` and **SimplePDF's browser-based AI finds every field and names each one from the surrounding text.** A typical form has around ten fields, and plenty run to dozens: instead of the slow, error-prone work of placing and naming each one by hand, you get the whole set in a single pass. **Detection runs in your browser, so the document is never sent anywhere to be analyzed.** ### Set required and read-only fields You can mark a field as required so people cannot submit until they fill it, and you can give a field a default value and lock it as read only when the information should appear on the document but not be edited. For the full walkthrough, see [how to add required fields to PDF forms](/help/how-to/add-required-fields-on-pdf-forms). ## Share the link to collect submissions Your form only collects answers once people can open it. From the `Documents` list or the document itself, click `Copy link` to get its shareable URL. Send that link by email, chat, or a button on your site, or embed the form directly in a page: use the [iframe](https://github.com/SimplePDF/simplepdf-embed/blob/main/documentation/IFRAME.md) or [React](https://github.com/SimplePDF/simplepdf-embed/blob/main/react/README.md) snippet next to the copy button, or the [WordPress plugin](https://wordpress.org/plugins/simplepdf-embed/). Whoever opens it fills the form and submits it in the browser, no SimplePDF account required. Each submission that comes back through the link is captured as structured data, which you collect next. ## Collect the structured data Every time someone submits the form, SimplePDF captures the value of each field as structured data. This covers every field, whether it was built into the original PDF or added in SimplePDF. There are three ways to get it. ### Download it from the dashboard 1. Open the document and click its submissions count to expand the list of submissions. 2. Next to a submission, open the download menu and choose `Download as CSV` or `Download as Excel`. 3. To export every submission at once, use the `Export all` button above the list and pick CSV or Excel. Each field becomes a column and each submission a row. Signature and image fields export as a placeholder rather than the raw image data, and the file is built in your browser, not on our servers. To keep the list readable, give each submission a name instead of a timestamp: pick a field to name them automatically, or rename any submission from its details panel. The name then follows the submission into the list, the notification email, the downloaded filename, and this export. See [how to name your submissions](/help/how-to/add-required-fields-on-pdf-forms#name-your-submissions-from-a-field). ### Send it to a webhook The same structured data is delivered to your webhook the moment a submission arrives, ready to drop into a spreadsheet, a database, or your own app. See [how to configure webhooks for PDF form submissions](/help/how-to/configure-webhooks-pdf-form-submissions). ### Read it from the API Every submission's structured data is also available any time from the [SimplePDF API](https://simplepdf.com/api/#tag/submission/GET/documents/{document_id}/submissions/{submission_id}), so you can pull it on your own schedule. **That's it! Your PDF is now a fillable form, and every submission comes back as structured data you can download as CSV or Excel, receive on a webhook, or read from the API.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to convert a PDF to Markdown for AI with SimplePDF Feeding a PDF to a language model usually means copy-pasting a wall of raw text. The document's structure is lost, the token count balloons, and the model has to guess where a heading ends and a table begins. Converting the PDF to Markdown first keeps that structure, so the model reads a clean document instead of a flat string. SimplePDF extracts the content of any PDF as Markdown, directly in the editor. This guide covers how to do it and why Markdown is the right format when the reader is an LLM. ## Why Markdown instead of raw text - **Often fewer tokens.** Markdown carries structure with a handful of characters (`#`, `-`, `|`) instead of the whitespace-heavy layout a raw text dump preserves. Less noise per page usually means fewer tokens per request, and tokens are what you pay for and what fills the context window. The exact saving depends on the document and the tokenizer. - **Clearer structure for the model.** Headings, lists, and tables tell the model how the document is organized. A model reading `## Invoice total` followed by a table has more to work with than one parsing an unlabeled block of numbers, which tends to help on questions that depend on layout. - **Portable.** Markdown drops straight into a RAG pipeline, a prompt, a chunker, or a note-taking app without further cleanup. ## Extract a PDF as Markdown 1. Open your document in the [SimplePDF editor](/editor) (drag a file in, or open one from your device) 2. In the sidebar, open the menu next to the **Download** button 3. Choose **Extract content** 4. Pick **Copy to clipboard** to paste the Markdown straight into your model, or **Download as file** to save a `.md` The extraction includes the values already in the document: typed text, checked boxes, and signature markers, so the Markdown reflects what the PDF actually says, not just its blank template. Need just one page instead of the whole document? Right-click a page thumbnail in the pages panel, open **Copy content**, and choose **This page**. SimplePDF copies that single page's content as Markdown, ready to paste. ## Everything runs in your browser The extraction happens locally, on your device. The PDF is not uploaded to a server, which matters when the document is a contract, a medical record, or anything you would not paste into a third-party converter. You get the Markdown without the document ever leaving your machine. ## Opening the downloaded .md file The download is a `.md` file with the correct Markdown type, ready for any tool that speaks Markdown. On macOS it opens in TextEdit; on Windows, double-clicking prompts you to pick an app the first time, since Windows has no default handler for `.md`. Choose your editor of choice (VS Code, Notepad, Obsidian) once and Windows remembers it. If you only need the text in a prompt, use **Copy to clipboard** and skip the file entirely. **That's it! Your PDF is now clean Markdown, ready to feed to an LLM with fewer tokens and better structure.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to customize the editor and add your own branding with SimplePDF You have embed SimplePDF in your own website or [React app](/help/how-to/add-simple-pdf-editor-to-react-next-app) and you want to tailor it to your use-case. The obvious first need is to **use your own logo** And you may be **using SimplePDF for one of the following use-cases:** - Offer a **fill & sign** PDF documents - Allow **annotating documents** before sending them to you - Use it to stitch documents together (**"merge PDF"**) - A **RAG dataloader** for your **AI** work-flow, [uploading automatically the document to your storage](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions) In that case, you won't need most of the other features of the PDF editor and you may want to hide certain tools and options, keeping it simple and focused on your specific use-case. ## Using your own Logo and loading animation _Branding the PDF editor is available with the [PRO plan](https://simplepdf.com/pricing)_ 1. Log into your account and head over to the **Account** page 2. Click the `Edit` button next to the "Account" heading: ![Account page with the Edit button](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-editor-account-page-edit-button.png) 3. In the modal, upload your `logo` (jpeg, png) and/or `loading` animation (gif): ![Upload your own logo and loading animation](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-editor-upload-logo-and-loading-animation.png) 4. Click `Update` ## Showing / Hiding specific tools and options _Customizing the PDF editor is available with the [PRO plan](https://simplepdf.com/pricing)_ 1. Log into your account and head over to the Embed editor page 2. In the configuration section you will be able to modify and tweak the configuration of the editor. _Scroll below the screenshot to see the list of available options_ ![Tailor the PDF editor to your needs](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-editor-show-and-hide-fields.png) #### Sidebar - `Sidebar`: show / hide the sidebar entirely. When disabled, the editor displays only the PDF document without any sidebar, providing a complete white-labelling experience. All actions (page navigation, tool selection, submission) can still be performed programmatically using the [widget's programmatic controls](https://github.com/SimplePDF/simplepdf-embed?tab=readme-ov-file#programmatic-page-control). #### Branding - `Logo location`: whether the logo should be displayed at the top or bottom of the sidebar when in full screen - `Submission modal`: when documents are submitted through your portal, a confirmation modal will popup to tell your users that they can now close the window. You can choose to hide this modal if you have implemented your own by listening to **[Iframe events](https://github.com/SimplePDF/simplepdf-embed/blob/main/documentation/IFRAME.md#events-sent-by-the-iframe)** #### Tools - `Automatic field detection`: when enabled, SimplePDF scans the document and places text, comb text, checkbox and signature fields for your users, so they don't have to add them by hand. Runs entirely in the browser. - `Text`: show / hide the text tool - `Checkbox`: show / hide the checkbox tool - `Signature`: show / hide the signature tool - `Remember between submissions`: when enabled, the signature of the user is stored on the local device and is automatically filled for any new signature field. - `Add timestamp to signatures`: when enabled, a "Signed on [date] [time] [timezone]" text is added below each signature when the document is submitted. - `Allow drawn signature`: when enabled, users can draw their signature using a mouse or touch input. Disable this if you only want typed signatures. - `Allow typed signature`: when enabled, users can type their name to create a signature. Disable this if you need handwritten signatures only (useful for compliance with regulations requiring non-typed signatures). - `Picture`: show / hide the picture tool - `Comb text`: show / hide the Comb text tool #### Document manipulation - `Allow moving, rotating, deleting pages`: when enabled, buttons next to each pages are displayed allowing to move the pages around, rotate and delete them. - `Allow adding new pages`: when enabled, tyour users can add additional PDF documents using the `+` in the document preview sidebar. - `Allow downloading a copy`: when enabled, your users can choose to download a copy of the document that they are submitting. - `Flatten forms`: when enabled, fields present on the form will be be editable after submitting. This is especially useful if you want to prevent future edition of the fields once the document is submitted. That's it! You now have the perfect editor, nicely blending in your own website or app! _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to customize the submission confirmation ![Customized submission confirmation](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-submission-confirmation-example.png) You have already [turned your PDFs into forms](/portal) and are receiving submissions directly [to your email inbox](/help/how-to/get-email-notifications-for-pdf-form-submissions). However, in industries like insurance, real-estate or healthcare, **one form often isn't enough**. Typically, you might send two SimplePDF form links to your customers and ask them to fill out both. But **what if you could send just one form**, and after it's submitted, your customers are **automatically prompted to fill out the second one?** Or perhaps you want to guide them to explore your services after they complete the form. You can **easily achieve this by customizing the submission confirmation**, which is what we'll cover in this tutorial. ## Customizing the submission confirmation. _Customizing the submission confirmation is available with the [PRO plan](https://simplepdf.com/pricing)_ 1. Log into your account and go to the **"Your forms" page**. 2. Click the **`cog` icon next to any form** you've created to open the configuration view. ![Accessing the configuration view of a form](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-submission-confirmation-configure-form.png) 3. Modify the **title**, **content**, and **add a link**. Your changes will be **visible in the preview** on the right side. ![Submission confirmation configuration and preview](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-submission-confirmation-configuration.png) 4. Click `Update` That's it! Now, whenever your customers submit this form, the confirmation message will display the information you configured. ![Customized submission confirmation](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-customize-submission-confirmation-example.png) You can direct your customers to a specific website or another SimplePDF form. Plus, there's no limit—each form can lead to another form, creating a seamless flow for your customers! _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to view and edit PDF in Excalidraw **What if you could look at the design document right next to your sketches in Excalidraw?** Or sketch some diagrams for your class while the PDF is opened on the side... Or even ask your customers about their preferred sketch and illustration without having to leave Excalidraw? It's **now possible, thanks to the SimplePDF integration in Excalidraw!** ## Excalidraw? [Excalidraw](https://excalidraw.com) is a virtual hand-drawn style whiteboard that offers collaborative features and is end-to-end encrypted. At SimplePDF we use Excalidraw for sketching features, both the technical implementation as well as the designs. We also use Excalidaw for illustrations! In fact you may have noticed them on the [SimplePDF embed page](/embed) So when Excalidraw announced the ability to embed websites into any board, we could not miss the opportunity!. **Adding SimplePDF to Excalidraw is the best way to view, edit and even submit forms without leaving your board** ## Adding SimplePDF to excalidraw **TL:DR: Add `https://embed.simplepdf.eu` as a Web-Embed in Excalidraw** ### 1. Select the Web-Embed in Excalidraw ### 2. Enter the SimplePDF Embed URL - Opening PDF from your device: `https://embed.simplepdf.eu` - Opening a PDF hosted online: `https://embed.simplepdf.eu/editor?open=URL` _It also works with any SimplePDF form_ ### 3. That's it! _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to embed the PDF editor in SharePoint SharePoint pages don't natively support PDF editing. With SimplePDF, you can add a full PDF editor to any SharePoint page using the Embed web part. Users fill, sign, and submit PDFs without leaving SharePoint. Combine this with [SharePoint BYOS](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions) to have submitted documents stored directly in your SharePoint document library. ## Prerequisites - A SharePoint Online site with editing permissions - Site collection administrator access to configure iframe allow-list ## Step 1: Allow the SimplePDF domain in SharePoint By default, SharePoint restricts which domains can be embedded via iframes. You need to add the SimplePDF domain to the allow list. 1. Navigate to your SharePoint site 2. Click **Site contents** in the navigation 3. Click **Site settings** in the top-right 4. Under **Site Collection Administration**, click **HTML Field Security** 5. Select **Allow contributors to insert iframes only from the following domains** 6. Type `sharepoint.simplepdf.com` in the input field and click **Add** 7. Verify the domain appears in the list, then click **OK** ![Adding sharepoint.simplepdf.com to the HTML Field Security allow list](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-embed-sharepoint-html-field-security.png) ## Step 2: Add the Embed web part to a SharePoint page 1. Navigate to the SharePoint page where you want the PDF editor 2. Click **Edit** to enter edit mode 3. Click the **+** button to add a new web part 4. Search for and select **Embed** ![Adding the Embed web part to a SharePoint page](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-embed-sharepoint-add-webpart.png) ## Step 3: Configure the embed 1. In the Embed web part, paste the following iframe code: `} className={null} /> 2. Click **Apply** or press Enter ![Pasting the SimplePDF iframe code in the Embed web part](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-embed-sharepoint-iframe-config.png) ## Step 4: Publish the page 1. Click **Republish** to save the page 2. The SimplePDF editor is now live on your SharePoint page ![SimplePDF editor embedded in a SharePoint page](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-embed-pdf-editor-sharepoint-live.png) Users can now open PDFs, fill fields, add signatures, and submit documents directly from SharePoint. ## Combine with SharePoint BYOS For a fully integrated experience, [configure SharePoint as your storage](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions). When both are set up: - Users fill and submit PDFs from within SharePoint - Submitted documents are stored directly in your SharePoint document library - No documents leave your Microsoft 365 environment **That's it! Your SharePoint page now has a fully functional PDF editor.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to get notified via email on PDF form submissions You have [turned your PDF into an online form](https://simplepdf.com/portal) and you're now getting submissions from your customers. Everything is great except that you have to log into your SimplePDF portal everyday to see whether or not there's a new submission. **What if you could just get an email that a form has been submitted?** Read on to enable email notifications for your PDF forms! ## Configuring the email notifications _Configuring email notifications is available with the [BASIC plan](/pricing). Email deliveries are unlimited and do not count toward your [monthly plan quota](/help/faq/whats-included-in-basic#monthly-quota); only documents and submissions do._ 1. Log in to your account 2. **Navigate to the documents view** 3. Locate the form for which you want to configure email notifications 4. **Open the form settings** by clicking the `cog` icon. You can reach it in two ways: From the documents list, the `cog` appears on the form's row: ![Access form settings from the documents list](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-email-notifications-configure-from-documents-list.png) Or from inside the editor, in the top-right corner of the page: ![Access form settings from the editor](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-email-notifications-configure-from-editor.png) 5. Under **Email notifications**, type the name of the person to receive the emails or select them from the dropdown. You can add multiple recipients. ![Add email recipients for form submissions](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-email-notifications-add-recipients.png) 6. Click **Save** 7. Some time elapses... and the form is submitted: you get a new email with a direct link to the submission! ![Email notification for each PDF form submission](https://cdn.simplepdf.com/simple-pdf/assets/help/simplepdf-email-notifications-pdf-form-submission-received.png) ### I don't see a specific email in the list, how can I add it? The notifications can be sent to any member of your SimplePDF account: simply send an invitation to the email and accept the invitation upon receiving it in your mail box. The newly added email will now be selectable in the email configuration dropdown. **That's it! You're now getting email notifications every time a PDF form is submitted!** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to organize PDF documents with tags in SimplePDF As your Documents Dashboard grows, finding the right document gets harder. Tags let you categorize documents by project, client, department, or any label that fits your workflow. ## Adding tags to a document 1. Go to your [Documents Dashboard](/account/documents) 2. Click the settings icon on the document you want to tag 3. In the settings drawer, find the **Tags** field under the General section 4. Type a tag name and press Enter to create a new tag, or select an existing one 5. Add as many tags as needed 6. Click **Save** Tags are company-wide: once created, a tag is available for all documents in your account. You can also add a tag directly from the table by clicking the **+** button next to a document's existing tags. ## Filtering documents by tag There are two ways to filter by tag: - **Toolbar filter**: Use the tag filter in the toolbar above the documents table. Select one or more tags to show only documents that have those tags. - **Click-through**: Click any tag pill displayed on a document row in the table to instantly toggle filtering by that tag. Search and tag filters work independently. When both are active, documents must match the search query and have at least one of the selected tags. ## Tips - **Categorization patterns**: Use tags for projects (`project-alpha`), departments (`legal`, `hr`), document status (`needs-review`, `approved`), or clients. - **Free on all plans**: Tags are available at no cost, regardless of your plan. - **Combine with search**: Narrow results by searching within a tagged subset of your documents. **That's it! Your documents are now organized with tags, making them faster to find and manage.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- ArticleMeta, ArticleTable, ArticleTableCode, ArticleTableCodeInline, ArticleTableLabel, } from '../../components/article'; # How to monitor team activity with SimplePDF audit logs Regulated workflows need a record of what changed. **The SimplePDF audit log records who did what, when, from which IP address, and on which document, across your entire account.** It is the surface auditors, compliance officers, and internal investigators look at when they need to reconstruct what happened. _Audit logs are available with the [Premium plan](/pricing)_ ## Why teams turn on audit logs The audit log answers the questions an internal audit, a customer security review, or a compliance program (HIPAA, GDPR, and similar frameworks) will ask: - **Who did what?** Every dashboard sign-in, every configuration change, every document or submission mutation, and every member, webhook, storage, and API key change is attributed to a specific user, API key, or system actor. - **What changed and when?** Configuration changes, role changes, storage updates, webhook updates, and document edits each carry an exact timestamp and a structured diff of the values before and after. - **From where?** Every event records the IP address and user agent of the actor, so unusual locations or unfamiliar clients stand out at a glance. - **Can I export it?** The log is server-side and exportable as CSV for archival or compliance review. ## What ends up in each row Each entry carries five pieces of forensic detail: - **When**: the timestamp captured at the moment the action happens, so background processing lag never drifts the recorded time. - **Who**: the actor that performed the action. One of the following types: - **Member**: a team member on this company. The display name resolves at read time, so a rename propagates through historical rows; the email stays as the stable fallback if the member is later removed. - **API key**: a programmatic [REST API](/api) call (no human in the loop — a backend script or integration hit the API directly with the key as a bearer). Recorded by its key id. - **API user (via dashboard URL)**: a human end-user took the action through an embedded admin editor session minted from one of your API keys. Same key id as the **API key** actor — the distinction is the modality: human-via-iframe rather than programmatic. Use this when you need to tell "did a person do this through the customer's product, or did a script do it?". - **External party**: someone outside your team. Anonymous form submitters and pre-authentication actions (like requesting a sign-in code) fall into this bucket. The IP and user agent live in the row's metadata. The actor filter offers "External parties" as a single category — to drill into a specific submitter, sort or search the IP column in the CSV export. - **System**: SimplePDF itself, for actions that have no human actor (for example, a plan transition emitted by the Stripe webhook). - **Action**: the canonical action name (`document.deleted`, `company_user.updated`, etc.). - **Target**: the resource the action was performed on (document, prefill, submission, member, webhook, storage configuration, API key, session, invitation, or company). - **Changes** (when relevant): a structured before / after diff for actions that mutate state. Heavy payloads like full page snapshots or full form-field arrays are recorded as a change flag rather than serialized in full, so audit rows stay compact. - **Request context**: IP address and user agent of the request that triggered the event. ## Every event SimplePDF records The audit log captures the full set of mutating actions across your account, plus data-egress events like submission downloads and exports, grouped by surface. Each event below is recorded with its actor, timestamp, target, IP, and user agent. Mutating actions performed through the [REST API](/api) are recorded with an API key actor and appear alongside dashboard activity. Audit event Dashboard label What it records session.created Logged in A team member signs into the dashboard. session.deleted Logged out A team member signs out, or their session is invalidated. otp.created Requested a sign-in code A one-time sign-in code is issued for a user's email address. invitation.created Invited a member An admin invites a new member by email. The invitee's email is the target; the invitation has no user id yet because the invitee has not accepted. invitation.updated Resent an invitation An admin resends a pending invitation from the pending-invites list. A fresh link is issued and the previous one stops working. invitation.deleted Revoked an invitation An admin revokes a pending invitation before it is accepted. The invitee's email is the target, and their emailed link stops working immediately. company_user.created Joined the team An invitee accepts the invitation and becomes a team member. company_user.updated Updated a member A member's role or display name changes. The row carries a before / after diff for each field that actually changed. company_user.deleted Removed a member A member is removed from the team. The row records the role the member held at the moment of removal, so a later review can answer "what access did this person have when they left?". company.updated Updated company settings A change to the company name, identifier, logo, loading screen, or billing plan. Plan transitions emitted by the Stripe webhook are folded into this event with a system actor, so upgrades and downgrades show up in the same audit stream as the rest of your configuration history. editor_configuration.updated Updated editor settings A change to the embedded editor's configuration — which tools are shown, automatic field detection, page manipulation, form flattening, and the rest of the editor toggles. Each row carries a before / after diff of exactly the toggles that changed, so an admin can see who turned a capability on or off. byos.created Configured storage [S3](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), or [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions) is connected as the destination for documents and submissions. byos.updated Updated storage The storage configuration changes (bucket switched, region changed, credentials rotated, container or library moved). byos.deleted Removed storage The bring-your-own-storage configuration is removed and submissions revert to default SimplePDF storage. api_key.created Created an API key A new [REST API](/api) key is generated. api_key.deleted Revoked an API key A REST API key is revoked. webhook.created Created a webhook A new [webhook](/help/how-to/configure-webhooks-pdf-form-submissions) endpoint is added for submission events. webhook.updated Updated the webhook The webhook destination URL changes. webhook.deleted Deleted the webhook The webhook endpoint is removed. document.created Created a document A document is uploaded or created in the dashboard or via the API. document.updated Updated a document A document's name, type, pages, fields, tags, configuration (submission modal), email recipients, Robocorp process, or underlying PDF file changes. Renames, type changes, tag-list changes, email-recipient-list changes (integrations.email), and Robocorp process changes (integrations.robocorp) carry a before / after diff so an admin can see exactly which tags or recipients were added or removed — useful for spotting when a team member disables or breaks an integration. Pages, fields, configuration, and file replacements stay as presence flags so audit rows remain compact under heavy editing and never serialize integration credentials or file bytes. document.deleted Deleted a document A document is deleted from the dashboard or via the API. prefill.created Created a prefill A prefill is created through the [prefill API](/help/how-to/prefill-pdf-forms-with-ai-agents). The row records only the prefill id; the field values live in your own storage and never reach SimplePDF. prefill.deleted Deleted a prefill A prefill is removed through the prefill API. submission.created Submitted a filled document A submitter finishes filling a PDF and the completed submission lands in your dashboard. When the submitter is a team member of this company (signed in to the dashboard), the actor is member; otherwise the actor is external_party. The submitter's IP address and user agent are always recorded in the row's metadata for forensic detail. submission.updated Renamed a submission A submission's name is changed from the dashboard. The row carries a before / after diff of the name. submission.deleted Deleted a submission A submitted PDF is deleted. submission.exported Downloaded submission / Exported submissions A submission's content leaves the system: a single download of its filled PDF or its structured field data (count 1, targeting the submission), or a bulk "Export all" of every submission's field data at once (count N, targeting the document). The row records how much (count) and which kind (type: file or field_data), the forensic detail a data-egress review needs. Field values are assembled in the browser and never reach SimplePDF, so none appear in the audit row. A few details worth knowing about what ends up in the row: - **Storage configuration snapshots** capture the storage type and the non-secret fields (S3 bucket and region, Azure container, SharePoint site and document library). Secrets like access keys, client secrets, and tokens are **never** written to the audit log. - **Webhook URLs** are recorded with the row, with any credentials embedded in the URL stripped before storage. - **Plan changes** are recorded as a `company.updated` event with a `system` actor, so upgrades and downgrades show up in the audit stream. ## Review and filter activity The audit log lives at `/account/audit-logs` and is visible to admins on the Premium plan. - **Date range**: pick a preset (last 24 hours, last 7 / 14 / 30 / 60 / 90 days). The last-24-hour window auto-refreshes every 30 seconds so the listing feels live during an active investigation. - **Actor**: filter by a specific user, an API key, or `system` actions. - **Action**: filter by one or more event types. For example, just `document.deleted` and `submission.deleted` when you are reviewing data-removal activity. Filters are URL-encoded, so links to a filtered view are shareable across your team. Refreshing the page or opening the link from a ticket lands on the same filtered slice. ## Export for compliance reviews Click **Export selection** to download the current filter as a CSV. The CSV carries one column per forensic field: timestamp, actor type / id / email / name, action, target type / id / email / name, structured changes payload, IP address, and user agent. It is ready for ingestion into your compliance archive. A slice of what an export looks like: ## Retention Audit rows are retained for **365 days** from the event timestamp. If your compliance program requires longer retention, [contact us](/contact) and we will work out a retention window that fits your policy. ## How to access your audit log 1. Sign in to your SimplePDF account with an admin user on the [Premium plan](/pricing). 2. Open the account menu and click **Audit logs**, or navigate directly to `/account/audit-logs`. 3. Use the date range, actor, and action filters in the toolbar to narrow the view. 4. Click **Export selection** to download a CSV of the filtered events. If your team is on the Free, Basic, or Pro plan and you want to enable the audit log, see the [Premium plan overview](/help/faq/whats-included-in-premium) or [schedule a demo](/contact?help=schedule_a_demo) to talk through your compliance setup. **That's it! Every significant action across your SimplePDF account is now recorded, filterable, and exportable for compliance review.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to pre-fill PDF forms with AI agents using SimplePDF An AI agent can read a customer email, a database row, or a previous submission and work out what belongs in a form. **What an agent should not do is submit a form on its own.** The prefill API lets your agent prepare a fully filled-in PDF and hand it to a person to review, correct, and submit: **the agent does the tedious part, a human stays in the loop for the decision that matters.** This **keeps completion rates high**, the recipient opens a document that is already done, not a blank form, while **keeping a human accountable for what gets submitted**. **This guide talks about an AI agent, but the prefill API is just an HTTP (REST) API.** Any system that can make an HTTP request can use it: an AI agent, a backend job, a workflow automation, or a CRM integration. See the [API documentation](/api) for a human-readable reference, or the [OpenAPI spec](/api/json) to import into your tools or generate a client. Both document every endpoint and field. ## How it works A prefill is a set of field values that lives in **your own storage** (S3, Azure Blob Storage, or SharePoint), **never on SimplePDF**. You create a prefill through the API, upload the values straight to your storage, and share a link. When the recipient opens the link, the editor reads the values from your storage and renders the filled-in document for review. │ │ │ │ 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)`}/> **Because the values are written directly to your storage, the field values never reach SimplePDF. The API only ever handles identifiers and links.** ## Before you start To follow this guide you need: - An API key. Create one in your account settings under integrations. The prefill API requires a plan with API access: [Pro](/help/faq/whats-included-in-pro) or [Premium](/help/faq/whats-included-in-premium). - Your own storage configured (S3, Azure Blob Storage, or SharePoint). See [use your own S3 bucket](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions), [Azure Blob Storage](/help/how-to/bring-your-own-azure-blob-storage-for-pdf-storage), [Scaleway Object Storage](/help/how-to/bring-your-own-scaleway-object-storage-for-pdf-storage), or [SharePoint](/help/how-to/connect-sharepoint-as-your-own-storage-for-pdf-submissions). - A document with fields configured in your dashboard. The examples below use `curl`; replace `$COMPANY` with your company identifier and `$API_KEY` with your API key. ## Step 1: List the fields you can pre-fill Ask the document which fields exist and what they accept. **Each field has a stable `id`** you will reference in the prefill, a `type`, and (for constrained fields) the allowed `options`. A field's `name`, and whether it is `required`, has a `default_value`, or is `read_only`, are configured from your dashboard. See [configure document fields](/help/how-to/add-required-fields-on-pdf-forms). **Read-only fields keep their configured value and ignore anything you send in the prefill.** ## Step 2: Create a prefill Create the prefill to get **two things back**: an `upload` object that tells you exactly where and how to send the values, and an `embed_url` the recipient will open. The optional `context` is correlation metadata (for example which agent produced the prefill). It is delivered with the submission so you can tie it back to your own records. **Keep it free of sensitive data**: the field values themselves go in the blob, never here. ## Step 3: Upload the prefill values to your storage Send a JSON blob of shape `{ "fields": [{ "id", "value" }] }` using the `upload` object from the previous step. **Each `id` comes from Step 1**; each `value` is a string for text and checkbox fields, or a base64 data URL for signature and picture fields. Notes on values: - **If the field lists `options`** (in `GET /fields`), the value must be one of those options. This covers checkboxes, dropdowns, and radios. - **Otherwise**, the value is a plain string (text fields) or a base64 data URL such as `data:image/png;base64,...` (signature and picture fields). Signatures look best as a transparent PNG at roughly a 3:1 aspect ratio (for example 1200x400). - Unknown ids are ignored, and fields the document marks read-only keep their existing value. If the `upload.type` is `presigned_post` (S3 form upload) send the listed `fields` as multipart form data instead of a PUT body; for `graph_upload_session` (SharePoint) also set `Content-Length` and `Content-Range` to the blob's byte length. ## Step 4: Send the link for review Share the `embed_url` with the person who should review and submit. **They open a document that is already filled in**, make any corrections, and submit. You can open it standalone or [embed it in your own app](https://simplepdf.com/embed). To get notified when they submit, [configure a webhook](/help/how-to/configure-webhooks-pdf-form-submissions): the submission event includes the `context` you set in Step 2. ## Keeping prefills tidy Prefills are kept until you remove them, so you can re-share or audit a link. Delete one when you no longer need it: Prefill creation and deletion are recorded in your [audit logs](/help/how-to/monitor-team-activity-with-audit-logs). **That's it! Your agent can now pre-fill a PDF, and a person reviews and submits it with a human in the loop.** _If you have any questions, feel free to reach out to [support@simplepdf.com](mailto:support@simplepdf.com)_ --- # How to save edited PDF submissions to Supabase You have [added SimplePDF to your app, or your AI Agent](https://simplepdf.com/embed) and you would like to store the PDF submissions in your Supabase Storage. **You could for example**: - **Automate** further the handling of the submissions: for example **extracting the data from the forms to process them** - **Store the PDF in a vector store** to offer **semantic search** or automatically **detect duplicates or similarities** in the submitted PDF For this tutorial we'll be using two [PRO features from SimplePDF](https://simplepdf.com/pricing): 1. [The webhooks integration](https://simplepdf.com/help/how-to/configure-webhooks-pdf-form-submissions) - together with [Supabase Edge Functions](https://supabase.com/edge-functions) _The code for the Supabase Edge function can be found [here](https://github.com/SimplePDF/simplepdf-embed/tree/main/examples/with-supabase)_ 2. [The S3 integration](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions) - together with [Supabase Storage](https://supabase.com/storage) ## Configuring Supabase Storage for the PDF submissions In this section we'll walk you through setting up **Supabase Storage as a storage for the edited PDF submissions** (and documents) instead of SimplePDF's default storage. 1. Head over to Storage in your Supabase project and click **New bucket** 2. Name your bucket, keep it private (**do not toggle** Public bucket) and then click **Save** ![Create a bucket in Supabase storage](https://cdn.simplepdf.com/simple-pdf/assets/help/supabase-integration/create-supabase-storage-bucket.png) 3. In the Storage settings, create a new **S3 Access Keys** ![Create a S3 Access Key in Supabase](https://cdn.simplepdf.com/simple-pdf/assets/help/supabase-integration/create-supabase-s3-access-keys.png) 4. Head over to your **SimplePDF account** and **configure the S3 storage** as follows: _You can find a step-by-step [here](/help/how-to/use-your-own-s3-bucket-storage-for-pdf-form-submissions)_ Path-style: Region: