# Nexode Solutions Documentation — Full Text > Complete documentation for FormPDF PRO, a Concrete CMS add-on by Nexode Solutions that converts Express form submissions into automatically generated PDF documents. Source: https://docs.nexode-solutions.com Product: FormPDF PRO v1.0 Requires: Concrete CMS 9.4 or later Support: https://support.nexode-solutions.com --- # FormPDF PRO Documentation Source: https://docs.nexode-solutions.com/addons/formpdf-pro FormPDF PRO connects your Concrete CMS Express forms to automatic PDF generation. When a visitor submits a form on your site, the package can generate a formatted PDF, save it to your file manager, send it by email, and give the submitter a download link — depending on the rule you configure. ## How It Works A Rule decides which form triggers PDF generation and what happens next. A Template defines the PDF layout and content. Delivery actions — File Storage, Email, and submitter download — are all configured per rule. ## Requirements - Concrete CMS 9.4 or later - At least one Express form created and published on your site ## Documentation Map New here? Complete the one-time setup in order: configure defaults, create a template, connect it to a rule, and verify with a test run. See Getting Started. Building templates: Create and manage PDF layouts using the Basic builder, raw HTML, or an external file. Use tokens to insert form values into the output. See Templates and Token Reference. Setting up automation: Connect forms to templates, configure delivery actions, and control what submitters see after a successful form submission. See Rules, Submitter Experience, and Secure Links. Monitoring and troubleshooting: Inspect rule execution history, diagnose failed PDF generation, review generated files, and check system health at a glance. See Execution Logs, Submissions, Overview Dashboard, and Global Settings. ## Need help? If something is not working as expected, start with Execution Logs — it's the fastest way to find out what went wrong. For further support, visit https://support.nexode-solutions.com. --- # Getting Started Source: https://docs.nexode-solutions.com/addons/formpdf-pro/getting-started ## Prerequisites Important: Before you begin, confirm that all of the following are in place. - Concrete CMS 9.4 or later is installed and running. - At least one Express form has been created and published on your site. FormPDF PRO generates PDFs from Express form submissions, so a form must exist before you can create a rule. ## Before You Proceed Note: FormPDF PRO does not include a setup wizard. Follow the steps below in order. Skipping ahead — for example, creating a rule before creating a template — can result in empty dropdowns and the rule cannot be saved. The correct sequence is: 1. Settings → 2. Templates → 3. Rules → 4. Test run ## Step-by-Step Setup ### Step 1 — Configure global defaults Open: `Dashboard > FormPDF PRO > Settings` 1. Select your Global paper size from the dropdown (A4, Letter, Legal, or A3). 2. Select your Global orientation (Portrait or Landscape). 3. Click Save Changes. You will see a success confirmation at the top of the page. These defaults are pre-filled when you create a new template. Each template can override them individually, so if you mostly generate A4 documents, set A4 here and save time later. ### Step 2 — Create your first template Open: `Dashboard > FormPDF PRO > Templates` Click Add Template. A template defines the visual layout and content of the generated PDF. You can use a no-code Basic builder, write your own HTML, or point to an External HTML file on the server. See Create a Template for full instructions on each source type, token placeholders, and the live preview tool. When you save the template, a thumbnail preview is generated automatically and appears on the templates list. If the template fails to save: Check the error messages shown on the form. Common causes are unbalanced token placeholders — such as `{{ field_name` without a closing `}}` — or invalid HTML structure. Fix the indicated issues and click Save again. ### Step 3 — Create a rule Open: `Dashboard > FormPDF PRO > Rules` Click Create Rule. A rule connects a specific Express form to a template and tells FormPDF PRO what to do with the generated PDF. This guide uses File storage as the first setup path because it gives you the clearest verification step: a generated PDF appears in the file manager and on the submission detail page. At minimum you need to: 1. Enter a Rule name. 2. Select the Form (the Express form whose submissions should trigger PDF generation). 3. Select the Template you created in Step 2. 4. Enable File storage and choose where generated PDFs should be saved in the file manager. 5. Click Save rule. See Create a Rule for full instructions on conditions, email delivery, submitter experience options, and delivery ordering. If the rule fails to save: Review the error messages on the form. Delivery configuration errors are the most common cause — for example, configuring email to send a secure link when File storage is not enabled. Fix the indicated issues and click Save again. ### Step 4 — Run a test Before going live, verify that everything is connected correctly by running a manual test against a real submission. Important: The test run tool requires at least one existing submission for the form you selected in your rule. If your form has never been submitted, go to the page where your Express form is published, fill it in, and submit it. Then return here. Open: `Dashboard > FormPDF PRO > Rules` Find the rule you just created in the list and click the manual test vial icon in its action row. You will see a table of available submissions for the rule's form. Click Run rule next to any submission. FormPDF PRO immediately executes the rule for that submission and returns you to the test run page with a result message. ### Step 5 — Verify the result in Execution Logs Open: `Dashboard > FormPDF PRO > Execution Logs` Find the most recent log entry at the top of the list. It should show a Success badge. Click View Details to open the detail panel and confirm: - The Execution message confirms the PDF was generated and delivered. - Because this guide uses File storage, a Generated file reference appears and links to the file in your file manager. - If you also enabled email delivery, a child log entry labeled Email appears under Backend action results and shows whether the email was sent successfully. If the log shows a Failed badge: Open the detail panel and read the Error details section. This contains the technical reason for the failure. Common causes are a template rendering error — such as a broken token referencing a field that does not exist on the selected form — or a delivery configuration problem, such as an invalid email address. Fix the underlying issue in the template or rule, then run the test again. ### Step 6 — Confirm the generated file Open: `Dashboard > FormPDF PRO > Submissions` Click the form handle that matches your rule's form. Then click the submission you used for the test. On the submission detail page, open the Generated Files tab. Your PDF should appear there with a download link because this guide enabled File storage. If the file is not listed but the execution log shows Success, check that your rule still has File storage enabled and ordered before any delivery action that needs a stored file. Rules that only send email attachments, or only provide a submitter download link without File storage, do not create a permanent file reference for this tab. ## Setup Complete Once Step 6 confirms a generated file, your setup is working correctly. From this point on, new submissions to the connected form will automatically generate and deliver PDFs when they match an active rule's conditions. You can return to Rules at any time to adjust delivery settings, add conditions, or create additional rules for other forms. ## Troubleshooting | Symptom | Likely cause | What to do | | --- | --- | --- | | Template fails to save | Unbalanced token placeholders or invalid HTML | Read the error messages on the form. Fix all flagged tokens and HTML issues. See Create a Template. | | Rule fails to save | Invalid delivery configuration | Read the error messages on the form. A common cause is enabling a secure link in email delivery without also enabling File storage. Fix and save again. | | Test run page shows no submissions | The Express form has never been submitted | Go to the page where your form is published, fill it out, and submit it. Return to Test run afterwards. | | Execution log shows Failed | Template render error or delivery failure | Click View Details on the log entry. Read the Error details section for the specific reason. Fix the template or rule and run the test again. | | Generated Files tab is empty after a successful test | File storage is disabled, ordered too late, or failed | Enable File storage for this setup path, keep it before delivery actions that need stored files, and run the test again. | --- # Global Settings Source: https://docs.nexode-solutions.com/addons/formpdf-pro/global-settings Use Global Settings to choose the default PDF layout for new templates. ## Configure Defaults 1. Open `Dashboard > FormPDF PRO > Settings`. 2. In Global paper size, select A4, Letter, Legal, or A3. 3. In Global orientation, select Portrait or Landscape. 4. Click Save Changes. After saving, FormPDF PRO shows a success message and uses the selected defaults the next time an administrator creates a template. Important: These settings apply only to new templates. Existing templates keep their own paper size and orientation until you edit those templates directly. ## Current Limits Only paper size and orientation are configurable from this screen at this time. Email defaults, log retention policies, and feature toggles are not currently available. --- # Templates Source: https://docs.nexode-solutions.com/addons/formpdf-pro/templates Templates define the content, layout, and paper settings used when FormPDF PRO generates a PDF from an Express form submission. Use this section when you need to create a template, edit an existing template, preview output, validate template content, or manage template lifecycle actions from the Templates list. ## Create a PDF Template Use this flow to create the first draft of a PDF layout that can later be connected to an automation rule. 1. Open `Dashboard > FormPDF PRO > Templates`. 2. Click Add Template. 3. Enter a Name. This field is required. 4. Optionally enter a Description to help other administrators understand how the template is used. 5. Select a Status. New templates default to Draft. 6. Select a Source type: - Basic: configure Header content, Footer content, Font family, Font size, Section title, and the Show empty fields toggle. - HTML: write or paste HTML in the Ace editor with syntax highlighting and language tools. - External: enter the server-side template path in File path (must be within the site root). 7. Select the Paper size: A4, Letter, Legal, or A3. 8. Select the Orientation: Portrait or Landscape. 9. Optionally select an Express entity to provide token auto-complete context while editing. 10. Optionally click Validate to check the template. 11. Optionally use the preview launcher to generate a sample PDF. 12. Click Save template. After success, the template is saved as a draft, a thumbnail is generated automatically, and you are returned to the Templates list. Note: A template must be connected to a rule before it can generate PDFs from submitted forms. See Create a Rule. Server-side validation can block saving. Common causes include unbalanced token placeholders, invalid HTML, very large template content or source settings, or a missing external file path. When validation fails, errors are shown on the form and the template is not saved. ## External file template Use External file template when the PDF layout already lives in a readable file under the Concrete site root. This source type is ideal for version-controlled templates, developer workflows, and shared templates across multiple sites. ### How it works 1. File read: FormPDF PRO reads the file from the server filesystem as raw text. PHP code inside the file is not executed. 2. Token resolution: Token placeholders such as `{{ field_handle }}` are resolved with data from the Express form submission. 3. PDF rendering: The resolved HTML is sent to PDF Engine for generation using the template's paper size and orientation settings. ### Accepted file extensions | Extension | Status | Notes | | --- | --- | --- | | `.html` | Recommended | Standard HTML template file | | `.htm` | Recommended | Same as `.html` | | `.php` | Not recommended | Read as raw text — PHP code is not executed. Consider renaming to `.html` | Other extensions are accepted but will produce a validation warning. ### Example paths All paths are relative to the Concrete site root (`DIR_BASE`): - `application/views/pdf/invoice.html` — custom template in the application directory - `application/templates/receipt.htm` — receipt layout stored alongside other app templates - `packages/my_package/templates/report.html` — template shipped inside a package ### Token usage in external files External files support the same `{{ token }}` syntax as Basic and Internal HTML source types: | Token | Description | | --- | --- | | `{{ field_handle }}` | Value of the form field with that handle | | `{{ form_name }}` | Name of the Express entity (form) | | `{{ submission_date }}` | Date the form was submitted | | `{{ submission_id }}` | Unique submission identifier | Token filters are also supported: - `{{ field_handle|upper }}` — converts to uppercase - `{{ field_handle|lower }}` — converts to lowercase - `{{ field_handle|date('Y-m-d') }}` — formats a date value ### Limitations - PHP code inside `.php` files is not executed. The file is read as raw text only. - Remote URLs (`https://...`) are rejected. - Path traversal (`..`) is blocked. - Files outside the site root directory are blocked at both validation and render time. - PDF Engine CSS 2.1 restrictions apply: avoid flexbox, grid, and modern CSS features. Use tables for layout. - This source type is completely separate from Concrete mail templates in `/application/mail/`. Preview and save both use the referenced file. If the file is missing, unreadable, outside the site root, or configured with a remote URL, the form shows a validation or preview error. ## Edit an Existing Template Use this flow to update the content, source settings, status, or paper settings of an existing template. 1. Open `Dashboard > FormPDF PRO > Templates`. 2. Find the template you want to change. 3. Click Edit. 4. Review the pre-filled template form. 5. Update the same fields used when creating a template: Name, Description, Status, Source type, Paper size, Orientation, Express entity. 6. Optionally click Validate. 7. Optionally generate a preview. 8. Click Save template. After success, the template is updated, the thumbnail is regenerated, and you are returned to the Templates list. Note: Editing uses the same form and validation rules as creating a template. If the template is already used by active rules, changes affect future PDF generation for those rules. ## Preview a Template Use this flow to render a PDF preview before saving or before connecting the template to live automation. 1. Open the template add/edit form. 2. In the preview launcher panel, select a preview mode: - Sample data: FormPDF PRO uses placeholder values. - Real entry: select an Express entity, then select a specific entry loaded through AJAX. 3. Click Generate preview. 4. Review the generated PDF preview. If your browser opens the PDF in a new tab instead of the inline preview area, return to the template form when finished. After success, you see a rendered PDF preview using either sample values or data from the selected Express entry. Note: Preview generation can fail when the current template data does not validate, or when rendering fails. If Real entry mode has no available submissions, the entry dropdown is empty. In that case, submit the related Express form first or use Sample data. Previewing is optional but recommended before you connect a template to active rules. ## Validate a Template Use this flow to check template content for token and HTML issues before saving. 1. Open the template add/edit form. 2. Click Validate. 3. FormPDF PRO checks the content on the server. 4. The server checks token placeholders. 5. The server checks HTML structure. 6. Review the validation panel: - Score badge, for example 85/100. - Errors in red. These are blocking issues. - Warnings in yellow. These are non-blocking issues. - Suggestions in blue. These are improvement hints. After success, the validation panel displays a score and categorized feedback so you can decide what to fix before saving. Note: The Validate button checks HTML content and token placeholders. Additional save-time validation may block saving for source-specific problems, such as missing external file paths or invalid source settings. If validation fails because of a server error, the panel shows a generic error. If save fails later, fix the errors shown on the form and click Save again. ## Manage Template Lifecycle Use this flow to change a template's status, duplicate a template, or delete a template from the Templates list. 1. Open `Dashboard > FormPDF PRO > Templates`. 2. Find the template card you want to manage. 3. Choose one of the available actions: - Activate: changes a draft or paused template to active. - Pause: changes an active template to paused. - Archive: moves a template out of active use. - Restore: restores an archived template to draft. - Duplicate: creates a copy of the template with `(Copy)` added to the name. - Delete: permanently deletes the template. Do not delete templates attached to active rules; archive them instead. 4. If you click Delete, confirm the browser prompt: "Are you sure you want to delete this template? This action cannot be undone." After success, you are returned to the Templates list with a confirmation message. Status changes, duplication, and deletion are submitted with POST requests and CSRF protection. Common status transitions: `DRAFT → ACTIVE → PAUSED → ARCHIVED → Restore → DRAFT` Warning: Do not delete templates that are attached to active rules. If you need to remove a referenced template from use, archive it first and update the affected rules before deleting it. Deleting a template is a hard delete. If you only want to remove a template from active use, choose Archive instead. --- # Rules Source: https://docs.nexode-solutions.com/addons/formpdf-pro/rules Rules connect Express form submissions to PDF templates and delivery behavior. A rule decides when a PDF should be generated, which template should be used, where the generated file should go, and what the submitter should see after a frontend submission. Rules are the most complex part of FormPDF PRO. Work through the rule form from top to bottom: identify the form and template first, then configure conditions, then configure delivery. ## Create an Automation Rule Use this flow to create a new automation rule that can generate PDFs for submissions from a selected Express form. 1. Open `Dashboard > FormPDF PRO > Rules`. 2. Click Create Rule. 3. Enter Rule name. This field is required. 4. Optionally enter Description. 5. Select Assigned form. This field is required. Selecting a form loads the available fields for the condition builder. 6. Select PDF template. This field is required. 7. Select Status. New rules default to Active. 8. Configure the conditions in ConditionBuilder. 9. Configure delivery in DeliveryBuilder. 10. Click Save rule. After success, the rule is saved and you are returned to the Rules list with a confirmation message. Note: Delivery validation can block saving. Errors are shown on the form and the rule is not saved. Common causes include invalid delivery configuration, link delivery without File Storage, or File Storage being ordered after Email when the email needs a secure or plain link. ### ConditionBuilder Use ConditionBuilder to decide which submissions should trigger this rule. - Choose Always when every submission for the selected form should generate a PDF. - Choose When conditions match when only some submissions should generate a PDF. - In conditional mode, add condition rows using Select field…, Select operator…, and Value. - Use Add Condition to add rows. - Use Remove condition to remove rows. - Operators include equals, does not equal, contains, is greater than, is less than, is empty, and is not empty. Note: Field choices depend on Assigned form. If no form is selected yet, the builder cannot load form fields. `is empty` and `is not empty` do not use the Value field. ### DeliveryBuilder Use DeliveryBuilder to decide what happens after the PDF is generated. Backend actions run on the server: - File Storage - Turn on Enabled. - Select File Manager folder. - Set Filename pattern. Filename patterns can include tokens. - Email - Turn on Enabled. - Set To recipients. - Optionally set CC recipients. - Optionally set Submitter email attribute. - Choose Attachment mode: Attach PDF, Include link (secure), or Include link (plain). - Set Expiry in hours when using secure links. - Set Email subject. - Set Email body. Submitter experience controls what the frontend visitor sees after a frontend form submission: - Default keeps the standard Concrete CMS success message with no PDF access for the submitter. - Download link shows a download button on the success page. - Auto-download starts the PDF download automatically and keeps a visible fallback link. Note: Manual dashboard test runs do not trigger the submitter experience. Submitter experience applies to frontend form submissions. Secure and plain links require File Storage because FormPDF PRO needs a stored file to link to. If Email or submitter experience uses links, keep File Storage enabled and ordered before actions that need the stored file. ### How Tokens Work Tokens let you reuse submission and site values in delivery fields. They are commonly used in Filename pattern, Email subject, Email body, and email filenames. Examples: - `submission_{{ submission_id }}.pdf` - `Submission for {{ form_name }}` - `{{ download_link }}` inside Email body when the email attachment mode uses a link. Use Insert Token where it appears in the delivery builder. Available default tokens include Submission ID, Form Name, Date, Time, and Site Name. See Token Reference. After creating a rule, use Test Run a Rule before relying on it for live submissions. ## Edit an Existing Rule Use this flow to change a rule's form, template, status, conditions, delivery actions, or submitter experience. 1. Open `Dashboard > FormPDF PRO > Rules`. 2. Find the rule you want to change. 3. Click Edit. 4. Review the pre-filled rule form. 5. Update any of the same fields used when creating a rule: Rule name, Description, Assigned form, PDF template, Status, ConditionBuilder, DeliveryBuilder. 6. Click Save rule. After success, the rule is updated and you are returned to the Rules list with a confirmation message. Note: Editing a rule affects future matching submissions. Existing logs and generated files are not rewritten. If delivery validation fails, errors are shown on the form and the rule is not saved. Non-blocking delivery warnings can be shown after save. When editing a rule, ConditionBuilder loads the saved condition mode and rows. - Keep Always when the rule should apply to every submission for the assigned form. - Use When conditions match to narrow the rule to specific submission values. - Changing Assigned form changes the available condition fields. Review existing conditions after changing the form. When editing a rule, DeliveryBuilder loads the saved backend actions and submitter experience. - Review whether File Storage is still enabled before using secure links, plain links, Download link, or Auto-download. - Review ordering when Email uses Include link (secure) or Include link (plain). - Review To recipients, Email subject, and Email body if the form or template has changed. Tokens in an existing rule are resolved when the rule runs, not when you save the form. If you change Assigned form, verify that the tokens in Filename pattern, Email subject, and Email body still make sense for the new form context. ## Test Run a Rule Use this flow to manually execute a rule against an existing submission before relying on it for live form submissions. 1. Open `Dashboard > FormPDF PRO > Rules`. 2. Find the target rule. 3. Click the manual test vial icon. 4. Review the submissions table for the rule's assigned form. 5. Find the submission you want to test. 6. Click Run rule for that submission. After success, FormPDF PRO returns you to the test run page with a result message. A log entry is created for the manual execution. Note: The test run page shows a submissions table with a per-row Run rule button. Use Execution Logs for duration, error details, and delivery-action results. ### What Runs During a Test The manual run executes the selected rule for the selected submission and forces execution even if a previous success log exists for the same rule and submission. Manual test runs call rule execution directly with force enabled. They bypass normal condition matching and idempotency, and they do not run the submitter experience. The execution path renders HTML, generates the PDF, and runs the configured delivery pipeline. Use Execution Logs to inspect the full result after a test run. ### Success and Failure States - Success: the page returns with a success message, and Execution Logs contains a success record. - Failure: the page returns with an error message, and Execution Logs can contain failure details when execution reached logging. - No submissions: the page shows "No submissions found for form handle: …" and there is no Run rule action. Submit the related Express form first, then return to Test run. The test run page does not edit conditions. Review conditions from Edit before testing if you need to confirm why a rule should or should not run for normal frontend submissions. The test run uses the rule's saved delivery configuration. If File Storage or Email is enabled, those backend actions can run during the manual test. Note: Submitter experience does not run during dashboard manual tests. Test frontend submitter behavior by submitting the actual Express form on the site. Tokens are resolved using the selected submission's data and the current rule configuration. This is useful for verifying Filename pattern, Email subject, Email body, and generated file names before the rule handles live submissions. ## Manage Rule Lifecycle Use this flow to pause, activate, or delete rules from the Rules list. 1. Open `Dashboard > FormPDF PRO > Rules`. 2. Find the rule you want to manage. 3. Use the row actions: - The status toggle icon pauses active rules and activates non-active rules. - Edit opens the full rule form. - The manual test vial icon opens the manual test run page. - Delete permanently deletes the rule. After success, you are returned to the Rules list with a confirmation message. Status toggles and deletion are submitted with POST requests and CSRF protection. Warning: Delete is a hard delete. When you click Delete, the browser asks: "Are you sure you want to delete this rule? This action cannot be undone." ### Status Behavior - Active rules are eligible to run for matching frontend submissions. - Paused rules are not active until reactivated. - Archived rules can be activated from the list with the status toggle icon. - There is no archive action on the Rules list. To archive a rule, open Edit and change Status. Lifecycle actions do not change condition logic, delivery configuration, or tokens. Use Edit when you need to review or change those settings before reactivating a rule. --- # Tokens Source: https://docs.nexode-solutions.com/addons/formpdf-pro/tokens Tokens insert submission, form, site, and generated-file values into template and delivery fields. Use token syntax with double braces: `{{ token_name }}` ## Common Tokens | Token | Meaning | | --- | --- | | `{{ submission_id }}` | Concrete CMS Express entry ID for the submission. | | `{{ submission_date }}` | Submission date. | | `{{ submission_time }}` | Submission time. | | `{{ form_name }}` | Display name of the Express form entity. | | `{{ site_name }}` | Current site name. | | `{{ date }}` | Current date when the rule runs. | | `{{ time }}` | Current time when the rule runs. | | `{{ download_link }}` | Download link inserted into email body when the email action is configured to include a link. | Express form fields can also be available as tokens when the rule runs. Token availability depends on the selected form and the fields saved with the submission. ## Where Tokens Are Used Tokens are commonly used in: - Template content. - Filename pattern for File Storage. - Email subject. - Email body. - Email attachment filename. ## Filters Some token values can be transformed with filters: - `{{ form_name|upper }}` - `{{ form_name|lower }}` - `{{ submission_date|date('Y-m-d') }}` If a token cannot be resolved at runtime, the output may be empty or the template/delivery action may need review. Use Execution Logs to diagnose token-related failures. --- # Submitter Experience Source: https://docs.nexode-solutions.com/addons/formpdf-pro/submitter-experience Submitter experience controls what a frontend visitor sees after submitting a Concrete CMS Express form that matches an active FormPDF PRO rule. ## Configure the Experience Configure this in `Dashboard > FormPDF PRO > Rules` when creating or editing a rule. 1. Open the rule form. 2. Go to the Delivery section. 3. In Submitter experience, choose one option: - Default: keep the standard Concrete CMS success message and show no PDF controls. - Download link: show a PDF download button near the success message, with a modal fallback when needed. - Auto-download: start the PDF download automatically and keep a visible fallback link. 4. Save the rule. Download link and auto-download experiences require a generated file that can be linked from the frontend. Review the Rules DeliveryBuilder setup and secure link behaviour. Note: PDF generation failures are currently silent for frontend submitters: the failure is logged for administrators, while the visitor continues to see the normal form success state. Administrators should use Execution Logs to diagnose PDF failures. ## What Visitors See After submitting the form, the visitor sees the standard success message. Depending on the matching rule: - Default: nothing else appears. - Download link: a PDF download button appears near the success message. - Auto-download: the PDF download starts automatically, and a fallback link remains available. If multiple rules match the same submission, the success page can show multiple PDF download buttons. --- # Secure Links Source: https://docs.nexode-solutions.com/addons/formpdf-pro/secure-links Secure links let a user download a generated PDF without logging in, as long as the link is valid and has not expired. Administrators enable secure links through rule delivery settings. See DeliveryBuilder for email link delivery and Submitter Experience for frontend download link and auto-download options. ## How Secure Links Work The link has this format: `/form_pdf_pro/download/{fileId}/{expiry}/{token}` When someone opens the link, FormPDF PRO checks: 1. The link signature is valid. 2. The expiry timestamp has not passed. 3. The referenced PDF file still exists. 4. The approved file version is available. If all checks pass, the browser downloads the PDF as an attachment. ## Why a Link May Fail | Result | Meaning | | --- | --- | | `Invalid or expired download link.` | Shown as a flash message if the signature is invalid, the link was changed, or the expiry time has passed. | | `File not found.` | Shown as a flash message if the file ID in the URL does not exist or has been deleted. | | `The file is unavailable.` | Returned as a direct text response if the file reference exists but Concrete CMS cannot serve the actual file from disk due to an internal error. | For administrators, the most common causes are expired links, deleted File Manager files, or a generated file that is no longer available on disk. --- # Execution Logs Source: https://docs.nexode-solutions.com/addons/formpdf-pro/execution-logs Execution Logs record rule execution attempts and delivery outcomes. Use this section when a PDF was not generated, a delivery action failed, or you need to confirm what happened after a form submission or manual test run. Each top-level log represents a rule execution or skipped rule. Delivery actions, such as File Storage and Email, are stored as child logs and are easiest to inspect from the log detail modal. ## Log Hierarchy FormPDF PRO uses a parent/child log structure: - Parent log: the rule-level result, such as a rule execution or skipped rule. - Child log: a delivery-action result linked to the parent, such as File Storage or Email. The default logs list shows top-level logs. Child delivery logs appear inside the detail modal for a parent log. When you filter by a specific action type, the list can show matching delivery-action logs directly. ## Browse Execution Logs Use this flow to find logs by date, status, action type, or keyword. 1. Open `Dashboard > FormPDF PRO > Execution Logs`. 2. Use Search to search log message text, form handles, or rule names. 3. Use Status to show All Statuses, Success, or Error. 4. Use Action type to show All execution types, File storage, or Email. 5. Use From and To to filter by date range. 6. Click Filter. 7. To clear filters, click Reset Filters. The logs table shows: Date, Source Form, Rule applied, Event, Status, Actions. Per-row actions: - View Details opens the log detail modal. - Delete Log permanently deletes the log. Bulk action: 1. Select one or more log checkboxes. 2. Click Delete Selected. 3. Confirm the browser prompt. 4. The selected logs are permanently deleted. Note: Search is a single keyword filter. It searches message text, form handles, and rule names; the current screen does not provide separate form-handle or rule-name filter controls. The current Status filter exposes Success and Error. Skipped rule activity appears as an event type, not as a visible Skipped status filter. ## View Log Detail Use the log detail modal as the primary debugging tool. It shows the rule-level result and any delivery-action child logs in one place. 1. Open `Dashboard > FormPDF PRO > Execution Logs`. 2. Find the relevant log row. 3. Click View Details. 4. The modal loads the log detail content. The modal shows: - Status badge: Success or Failed. - Execution time: the timestamp for the log. - Event Type: the event type shown in monospace text. - Duration: execution duration in milliseconds, when available. - Execution message: the human-readable result message. - Error details: JSON-formatted detail in a red error box, when available. - Backend action results: child delivery logs, when present. - Generated file reference: a link to the File Manager file detail page, when available. Child delivery logs show the delivery action label (such as File Storage or Email), a status badge, duration in milliseconds when available, a message, and error details when available. Failure state: if the log no longer exists, the detail request returns a not-found response and the modal shows an error message. ## Delete Logs Use delete actions only when you no longer need the diagnostic history. Deletion is permanent. ### Delete One Log 1. Open `Dashboard > FormPDF PRO > Execution Logs`. 2. Find the log row. 3. Click Delete Log. 4. Confirm the browser prompt: "Are you sure you want to delete this log?" 5. The log is permanently deleted. 6. The page refreshes with a confirmation message. The single-delete action is submitted securely with CSRF protection. ### Bulk Delete Logs 1. Open `Dashboard > FormPDF PRO > Execution Logs`. 2. Select the checkboxes for the logs you want to delete. 3. Click Delete Selected. 4. Confirm the browser prompt: "Are you sure you want to delete the selected logs?" 5. The selected logs are permanently deleted. 6. The page refreshes with a confirmation message. The bulk-delete action is submitted securely with CSRF protection. Warning: Log deletion is permanent. There is no archive or recovery mechanism in the logs panel. No log rotation, automated cleanup, or retention policy is currently implemented. Treat log cleanup as a manual administrator task. ## What to Do When a Log Shows Failed Start with View Details. The modal is the fastest way to determine whether the failure came from template rendering, delivery configuration, or the system environment. 1. Open the failed log with View Details. 2. Read Execution message first. It usually summarises the failure. 3. If Error details appears, expand your review there. The JSON can include technical details useful for a developer. 4. Check Backend action results: - If File Storage failed, inspect folder selection, filename pattern, file permissions, and whether the file manager can accept the generated file. - If Email failed, inspect recipients, submitter email attribute, subject/body tokens, attachment mode, and whether link mode depends on File Storage. 5. If there is no child delivery failure, review the rule and template: - Check whether the selected template still exists. - Check template tokens and HTML. - Check whether the rule's form and conditions match the submission you expected. 6. After fixing the underlying issue, run a manual test from the Rules page or use Run Again from the submission detail page. Do not use Run Again if the rule's template has been deleted until a developer has restored or repaired the rule. 7. Return to Execution Logs and confirm that the new log is successful. ### Common Failure Categories | Category | What to inspect | | --- | --- | | Template issue | Missing template, invalid HTML, broken or unresolved tokens, external template path problems (e.g. path traversal prevention errors). | | Delivery configuration issue | File Storage disabled when links require it, File Storage ordered after Email, invalid recipients, missing submitter email attribute, invalid filename generation (e.g. dot-only filenames), or invalid webhook URLs. | | System issue | File Manager import errors, mail transport errors, permissions, missing underlying Express entry, unexpected server exceptions. | Note: Keep failed logs until the issue is understood. Deleting a failed log removes the diagnostic evidence from this panel. --- # Submissions Source: https://docs.nexode-solutions.com/addons/formpdf-pro/submissions Submissions tracks FormPDF PRO records that are linked to Concrete CMS Express entries. Use this section to find submitted form data, review generated PDFs for each rule execution, copy secure download links, inspect activity, and manually regenerate PDFs for a submission. Submissions are read-only dashboard records. You can view them, download generated files, copy secure links, and rerun PDF generation, but you cannot delete submissions from this panel. ## Browse Submissions Use this flow to move from a form-level submissions list to a specific submission detail view. 1. Open `Dashboard > FormPDF PRO > Submissions`. 2. Review the form handle list. Each row shows the raw form handle, not a human-readable form name. 3. Click View entries for the form you want to inspect. 4. Review the entries list for that form. 5. Click View details for the entry you want to inspect. After success, the submission detail page opens for the selected record. Note: If the Submissions page is empty, no submissions have triggered a PDF rule yet. Submit the related Express form first, then return to this page. If a form has no entries, the entries list shows "No entries found". ## Submission Detail View Use the detail view to inspect one submission, its generated PDFs, and the rule execution history for that submission. The top context bar shows: - Form handle: the Express form handle associated with the submission. - Internal ID: the stored Express entry reference. - Submitted at: the submission date and time. - Status: the current FormPDF PRO submission status. The detail page is organised into tabs: ### Overview The Overview tab groups execution activity by rule. Each rule card shows the latest known result for that rule and includes a Run Again button when regeneration is available. Use Run Again to regenerate a PDF for the selected rule and submission. The Overview tab also includes Submission Data. This section shows the submitted field values in a readable format. Click Toggle Raw JSON to open the raw submission payload when you need to inspect the stored data structure. ### Generated Files The Generated Files tab lists PDF files referenced by successful execution logs for this submission. Each file entry includes: - Download PDF: downloads the generated PDF. - Copy secure link: copies a time-limited secure download URL. Note: Generated files appear here when the rule's delivery configuration stores a file reference, typically through File Storage. Rules that only send email attachments or do not store files may not add a permanent file reference to this tab. The list includes file references from successful logs for this submission. A rule can show more than one file after repeated manual runs or regeneration. ### Activity Log The Activity Log tab lists execution activity for the submission. Use it to see when rules ran and whether the latest execution succeeded or failed. For deeper debugging, open `Dashboard > FormPDF PRO > Execution Logs`. ## Regenerate PDF Use this flow to rerun a rule for an existing submission from the submission detail page. Warning: Before using Run Again, confirm that the rule and its template still exist. If either was removed, ask your developer to restore or repair the rule before rerunning PDF generation. 1. Open `Dashboard > FormPDF PRO > Submissions`. 2. Click View entries for the relevant form handle. 3. Click View details for the target submission. 4. In the Overview tab, locate the rule result you want to rerun. 5. Click Run Again. 6. FormPDF PRO submits a secured regeneration request. 7. The rule is re-executed for the same submission with idempotency bypassed. 8. The page refreshes back to the submission detail view with a success or error message. After success, a new execution log is created. If the rule stores a file reference, the Generated Files tab shows the generated PDF. Note: File replacement behaviour can depend on Concrete CMS file import and filename handling. After a successful regeneration, review the Generated Files tab and Execution Logs to confirm whether a new file entry or a new version was created. Failure states: - If the submission or rule is invalid, the page returns with an error message. - If the underlying Express entry no longer exists, the page returns with an error message. - If the template attached to the rule has been deleted, do not use Run Again until your developer has restored or repaired the rule. - If PDF rendering or delivery fails, the failure is logged and the detail page shows an error message. ## Read-Only Behaviour The Submissions panel is for review and reruns, not cleanup. - You cannot delete submissions from this panel. - You cannot edit submitted form data from this panel. - You can download generated PDFs, copy secure links, inspect activity, and run Run Again for a rule result. Use the original Express form tools and site data management workflows for changes to the underlying submission data. --- # Overview Dashboard Source: https://docs.nexode-solutions.com/addons/formpdf-pro/overview-dashboard The Overview dashboard gives administrators a quick health check for FormPDF PRO activity. Open `Dashboard > FormPDF PRO > Overview`. ## Metrics - Active rules: the number of automation rules currently active. - Templates: the total number of PDF templates in the package. - Success rate (24h): the percentage of recent rule executions that succeeded in the last 24 hours. - Real-time activity: the five most recent execution logs. - Traffic sources: the top four form handles by submission volume. Use Manage Rules, View Templates, View All Logs, and View All Submissions to jump from the overview to the related dashboard area. ## Empty States - "Waiting for activity…" means there are no recent execution logs to show. - "No activity detected" means no submission-volume data is available yet. ## Low Success Rate If Success rate (24h) is low, open View All Logs and inspect failed logs first. Execution Logs are the primary place to identify template errors, delivery configuration problems, missing files, or system-level failures. --- # Glossary - Rule: The automation unit. Connects one Express form to one PDF template, decides which submissions qualify (conditions), and defines what happens to the generated PDF (delivery). - Template: The PDF layout. Built with the Basic no-code builder, raw HTML, or an external server-side file. Has its own paper size and orientation. - Token: A `{{ placeholder }}` resolved at run time with submission, form, or site data. Usable in template content, filename patterns, email subject, and email body. - Backend action: A server-side delivery step — File Storage or Email. Runs after PDF generation. - Submitter experience: The frontend behaviour a visitor sees after submitting — Default, Download link, or Auto-download. Does not run during dashboard test runs. - Secure link: A signed, time-limited URL that serves a generated PDF without requiring login. - Execution log: A record of one rule execution. Parent logs hold the rule-level result; child logs hold each delivery action result. - Form handle: The raw Concrete CMS Express entity handle used to identify a form throughout the Submissions and Logs panels. - Idempotency: The default behaviour preventing a rule from regenerating a PDF for a submission it already processed successfully. Manual test runs and Run Again bypass it.